{"version":3,"file":"CellActions.mjs","sources":["../../../../src/components/Table/CellActions.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport * as React from 'react';\n\nimport { IconSize } from '../../types/icon';\nimport { t } from '../../utils/i18n';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Stack } from '../Layout/Stack/Stack';\nimport { TooltipPlacement } from '../Tooltip';\n\nimport { TableCellInspectorMode } from './TableCellInspector';\nimport { FILTER_FOR_OPERATOR, FILTER_OUT_OPERATOR, TableCellProps } from './types';\nimport { getTextAlign } from './utils';\n\ninterface CellActionProps extends TableCellProps {\n  previewMode: TableCellInspectorMode;\n}\n\ninterface CommonButtonProps {\n  size: IconSize;\n  showFilters?: boolean;\n  tooltipPlacement: TooltipPlacement;\n}\n\nexport function CellActions({\n  field,\n  cell,\n  previewMode,\n  showFilters,\n  onCellFilterAdded,\n  setInspectCell,\n}: CellActionProps) {\n  const isRightAligned = getTextAlign(field) === 'flex-end';\n  const inspectEnabled = Boolean(field.config.custom?.inspect);\n  const commonButtonProps: CommonButtonProps = {\n    size: 'sm',\n    tooltipPlacement: 'top',\n  };\n\n  const onFilterFor = useCallback(\n    (event: React.MouseEvent<HTMLButtonElement>) => {\n      if (onCellFilterAdded) {\n        onCellFilterAdded({ key: field.name, operator: FILTER_FOR_OPERATOR, value: cell.value });\n      }\n    },\n    [cell, field, onCellFilterAdded]\n  );\n  const onFilterOut = useCallback(\n    (event: React.MouseEvent<HTMLButtonElement>) => {\n      if (onCellFilterAdded) {\n        onCellFilterAdded({ key: field.name, operator: FILTER_OUT_OPERATOR, value: cell.value });\n      }\n    },\n    [cell, field, onCellFilterAdded]\n  );\n\n  return (\n    <div className={`cellActions${isRightAligned ? ' cellActionsLeft' : ''}`}>\n      <Stack gap={0.5}>\n        {inspectEnabled && (\n          <IconButton\n            name=\"eye\"\n            tooltip={t('grafana-ui.table.cell-inspect', 'Inspect value')}\n            onClick={() => {\n              if (setInspectCell) {\n                setInspectCell({ value: cell.value, mode: previewMode });\n              }\n            }}\n            {...commonButtonProps}\n          />\n        )}\n        {showFilters && (\n          <IconButton\n            name={'search-plus'}\n            onClick={onFilterFor}\n            tooltip={t('grafana-ui.table.cell-filter-on', 'Filter for value')}\n            {...commonButtonProps}\n          />\n        )}\n        {showFilters && (\n          <IconButton\n            name={'search-minus'}\n            onClick={onFilterOut}\n            tooltip={t('grafana-ui.table.cell-filter-out', 'Filter out value')}\n            {...commonButtonProps}\n          />\n        )}\n      </Stack>\n    </div>\n  );\n}\n"],"names":[],"mappings":";;;;;;;;AAuBO,SAAS,WAAY,CAAA;AAAA,EAC1B,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAoB,EAAA;AA9BpB,EAAA,IAAA,EAAA;AA+BE,EAAM,MAAA,cAAA,GAAiB,YAAa,CAAA,KAAK,CAAM,KAAA,UAAA;AAC/C,EAAA,MAAM,iBAAiB,OAAQ,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,MAAO,CAAA,MAAA,KAAb,mBAAqB,OAAO,CAAA;AAC3D,EAAA,MAAM,iBAAuC,GAAA;AAAA,IAC3C,IAAM,EAAA,IAAA;AAAA,IACN,gBAAkB,EAAA;AAAA,GACpB;AAEA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,KAA+C,KAAA;AAC9C,MAAA,IAAI,iBAAmB,EAAA;AACrB,QAAkB,iBAAA,CAAA,EAAE,KAAK,KAAM,CAAA,IAAA,EAAM,UAAU,mBAAqB,EAAA,KAAA,EAAO,IAAK,CAAA,KAAA,EAAO,CAAA;AAAA;AACzF,KACF;AAAA,IACA,CAAC,IAAM,EAAA,KAAA,EAAO,iBAAiB;AAAA,GACjC;AACA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,KAA+C,KAAA;AAC9C,MAAA,IAAI,iBAAmB,EAAA;AACrB,QAAkB,iBAAA,CAAA,EAAE,KAAK,KAAM,CAAA,IAAA,EAAM,UAAU,mBAAqB,EAAA,KAAA,EAAO,IAAK,CAAA,KAAA,EAAO,CAAA;AAAA;AACzF,KACF;AAAA,IACA,CAAC,IAAM,EAAA,KAAA,EAAO,iBAAiB;AAAA,GACjC;AAEA,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,CAAc,WAAA,EAAA,cAAA,GAAiB,kBAAqB,GAAA,EAAE,CACpE,CAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,KAAM,EAAA,EAAA,GAAA,EAAK,GACT,EAAA,QAAA,EAAA;AAAA,IACC,cAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,KAAA;AAAA,QACL,OAAA,EAAS,CAAE,CAAA,+BAAA,EAAiC,eAAe,CAAA;AAAA,QAC3D,SAAS,MAAM;AACb,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,cAAA,CAAe,EAAE,KAAO,EAAA,IAAA,CAAK,KAAO,EAAA,IAAA,EAAM,aAAa,CAAA;AAAA;AACzD,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IAED,WACC,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAM,EAAA,aAAA;AAAA,QACN,OAAS,EAAA,WAAA;AAAA,QACT,OAAA,EAAS,CAAE,CAAA,iCAAA,EAAmC,kBAAkB,CAAA;AAAA,QAC/D,GAAG;AAAA;AAAA,KACN;AAAA,IAED,WACC,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAM,EAAA,cAAA;AAAA,QACN,OAAS,EAAA,WAAA;AAAA,QACT,OAAA,EAAS,CAAE,CAAA,kCAAA,EAAoC,kBAAkB,CAAA;AAAA,QAChE,GAAG;AAAA;AAAA;AACN,GAAA,EAEJ,CACF,EAAA,CAAA;AAEJ;;;;"}