@bizhermit/react-sdk
Version:
React SDK
1 lines • 4.47 kB
JavaScript
;var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importDefault(require("react")),css_var_1=require("../../../styles/css-var"),jsx_style_1=__importDefault(require("../../../styles/jsx-style")),dom_1=require("../../../utils/dom"),check_box_1=require("../../inputs/check-box"),list_view_1=require("../list-view"),cn="bh-lv_c-ckb",ListViewCheckBoxColumn=e=>{const l=e.checkedValue??!0,t=e.uncheckedValue??!1;let a,n,c=!1;return{width:-1,sort:!1,resize:!1,cellTextAlign:"center",...e,bindedItems:t=>{if(!1===e.batchCheck)return;let n=!0;if(0===t.length)n=!1;else for(const a of t)if(a[e.name]!==l){n=!1;break}a?.setAttribute("data-checked",String(c=n))},initialize:()=>{const l=document.createElement("div");return l.classList.add(cn,check_box_1.checkBoxCn),e.disabled?(l.setAttribute("data-m","d"),l.setAttribute("data-disabled",String(!0===e.disabled))):l.setAttribute("data-m","e"),{elem:l}},headerCellInitialize:e.batchCheck&&!e.disabled?(l,t)=>{l.headerCellElement.classList.add(`${cn}-hcell`);const c=document.createElement("div");c.classList.add(`${cn}-hwrap`),"string"==typeof e.headerCellLabel&&(l.headerCellLabelElement.textContent=e.headerCellLabel),c.appendChild(n=l.headerCellLabelElement),null==e.headerCellLabel&&(l.headerCellLabelElement.style.display="none"),a=(0,dom_1.cloneDomElement)(t.elem),c.appendChild(a),l.headerCellElement.appendChild(c)}:e.headerCellInitialize,headerCellLabel:e.batchCheck&&!e.disabled?(t,i,r)=>{let d=!0;if(0===i.length)d=!1;else for(const t of i)if(t.data[e.name]!==l){d=!1;break}a?.setAttribute("data-checked",String(c=d)),"function"==typeof e.headerCellLabel&&e.headerCellLabel(n,i,r)}:e.headerCellLabel,clickHeaderCell:e.batchCheck&&!e.disabled?(n,i,r)=>{!0!==e.disabled&&!1!==e.batchCheck&&((c=!c)?i.forEach((e=>e.data[n]=l)):i.forEach((e=>e.data[n]=t)),a?.setAttribute("data-checked",String(c)),r(),e.clickHeaderCell?.(n,i,r))}:e.clickHeaderCell,cellInitialize:(e,l)=>{e.element.classList.add(`${cn}-cell`);const t=(0,dom_1.cloneDomElement)(l.elem);e.contentElements.push(t),e.element.appendChild(t)},cellRender:({contentElements:e,row:t,cache:a,column:n})=>{const c=t.item.data[n.name]===l;a[n.name]!==c&&e[0].setAttribute("data-checked",String(a[n.name]=c))},clickCell:e.toggleRowClick||e.disabled?e.clickCell:(a,n)=>{if(n?.ctrlKey||n?.shiftKey)return e.clickCell?.(a,n);const c=a.data[e.name],i=a.data[e.name]=c===l?t:l;return a.getSelectedCells().forEach((l=>{l.columnName===e.name&&(l.data[l.columnName]=i)})),e.endedEdit?.({before:{value:c,checked:c===l},after:{value:i,checked:i===l}},{columnName:e.name,data:a.data,index:a.rowNumber-1,id:a.id},!0),e.clickCell?e.clickCell(a,n):{renderHeaderCell:!0,renderFooterCell:!0}},clickRow:e.toggleRowClick&&!e.disabled?(a,n)=>{if(n?.ctrlKey||n?.shiftKey)return e.clickRow?.(a,n);const c=a.data[e.name],i=a.data[e.name]=c===l?t:l;return a.getSelectedRows().forEach((l=>{l.data[e.name]=i})),e.endedEdit?.({before:{value:c,checked:c===l},after:{value:i,checked:i===l}},{columnName:e.name,data:a.data,index:a.rowNumber-1,id:a.id},!0),e.clickRow?e.clickRow(a,n):{renderHeaderCells:!0,renderFooterCells:!0}}:e.clickRow,_preventClearSelected:!0,jsxStyle:react_1.default.createElement(react_1.default.Fragment,null,check_box_1.CheckButtonStyle,Style)}},Style=react_1.default.createElement(jsx_style_1.default,{id:cn},(()=>`\n.${cn}-hwrap {\n ${css_var_1.CssPV.flex}\n flex-flow: column nowrap;\n justify-content: center;\n align-items: center;\n padding-top: 1px;\n padding-left: 1px;\n cursor: pointer;\n height: 100%;\n min-width: 0px;\n flex: 1;\n}\n.${cn}-hwrap > .${list_view_1.listViewCn}-lbl {\n flex: none;\n}\n.${cn}-hcell[data-align="left"] .${cn}-hwrap {\n align-items: flex-start;\n}\n.${cn}-hcell[data-align="left"] .${cn}-hwrap > .${list_view_1.listViewCn}-lbl {\n text-align: left;\n}\n.${cn}-hcell[data-align="center"] .${cn}-hwrap > .${list_view_1.listViewCn}-lbl {\n text-align: center;\n}\n.${cn}-hcell[data-align="right"] .${cn}-hwrap {\n align-items: flex-end;\n}\n.${cn}-hcell[data-align="right"] .${cn}-hwrap > .${list_view_1.listViewCn}-lbl {\n text-align: right;\n}\n.${cn}-cell[data-disabled="false"] {\n cursor: pointer;\n}\n.${cn}-cell[data-disabled="true"] > .${cn} {\n ${css_var_1.CssPV.inactOpacity}\n}\n.${cn}-cell > .${cn}::after {\n transition: unset;\n}\n`));exports.default=ListViewCheckBoxColumn;