{"version":3,"file":"HorizontalCardActions.cjs","names":["_react","_interopRequireDefault","require","_Button","_Toggles","_Dropdown","_styledComponents","_jsxRuntime","Container","styled","div","HorizontalCardActions","exports","React","forwardRef","_ref","ref","actions","disabled","elRefs","setElRefs","useState","length","useEffect","Array","fill","map","createRef","useImperativeHandle","renderAction","item","index","componentType","content","jsx","IconButton","variant","useTransparentBackground","shape","action","tooltip","children","icon","ToggleButton","active","onChange","defaultState","activeState","DropdownButton","type","items","itemsType","onClick","actionIcon","actionLabel","actionVariant","actionLoading","multiSelect","scrollable","pinTopItem","maxHeight","Fragment"],"sources":["../../../src/Card/HorizontalCard/HorizontalCardActions.tsx"],"sourcesContent":["import React from 'react';\r\nimport {\r\n  HorizontalCardCustomContent,\r\n  HorizontalCardDropdownButton,\r\n  HorizontalCardIconButton,\r\n  HorizontalCardProps,\r\n  HorizontalCardToggleButton\r\n} from './types';\r\nimport {IconButton} from '../../Button';\r\nimport {ToggleButton} from '../../Toggles';\r\nimport {DropdownButton} from '../../Dropdown';\r\nimport styled from 'styled-components';\r\n\r\nconst Container = styled.div`\r\n  display: flex;\r\n`;\r\n\r\ntype Props = Pick<HorizontalCardProps, 'actions' | 'disabled'>;\r\n\r\nexport const HorizontalCardActions = React.forwardRef(({actions, disabled}: Props,\r\n                                                       ref: React.Ref<React.RefObject<HTMLButtonElement | null>[]>) => {\r\n\r\n  const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLButtonElement | null>[]>([]);\r\n  const length = actions?.length || 0;\r\n\r\n  React.useEffect(() => {\r\n    setElRefs(Array(length || 0).fill(null).map(() => React.createRef<HTMLButtonElement>()));\r\n  }, [length]);\r\n\r\n  React.useImperativeHandle(ref, () => elRefs, [elRefs]);\r\n\r\n  const renderAction = (item: HorizontalCardIconButton | HorizontalCardToggleButton | HorizontalCardDropdownButton | HorizontalCardCustomContent,\r\n                        index: number) => {\r\n    switch (item.componentType) {\r\n      case 'custom': {\r\n        return item.content\r\n      }\r\n      case 'icon': {\r\n        return <IconButton ref={elRefs[index]}\r\n                           key={index}\r\n                           variant={'secondary'}\r\n                           useTransparentBackground={true}\r\n                           shape={'circular'}\r\n                           action={item.action}\r\n                           tooltip={item.tooltip}\r\n                           disabled={item.disabled ?? disabled}>\r\n          {item.icon}\r\n        </IconButton>\r\n      }\r\n      case 'toggle': {\r\n        return <ToggleButton ref={elRefs[index]}\r\n                             key={index}\r\n                             active={item.active}\r\n                             onChange={item.onChange}\r\n                             defaultState={item.defaultState}\r\n                             activeState={item.activeState}\r\n                             disabled={item.disabled ?? disabled}/>\r\n      }\r\n      case 'dropdown': {\r\n        return <DropdownButton ref={elRefs[index]}\r\n                               key={index}\r\n                               type={'icon'}\r\n                               items={item.items}\r\n                               itemsType={item.itemsType}\r\n                               onClick={item.onClick}\r\n                               icon={item.icon}\r\n                               action={item.action}\r\n                               actionIcon={item.actionIcon}\r\n                               actionLabel={item.actionLabel}\r\n                               actionVariant={item.actionVariant}\r\n                               actionLoading={item.actionLoading}\r\n                               multiSelect={item.multiSelect}\r\n                               scrollable={item.scrollable}\r\n                               pinTopItem={item.pinTopItem}\r\n                               maxHeight={item.maxHeight}\r\n                               disabled={item.disabled ?? disabled}/>\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n  return (\r\n    <>\r\n      {\r\n        actions?.length &&\r\n        <Container>\r\n          {actions?.map((item, index) => renderAction(item, index))}\r\n        </Container>\r\n      }\r\n    </>\r\n  )\r\n});\r\n"],"mappings":"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","ignoreList":[]}