@amboss/design-system 2.4.3 → 2.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/components/Box/Box.d.ts +3 -1
- package/build/cjs/components/Box/Box.js +1 -1
- package/build/cjs/components/EntityTree/BaseEntityTree.d.ts +3 -1
- package/build/cjs/components/EntityTree/BaseEntityTree.js +1 -1
- package/build/cjs/components/Patterns/Modal/Modal.js +3 -3
- package/build/cjs/web-tokens/visualConfig.js +1 -1
- package/build/esm/components/Box/Box.d.ts +3 -1
- package/build/esm/components/Box/Box.js +1 -1
- package/build/esm/components/EntityTree/BaseEntityTree.d.ts +3 -1
- package/build/esm/components/EntityTree/BaseEntityTree.js +1 -1
- package/build/esm/components/Patterns/Modal/Modal.js +3 -3
- package/build/esm/web-tokens/visualConfig.js +1 -1
- package/build/scss/_variables.scss +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AriaAttributes } from "react";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import type { Property } from "csstype";
|
|
3
4
|
import type { SpaceSizes, TextAlignment, MQ } from "../../types";
|
|
4
5
|
export type BoxProps = {
|
|
5
6
|
children: React.ReactNode[] | React.ReactNode;
|
|
@@ -29,8 +30,9 @@ export type BoxProps = {
|
|
|
29
30
|
*/
|
|
30
31
|
ariaAttributes?: AriaAttributes;
|
|
31
32
|
"data-e2e-test-id"?: string;
|
|
33
|
+
height?: Property.Height | MQ<Property.Height>;
|
|
32
34
|
};
|
|
33
|
-
export declare function Box({ children, space, vSpace, rSpace, lSpace, tSpace, bSpace, alignText, role, ariaAttributes, "data-e2e-test-id": dataE2eTestId, }: BoxProps): React.ReactElement;
|
|
35
|
+
export declare function Box({ children, space, vSpace, rSpace, lSpace, tSpace, bSpace, alignText, role, ariaAttributes, height, "data-e2e-test-id": dataE2eTestId, }: BoxProps): React.ReactElement;
|
|
34
36
|
export declare namespace Box {
|
|
35
37
|
var defaultProps: Partial<BoxProps>;
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Box",{enumerable:!0,get:function(){return Box}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=_interop_require_default._(require("react")),_styled=_interop_require_default._(require("@emotion/styled")),_mediaQueries=require("../../shared/mediaQueries"),StyledBox=(0,_styled.default)("div",{target:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Box",{enumerable:!0,get:function(){return Box}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=_interop_require_default._(require("react")),_ispropvalid=_interop_require_default._(require("@emotion/is-prop-valid")),_styled=_interop_require_default._(require("@emotion/styled")),_mediaQueries=require("../../shared/mediaQueries"),StyledBox=(0,_styled.default)("div",{shouldForwardProp:prop=>(0,_ispropvalid.default)(prop)&&"height"!==prop,target:"e1sgh3qq0",label:"StyledBox"})(({theme,space,alignText="left"})=>(0,_mediaQueries.mq)({padding:[space,theme.variables.size.spacing],textAlign:[alignText,{left:"left",right:"right",center:"center"}]}),({theme,vSpace})=>(0,_mediaQueries.mq)({paddingTop:[vSpace,theme.variables.size.spacing],paddingBottom:[vSpace,theme.variables.size.spacing]}),({theme,rSpace,lSpace,tSpace,bSpace})=>(0,_mediaQueries.mq)({paddingLeft:[lSpace,theme.variables.size.spacing],paddingRight:[rSpace,theme.variables.size.spacing],paddingTop:[tSpace,theme.variables.size.spacing],paddingBottom:[bSpace,theme.variables.size.spacing]}),({height})=>(0,_mediaQueries.mqValue)({height}),()=>({boxSizing:"border-box"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvQm94L0JveC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0JveC9Cb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1wcm9wcy1uby1zcHJlYWRpbmcgKi9cbmltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tIFwiQGVtb3Rpb24vaXMtcHJvcC12YWxpZFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IG1xLCBtcVZhbHVlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9tZWRpYVF1ZXJpZXNcIjtcbmltcG9ydCB0eXBlIHsgU3BhY2VTaXplcywgVGV4dEFsaWdubWVudCwgTVEgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgQm94UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqIFJlcHJlc2VudHMgYm90aCB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBwYWRkaW5ncy4gV2hlbiB1c2VkIGFsb25lLCB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBwYWRkaW5ncyB3aWxsIGhhdmUgdGhlIHNhbWUgdmFsdWUuXG4gICAqIFVzZSBcInZTcGFjZVwiIHByb3AgdG8gb3ZlcnJpZGUgdmVydGljYWwgcGFkZGluZyB2YWx1ZSBpbiBjYXNlIHlvdSB3YW50IGl0IGRpZmZlcmVudC5cbiAgICogc3BlY2lmeSBbc21hbGwgc2NyZWVuIHBhZGRpbmcsIG1lZGl1bSBzY3JlZW4gcGFkZGluZywgbGFyZ2Ugc2NyZWVuIHBhZGRpbmddIG9yIG9uZSBwYWRkaW5nIGZvciBhbGwgc2NyZWVuIHNpemVzXG4gICAqICovXG4gIHNwYWNlPzogU3BhY2VTaXplcyB8IE1RPFNwYWNlU2l6ZXM+O1xuICAvKiogUmVwcmVzZW50cyB2ZXJ0aWNhbCBwYWRkaW5nLiBVc2VkIHRvIG92ZXJyaWRlIHRoZSB2ZXJ0aWNhbCBwYWRkaW5nIGZyb20gXCJzcGFjZVwiIHByb3AuXG4gICAqIHNwZWNpZnkgW3NtYWxsIHNjcmVlbiB2ZXJ0aWNhbCBwYWRkaW5nLCBtZWRpdW0gc2NyZWVuIHZlcnRpY2FsIHBhZGRpbmcsIGxhcmdlIHNjcmVlbiB2ZXJ0aWNhbCBwYWRkaW5nXSBvciBvbmUgcGFkZGluZyBmb3IgYWxsIHNjcmVlbiBzaXplcyAqL1xuICB2U3BhY2U/OiBTcGFjZVNpemVzIHwgTVE8U3BhY2VTaXplcz47XG4gIC8qKiByaWdodCBwYWRkaW5nICogKi9cbiAgclNwYWNlPzogU3BhY2VTaXplcyB8IE1RPFNwYWNlU2l6ZXM+O1xuICAvKiogbGVmdCBwYWRkaW5nICogKi9cbiAgbFNwYWNlPzogU3BhY2VTaXplcyB8IE1RPFNwYWNlU2l6ZXM+O1xuICAvKiogdG9wIHBhZGRpbmcgKiAqL1xuICB0U3BhY2U/OiBTcGFjZVNpemVzIHwgTVE8U3BhY2VTaXplcz47XG4gIC8qKiBib3R0b20gcGFkZGluZyAqICovXG4gIGJTcGFjZT86IFNwYWNlU2l6ZXMgfCBNUTxTcGFjZVNpemVzPjtcblxuICAvKiogVGV4dCBhbGlnbm1lbnQgcHJvcC5cbiAgICogc3BlY2lmeSBbc21hbGwgc2NyZWVuIGFsaWduVGV4dCwgbWVkaXVtIHNjcmVlbiBhbGlnblRleHQsIGxhcmdlIHNjcmVlbiBhbGlnblRleHRdIG9yIG9uZSBhbGlnblRleHQgZm9yIGFsbCBzY3JlZW4gc2l6ZXMgKi9cbiAgYWxpZ25UZXh0PzogVGV4dEFsaWdubWVudCB8IE1RPFRleHRBbGlnbm1lbnQ+O1xuXG4gIC8qKiBBcmlhIHByb3BlcnR5IGZvciBhc3NpZ25pbmcgYW4gYWNjZXNzaWJsZSByb2xlIHRvIGFuIGVsZW1lbnRcbiAgICogZWcuIGRpYWxvZywgdGFiLCB0b29sdGlwIGV0Yy4gKi9cbiAgcm9sZT86IHN0cmluZztcbiAgLyoqIEFkZGl0aW9uYWwgYXJpYSBhdHRyaWJ1dGVzLiBbc2VlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9EZWZpbml0ZWx5VHlwZWQvRGVmaW5pdGVseVR5cGVkL2Jsb2IvMDI1NDljMDgzZTlkNjJiNjA0MDkxZDc3MGM0NTY4ZDQ3MjgyY2RkMC90eXBlcy9yZWFjdC9pbmRleC5kLnRzI0wxNDYxKVxuICAgKi9cbiAgYXJpYUF0dHJpYnV0ZXM/OiBBcmlhQXR0cmlidXRlcztcblxuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcblxuICBoZWlnaHQ/OiBQcm9wZXJ0eS5IZWlnaHQgfCBNUTxQcm9wZXJ0eS5IZWlnaHQ+O1xufTtcblxuY29uc3QgZGVmYXVsdFByb3BzOiBQYXJ0aWFsPEJveFByb3BzPiA9IHtcbiAgc3BhY2U6IFwieGxcIixcbn07XG5cbmNvbnN0IFN0eWxlZEJveCA9IHN0eWxlZChcImRpdlwiLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gaXNQcm9wVmFsaWQocHJvcCkgJiYgcHJvcCAhPT0gXCJoZWlnaHRcIixcbn0pPEJveFByb3BzPihcbiAgKHsgdGhlbWUsIHNwYWNlLCBhbGlnblRleHQgPSBcImxlZnRcIiB9KSA9PlxuICAgIG1xKHtcbiAgICAgIHBhZGRpbmc6IFtzcGFjZSwgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ10sXG4gICAgICB0ZXh0QWxpZ246IFtcbiAgICAgICAgYWxpZ25UZXh0LFxuICAgICAgICB7IGxlZnQ6IFwibGVmdFwiLCByaWdodDogXCJyaWdodFwiLCBjZW50ZXI6IFwiY2VudGVyXCIgfSxcbiAgICAgIF0sXG4gICAgfSksXG4gICh7IHRoZW1lLCB2U3BhY2UgfSkgPT5cbiAgICBtcSh7XG4gICAgICBwYWRkaW5nVG9wOiBbdlNwYWNlLCB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nXSxcbiAgICAgIHBhZGRpbmdCb3R0b206IFt2U3BhY2UsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmddLFxuICAgIH0pLFxuICAoeyB0aGVtZSwgclNwYWNlLCBsU3BhY2UsIHRTcGFjZSwgYlNwYWNlIH0pID0+XG4gICAgbXEoe1xuICAgICAgcGFkZGluZ0xlZnQ6IFtsU3BhY2UsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmddLFxuICAgICAgcGFkZGluZ1JpZ2h0OiBbclNwYWNlLCB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nXSxcbiAgICAgIHBhZGRpbmdUb3A6IFt0U3BhY2UsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmddLFxuICAgICAgcGFkZGluZ0JvdHRvbTogW2JTcGFjZSwgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ10sXG4gICAgfSksXG4gICh7IGhlaWdodCB9KSA9PlxuICAgIG1xVmFsdWUoe1xuICAgICAgaGVpZ2h0LFxuICAgIH0pLFxuICAoKSA9PiAoe1xuICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gQm94KHtcbiAgY2hpbGRyZW4sXG4gIHNwYWNlLFxuICB2U3BhY2UsXG4gIHJTcGFjZSxcbiAgbFNwYWNlLFxuICB0U3BhY2UsXG4gIGJTcGFjZSxcbiAgYWxpZ25UZXh0LFxuICByb2xlLFxuICBhcmlhQXR0cmlidXRlcyxcbiAgaGVpZ2h0LFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbn06IEJveFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQm94XG4gICAgICBzcGFjZT17c3BhY2V9XG4gICAgICB2U3BhY2U9e3ZTcGFjZX1cbiAgICAgIHJTcGFjZT17clNwYWNlfVxuICAgICAgbFNwYWNlPXtsU3BhY2V9XG4gICAgICB0U3BhY2U9e3RTcGFjZX1cbiAgICAgIGJTcGFjZT17YlNwYWNlfVxuICAgICAgYWxpZ25UZXh0PXthbGlnblRleHR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9XCJCb3hcIlxuICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvU3R5bGVkQm94PlxuICApO1xufVxuXG5Cb3guZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdEa0IifQ== */");function Box({children,space,vSpace,rSpace,lSpace,tSpace,bSpace,alignText,role,ariaAttributes,height,"data-e2e-test-id":dataE2eTestId}){return _react.default.createElement(StyledBox,{space:space,vSpace:vSpace,rSpace:rSpace,lSpace:lSpace,tSpace:tSpace,bSpace:bSpace,alignText:alignText,role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Box",height:height,...ariaAttributes},children)}Box.defaultProps={space:"xl"};
|
|
@@ -27,6 +27,8 @@ export type EntityTreeProps = {
|
|
|
27
27
|
* @param ids - Updated expanded node ids
|
|
28
28
|
*/
|
|
29
29
|
onToggle?: (ids: NodeID[]) => void;
|
|
30
|
+
/** Active node id that should be highlighted */
|
|
31
|
+
activeId?: NodeID;
|
|
30
32
|
/** If provided, the filter function is used to filter the tree. */
|
|
31
33
|
filterFn?: (node: TreeNode) => boolean;
|
|
32
34
|
/** Callback function to handle tree change
|
|
@@ -39,5 +41,5 @@ export type EntityTreeProps = {
|
|
|
39
41
|
renderRightContent?: (props: TreeNode & Parameters<EntityListItemProps["renderRight"]>[0]) => React.ReactNode;
|
|
40
42
|
"data-e2e-test-id"?: string;
|
|
41
43
|
} & PartialEntityListItemProps;
|
|
42
|
-
export declare const BaseEntityTree: ({ data, selectedIds, onSelectionChange, expandedIds, onToggle, filterFn, onTreeChange, hideBorder, size, showItemsCount, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
44
|
+
export declare const BaseEntityTree: ({ data, selectedIds, onSelectionChange, expandedIds, onToggle, activeId, filterFn, onTreeChange, hideBorder, size, showItemsCount, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
43
45
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityTree",{enumerable:!0,get:function(){return BaseEntityTree}});const _react=require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styledcomponents=require("../EntityList/styled-components"),_EntityListItem=require("../EntityList/EntityListItem"),_Text=require("../Typography/Text/Text"),_Checkbox=require("../Form/Checkbox/Checkbox"),_tree=require("./tree"),getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},makeRenderTreeBranches=({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,hideBorder,size,showItemsCount,renderRightContent})=>({data,level,renderFn,isParentsLastOfLvl})=>data.map(node=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=(0,_tree.getLeafNodeIds)(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl}),lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState;return _react.default.createElement(_EntityListItem.EntityListItem,{key:node.id,role:"treeitem",hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),size:size,isClickable:!0,lSpaceStep:level,"aria-label":node.label,description:node.description,renderLabel:({textSize})=>_react.default.createElement(_react.default.Fragment,null,node.label,showItemsCount&&!lastLeaf&&_react.default.createElement(_Text.Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isExpanded:isExpanded,isDisabledExpand:expandAll,onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},onClick:readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),renderLeft:readOnly?void 0:()=>_react.default.createElement(_Checkbox.CheckboxRaw,{size:"s",name:node.label,checked:"checked"===nodeCheckboxState[node.id],indeterminate:"indeterminate"===nodeCheckboxState[node.id],onChange:()=>handleSelectionChange(node.id)}),renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0},hasChildren&&_react.default.createElement("ul",null,renderFn({data:node.children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))}),BaseEntityTree=({data,selectedIds,onSelectionChange,expandedIds=[],onToggle,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>(0,_tree.getNodeChildrenMap)(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>(0,_tree.getTreeCheckboxState)(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),dataShown=filterFn?data.map(tree=>(0,_tree.filterTree)(tree,filterFn)).filter(Boolean):data;(0,_react.useEffect)(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>(0,_tree.mapTree)(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=(0,_tree.getLeafNodeIds)(nodeChildrenMap,targetId);updatedSelectedIds="checked"===nodeCheckboxState[targetId]?selectedIds.filter(id=>!affectedLeafNodeIds.includes(id)):selectedIds.concat(affectedLeafNodeIds)}onSelectionChange(updatedSelectedIds)}},handleToggle:targetId=>{onToggle&&onToggle(expandedIds.includes(targetId)?expandedIds.filter(id=>id!==targetId):expandedIds.concat([targetId]))},expandAll:!!filterFn,hideBorder,size,showItemsCount,renderRightContent});return _react.default.createElement(_styledcomponents.StyledList,{role:"tree","data-e2e-test-id":dataE2eTestId,"data-ds-id":"EntityTree",size:size},renderTreeBranches({data:dataShown,level:0,renderFn:renderTreeBranches}))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityTree",{enumerable:!0,get:function(){return BaseEntityTree}});const _react=require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styledcomponents=require("../EntityList/styled-components"),_EntityListItem=require("../EntityList/EntityListItem"),_Text=require("../Typography/Text/Text"),_Checkbox=require("../Form/Checkbox/Checkbox"),_tree=require("./tree"),getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},makeRenderTreeBranches=({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,hideBorder,size,showItemsCount,renderRightContent,activeId})=>({data,level,renderFn,isParentsLastOfLvl})=>data.map(node=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=(0,_tree.getLeafNodeIds)(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl}),lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState;return _react.default.createElement(_EntityListItem.EntityListItem,{key:node.id,role:"treeitem",hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),size:size,isClickable:!0,lSpaceStep:level,"aria-label":node.label,description:node.description,renderLabel:({textSize})=>_react.default.createElement(_react.default.Fragment,null,node.label,showItemsCount&&!lastLeaf&&_react.default.createElement(_Text.Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isActive:node.id===activeId,isExpanded:isExpanded,isDisabledExpand:expandAll,onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},onClick:readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),renderLeft:readOnly?void 0:()=>_react.default.createElement(_Checkbox.CheckboxRaw,{size:"s",name:node.label,checked:"checked"===nodeCheckboxState[node.id],indeterminate:"indeterminate"===nodeCheckboxState[node.id],onChange:()=>handleSelectionChange(node.id)}),renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0},hasChildren&&_react.default.createElement("ul",null,renderFn({data:node.children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))}),BaseEntityTree=({data,selectedIds,onSelectionChange,expandedIds=[],onToggle,activeId,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>(0,_tree.getNodeChildrenMap)(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>(0,_tree.getTreeCheckboxState)(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),dataShown=filterFn?data.map(tree=>(0,_tree.filterTree)(tree,filterFn)).filter(Boolean):data;(0,_react.useEffect)(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>(0,_tree.mapTree)(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=(0,_tree.getLeafNodeIds)(nodeChildrenMap,targetId);updatedSelectedIds="checked"===nodeCheckboxState[targetId]?selectedIds.filter(id=>!affectedLeafNodeIds.includes(id)):selectedIds.concat(affectedLeafNodeIds)}onSelectionChange(updatedSelectedIds)}},handleToggle:targetId=>{onToggle&&onToggle(expandedIds.includes(targetId)?expandedIds.filter(id=>id!==targetId):expandedIds.concat([targetId]))},expandAll:!!filterFn,hideBorder,size,showItemsCount,renderRightContent,activeId});return _react.default.createElement(_styledcomponents.StyledList,{role:"tree","data-e2e-test-id":dataE2eTestId,"data-ds-id":"EntityTree",size:size},renderTreeBranches({data:dataShown,level:0,renderFn:renderTreeBranches}))};
|