{"version":3,"file":"index.mjs","sources":["../../../../../src/components/InteractiveTable/Expander/index.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { CellProps, HeaderProps } from 'react-table';\n\nimport { t, Trans } from '@grafana/i18n';\n\nimport { IconButton } from '../../IconButton/IconButton';\n\nconst expanderContainerStyles = css({\n  display: 'flex',\n  alignItems: 'center',\n  height: '100%',\n});\n\nexport function ExpanderCell<K extends object>({ row, __rowID }: CellProps<K, void>) {\n  return (\n    <div className={expanderContainerStyles}>\n      <IconButton\n        tooltip={t('grafana-ui.interactive-table.expand-row-tooltip', 'Toggle row expanded')}\n        // @ts-expect-error react-table doesn't ship with useExpanded types and we can't use declaration merging without affecting the table viz\n        aria-controls={row.isExpanded ? __rowID : undefined}\n        // @ts-expect-error same as the line above\n        name={row.isExpanded ? 'angle-down' : 'angle-right'}\n        // @ts-expect-error same as the line above\n        aria-expanded={row.isExpanded}\n        // @ts-expect-error same as the line above\n        {...row.getToggleRowExpandedProps()}\n        size=\"lg\"\n      />\n    </div>\n  );\n}\n\nexport function EmptyExpanderHeader() {\n  return (\n    <span className=\"sr-only\">\n      <Trans i18nKey=\"grafana-ui.interactive-table.expand-row-header\">Row expander</Trans>\n    </span>\n  );\n}\n\nexport function ExpanderHeader<K extends object>({ isAllRowsExpanded, toggleAllRowsExpanded }: HeaderProps<K>) {\n  return (\n    <div className={expanderContainerStyles}>\n      <IconButton\n        aria-label={\n          !isAllRowsExpanded\n            ? t('grafana-ui.interactive-table.aria-label-expand-all', 'Expand all rows')\n            : t('grafana-ui.interactive-table.aria-label-collapse-all', 'Collapse all rows')\n        }\n        name={!isAllRowsExpanded ? 'table-expand-all' : 'table-collapse-all'}\n        onClick={() => toggleAllRowsExpanded()}\n        size={'lg'}\n        tooltip={\n          !isAllRowsExpanded\n            ? t('grafana-ui.interactive-table.tooltip-expand-all', 'Expand all rows')\n            : t('grafana-ui.interactive-table.tooltip-collapse-all', 'Collapse all rows')\n        }\n        variant={'secondary'}\n      />\n    </div>\n  );\n}\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,0BAA0B,GAAA,CAAI;AAAA,EAClC,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,QAAA;AAAA,EACZ,MAAA,EAAQ;AACV,CAAC,CAAA;AAEM,SAAS,YAAA,CAA+B,EAAE,GAAA,EAAK,OAAA,EAAQ,EAAuB;AACnF,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,uBAAA,EACd,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAA,CAAE,iDAAA,EAAmD,qBAAqB,CAAA;AAAA,MAEnF,eAAA,EAAe,GAAA,CAAI,UAAA,GAAa,OAAA,GAAU,KAAA,CAAA;AAAA,MAE1C,IAAA,EAAM,GAAA,CAAI,UAAA,GAAa,YAAA,GAAe,aAAA;AAAA,MAEtC,iBAAe,GAAA,CAAI,UAAA;AAAA,MAElB,GAAG,IAAI,yBAAA,EAA0B;AAAA,MAClC,IAAA,EAAK;AAAA;AAAA,GACP,EACF,CAAA;AAEJ;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,uBACE,GAAA,CAAC,UAAK,SAAA,EAAU,SAAA,EACd,8BAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,gDAAA,EAAiD,QAAA,EAAA,cAAA,EAAY,CAAA,EAC9E,CAAA;AAEJ;AAEO,SAAS,cAAA,CAAiC,EAAE,iBAAA,EAAmB,qBAAA,EAAsB,EAAmB;AAC7G,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,uBAAA,EACd,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,YAAA,EACE,CAAC,iBAAA,GACG,CAAA,CAAE,sDAAsD,iBAAiB,CAAA,GACzE,CAAA,CAAE,sDAAA,EAAwD,mBAAmB,CAAA;AAAA,MAEnF,IAAA,EAAM,CAAC,iBAAA,GAAoB,kBAAA,GAAqB,oBAAA;AAAA,MAChD,OAAA,EAAS,MAAM,qBAAA,EAAsB;AAAA,MACrC,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EACE,CAAC,iBAAA,GACG,CAAA,CAAE,mDAAmD,iBAAiB,CAAA,GACtE,CAAA,CAAE,mDAAA,EAAqD,mBAAmB,CAAA;AAAA,MAEhF,OAAA,EAAS;AAAA;AAAA,GACX,EACF,CAAA;AAEJ;;;;"}