UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

72 lines 2.29 kB
import { find } from "lodash"; import React from "react"; import CustomAccordion from "./components/CustomAccordion"; import DataSource from "./components/DataSource"; export default function DataConfigurationArea(_ref) { let { groups, onItemClick, editableTitle, onGroupTitleEdit, deletableGroups, onGroupDelete, onItemDelete, deletableItems, groupFooter, draggableItems, onItemDragEnd, selectedItems, titleRightAdornment, defaultExpanded } = _ref; return /*#__PURE__*/React.createElement("div", { className: "column" }, groups.map((_ref2, groupIndex) => { let { id: groupId, name, items } = _ref2; return /*#__PURE__*/React.createElement(CustomAccordion, { defaultExpanded: defaultExpanded, draggableChildren: draggableItems, onDragEnd: result => { if (onItemDragEnd) { onItemDragEnd(groupId, result); } }, onDelete: onGroupDelete, deletable: deletableGroups, onTitleChange: onGroupTitleEdit, editableTitle: editableTitle, key: "".concat(groupId, "-accordion"), id: groupId, title: name, footer: /*#__PURE__*/React.createElement("div", null, groupFooter ? groupFooter({ id: groupId, name, items }, groupIndex) : null), titleRightAdornment: titleRightAdornment }, /*#__PURE__*/React.createElement("div", { className: "column" }, items === null || items === void 0 ? void 0 : items.map((item, index) => /*#__PURE__*/React.createElement("div", { style: { padding: "8px 0" }, key: "".concat(item.id, "-item") }, /*#__PURE__*/React.createElement(DataSource, { index: index, draggable: draggableItems, subLabel: item.subLabel, icon: item.icon, deletable: deletableItems, onDelete: id => onItemDelete && onItemDelete(groupId, id), onClick: itemId => onItemClick(groupId, itemId), id: item.id, label: item.name, selected: Boolean(find(selectedItems, selectedItem => selectedItem.groupId === groupId && selectedItem.itemId === item.id)) }))))); })); } export { DataSource as DataConfigurationAreaItem, CustomAccordion as DataConfigurationAreaGroup };