UNPKG

es-grid-template

Version:

es-grid-template

234 lines (224 loc) 8.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ColumnsGroup = void 0; var _becoxyIcons = require("becoxy-icons"); var _react = _interopRequireWildcard(require("react")); var _antd = require("antd"); var _rcMasterUi = require("rc-master-ui"); var _styledComponents = _interopRequireDefault(require("styled-components")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } // import { // // groupArrayByColumns, // // ungroupArray, // // useOnClickOutside // } from "../../hooks" // import {SettingOutlined} from "@ant-design/icons"; const BoxAction = _styledComponents.default.div.withConfig({ displayName: "BoxAction", componentId: "es-grid-template__sc-1uj3tyy-0" })(["border-top:1px solid #c4c4c4;padding-top:.75rem;display:flex;justify-content:end;gap:10px;.btn-action{background:none !important;border:none !important;&.btn-action-submit{color:#df4318;&:disabled{background-color:#f0f0f0 !important;}&:hover{color:#df4318 !important;}}&:hover{background-color:#f0f0f0 !important;}}"]); const ColumnsGroup = props => { const { columns, columnsGrouped, onSubmit, unClearableLevel, defaultGroupColumns, t } = props; const menuRef = (0, _react.useRef)(); const [tempGroup, setTempGroup] = (0, _react.useState)([]); const [clicked, setClicked] = (0, _react.useState)(false); const rsCol = _react.default.useMemo(() => { return columns.filter(it => it.hidden !== true && !tempGroup.includes(it.field)); }, [columns, tempGroup]); const options = _react.default.useMemo(() => { return rsCol.map(it => ({ ...it, value: it.field, label: t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText })); }, [rsCol, t]); // React.useEffect(() => { // if(columnsGrouped) { // setTempGroup([...columnsGrouped]) // } // // }, [!!columnsGrouped]) const onChangeGroupColumns = (option, index) => { // if (option) { // tempGroup[index] = option // } else { // tempGroup.splice(index, 1) // } // setTempGroup([...tempGroup]) const cloneTemp = [...tempGroup]; if (option) { cloneTemp[index] = option; } else { cloneTemp.splice(index, 1); } setTempGroup([...cloneTemp]); }; const handleGroup = () => { // setColumnsGrouped([...tempGroup]) setClicked(false); // const dt = ungroupArray(dataSource) // const rs = groupArrayByColumns(dt, [...tempGroup]) // setResource([...rs]) onSubmit([...tempGroup]); }; const handleClear = () => { // setColumnsGrouped([]) setTempGroup(defaultGroupColumns ? defaultGroupColumns : []); // setIsOpen(false) setClicked(false); // const dt = ungroupArray(dataSource) // const rs = groupArrayByColumns(dt, []) // setResource([...rs]) onSubmit(defaultGroupColumns ? defaultGroupColumns : []); }; const handleClickChange = open => { console.log('open', open); setClicked(open); if (open) { if (columnsGrouped) { setTempGroup([...columnsGrouped]); } } if (!open) { setTempGroup([]); } }; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Popover, { placement: 'bottomLeft', content: /*#__PURE__*/_react.default.createElement("div", { style: { minWidth: 250 } }, /*#__PURE__*/_react.default.createElement("div", { ref: menuRef, style: { position: 'relative' } }, /*#__PURE__*/_react.default.createElement("p", { className: 'fw-bold' }, "Nh\xF3m d\u1EEF li\u1EC7u theo c\u1ED9t"), /*#__PURE__*/_react.default.createElement("div", { className: 'mb-1', style: { marginBottom: '1rem' } }, /*#__PURE__*/_react.default.createElement("p", { className: 'm-0', style: { margin: 0 } }, "M\u1EE9c 1"), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, { style: { width: '100%' } // labelInValue={true} // options={columns.filter((it: any) => !tempGroup.includes(it.field))} // options={columns && columns.length > 0 ? options : []} , options: options, value: tempGroup?.[0], onChange: val => onChangeGroupColumns(val, 0), allowClear: !tempGroup?.[1] && !(unClearableLevel && unClearableLevel - 1 >= 0) // fieldNames={{ // value: 'field', // label: 'headerText' // }} , labelRender: labelProps => { const it = columns.find(col => col.field === labelProps.value); return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText; } // hideSelectedOptions })), /*#__PURE__*/_react.default.createElement("div", { className: 'mb-1', style: { marginBottom: '1rem' } }, /*#__PURE__*/_react.default.createElement("p", { className: 'm-0', style: { margin: 0 } }, "M\u1EE9c 2"), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, { style: { width: '100%' }, options: options, value: tempGroup?.[1], onChange: val => onChangeGroupColumns(val, 1), allowClear: !tempGroup?.[2] && !(unClearableLevel && unClearableLevel - 2 >= 0) // hideSelectedOptions // fieldNames={{ // value: 'field', // label: 'headerText' // }} , labelRender: labelProps => { const it = columns.find(col => col.field === labelProps.value); return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText; } })), /*#__PURE__*/_react.default.createElement("div", { className: 'mb-1', style: { marginBottom: '1rem' } }, /*#__PURE__*/_react.default.createElement("p", { className: 'm-0', style: { margin: 0 } }, "M\u1EE9c 3"), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, { style: { width: '100%' }, options: options, value: tempGroup?.[2], onChange: val => onChangeGroupColumns(val, 2), allowClear: !!tempGroup?.[2] && !(unClearableLevel && unClearableLevel - 3 >= 0) // fieldNames={{ // value: 'field', // label: 'headerText' // }} , labelRender: labelProps => { const it = columns.find(col => col.field === labelProps.value); return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText; } }))), /*#__PURE__*/_react.default.createElement(BoxAction, { className: 'px-1' }, /*#__PURE__*/_react.default.createElement(_antd.Button // className={classnames('btn-action btn-action-submit', { // // disable: !columns.find((item) => item.visible !== false || item.visible) // })} , { onClick: handleGroup // disabled={!columns.find((item) => item.visible !== false || item.visible)} }, t ? t('Thực hiện') : 'Thực hiện'), /*#__PURE__*/_react.default.createElement(_antd.Button, { className: 'btn-action btn-action-cancel', onClick: handleClear }, t ? t('Clear') : 'Clear'))), trigger: "click", open: clicked, onOpenChange: handleClickChange, arrow: false }, /*#__PURE__*/_react.default.createElement(_antd.Tooltip, { arrow: false, title: 'Nhóm dữ liệu' }, /*#__PURE__*/_react.default.createElement(_becoxyIcons.Group, { fontSize: 18, style: { cursor: 'pointer' } })))); }; exports.ColumnsGroup = ColumnsGroup;