UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 2.55 kB
import{jsx as e}from"react/jsx-runtime";import{useRef as t,useContext as r,useCallback as o}from"react";import n from"./flat-table-checkbox.style.js";import"../../checkbox/checkbox-group/checkbox-group.component.js";import{Checkbox as c}from"../../checkbox/checkbox.component.js";import l from"../../../__internal__/utils/helpers/events/events.js";import i from"../../../__internal__/utils/helpers/tags/tags.js";import a from"../../../__internal__/utils/helpers/guid/index.js";import s from"../flat-table-row/__internal__/flat-table-row.context.js";function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){b(e,t,r[t])}))}return e}const f=b=>{var{as:f="td",checked:u,onChange:m,selectable:y=!0,onClick:O,ariaLabelledBy:h,id:d}=b,g=function(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},c=Object.keys(e);for(o=0;o<c.length;o++)r=c[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)r=c[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(b,["as","checked","onChange","selectable","onClick","ariaLabelledBy","id"]);const j=t(null),k=t(d||a()),{leftPositions:P,rightPositions:x}=r(s),_=P[k.current],v=x[k.current],w=void 0!==_||void 0!==v,C="flat-table-checkbox-"+("td"===f?"cell":"header"),S=o((e=>{e.stopPropagation(),null==O||O(e)}),[O]),D=o((e=>{l.isDownKey(e)||l.isUpKey(e)||e.stopPropagation()}),[]);return e(n,(B=p({ref:j,makeCellSticky:w,className:w?"isSticky":void 0,leftPosition:_,rightPosition:v,as:f},i("flat-table-checkbox",p({"data-element":C},g))),E=null!=(E={id:k.current,children:y&&e(c,{checked:u,onChange:m,name:"flat-table-checkbox",mb:0,ariaLabelledBy:h,onClick:S,onKeyDown:D})})?E:{},Object.getOwnPropertyDescriptors?Object.defineProperties(B,Object.getOwnPropertyDescriptors(E)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(E)).forEach((function(e){Object.defineProperty(B,e,Object.getOwnPropertyDescriptor(E,e))})),B));var B,E};f.displayName="FlatTableCheckbox";export{f as FlatTableCheckbox,f as default};