@grafana/ui
Version:
Grafana Components Library
1 lines • 4.93 kB
Source Map (JSON)
{"version":3,"file":"TableCellActions.mjs","sources":["../../../../../../src/components/Table/TableNG/Cells/TableCellActions.tsx"],"sourcesContent":["import { WKT } from 'ol/format';\nimport { Geometry } from 'ol/geom';\n\nimport { FieldType } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { TableCellInspectorMode } from '../../TableCellInspector';\nimport { TableCellDisplayMode } from '../../types';\nimport { FILTER_FOR_OPERATOR, FILTER_OUT_OPERATOR, TableCellActionsProps } from '../types';\n\nexport function TableCellActions(props: TableCellActionsProps) {\n const {\n field,\n value,\n cellOptions,\n displayName,\n setIsInspecting,\n setContextMenuProps,\n onCellFilterAdded,\n className,\n cellInspect,\n showFilters,\n } = props;\n\n return (\n // stopping propagation to prevent clicks within the actions menu from triggering the cell click events\n // for things like the data links tooltip.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n <div className={className} onClick={(ev) => ev.stopPropagation()}>\n {cellInspect && (\n <IconButton\n name=\"eye\"\n aria-label={t('grafana-ui.table.cell-inspect-tooltip', 'Inspect value')}\n onClick={() => {\n let inspectValue = value;\n let mode = TableCellInspectorMode.text;\n\n if (field.type === FieldType.geo && value instanceof Geometry) {\n inspectValue = new WKT().writeGeometry(value, {\n featureProjection: 'EPSG:3857',\n dataProjection: 'EPSG:4326',\n });\n mode = TableCellInspectorMode.code;\n } else if ('cellType' in cellOptions && cellOptions.cellType === TableCellDisplayMode.JSONView) {\n mode = TableCellInspectorMode.code;\n }\n\n setContextMenuProps({\n value: String(inspectValue ?? ''),\n mode,\n });\n setIsInspecting(true);\n }}\n />\n )}\n {showFilters && (\n <>\n <IconButton\n name={'search-plus'}\n aria-label={t('grafana-ui.table.cell-filter-on', 'Filter for value')}\n onClick={() => {\n onCellFilterAdded?.({\n key: displayName,\n operator: FILTER_FOR_OPERATOR,\n value: String(value ?? ''),\n });\n }}\n />\n <IconButton\n name={'search-minus'}\n aria-label={t('grafana-ui.table.cell-filter-out', 'Filter out value')}\n onClick={() => {\n onCellFilterAdded?.({\n key: displayName,\n operator: FILTER_OUT_OPERATOR,\n value: String(value ?? ''),\n });\n }}\n />\n </>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAWO,SAAS,iBAAiB,KAA8B,EAAA;AAC7D,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AAEJ,EAAA;AAAA;AAAA;AAAA;AAAA,oBAIE,IAAA,CAAC,SAAI,SAAsB,EAAA,OAAA,EAAS,CAAC,EAAO,KAAA,EAAA,CAAG,iBAC5C,EAAA,QAAA,EAAA;AAAA,MACC,WAAA,oBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,KAAA;AAAA,UACL,YAAA,EAAY,CAAE,CAAA,uCAAA,EAAyC,eAAe,CAAA;AAAA,UACtE,SAAS,MAAM;AACb,YAAA,IAAI,YAAe,GAAA,KAAA;AACnB,YAAA,IAAI,OAAO,sBAAuB,CAAA,IAAA;AAElC,YAAA,IAAI,KAAM,CAAA,IAAA,KAAS,SAAU,CAAA,GAAA,IAAO,iBAAiB,QAAU,EAAA;AAC7D,cAAA,YAAA,GAAe,IAAI,GAAA,EAAM,CAAA,aAAA,CAAc,KAAO,EAAA;AAAA,gBAC5C,iBAAmB,EAAA,WAAA;AAAA,gBACnB,cAAgB,EAAA;AAAA,eACjB,CAAA;AACD,cAAA,IAAA,GAAO,sBAAuB,CAAA,IAAA;AAAA,uBACrB,UAAc,IAAA,WAAA,IAAe,WAAY,CAAA,QAAA,KAAa,qBAAqB,QAAU,EAAA;AAC9F,cAAA,IAAA,GAAO,sBAAuB,CAAA,IAAA;AAAA;AAGhC,YAAoB,mBAAA,CAAA;AAAA,cAClB,KAAA,EAAO,MAAO,CAAA,YAAA,IAAA,IAAA,GAAA,YAAA,GAAgB,EAAE,CAAA;AAAA,cAChC;AAAA,aACD,CAAA;AACD,YAAA,eAAA,CAAgB,IAAI,CAAA;AAAA;AACtB;AAAA,OACF;AAAA,MAED,+BAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAM,EAAA,aAAA;AAAA,YACN,YAAA,EAAY,CAAE,CAAA,iCAAA,EAAmC,kBAAkB,CAAA;AAAA,YACnE,SAAS,MAAM;AACb,cAAoB,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAA;AAAA,gBAClB,GAAK,EAAA,WAAA;AAAA,gBACL,QAAU,EAAA,mBAAA;AAAA,gBACV,KAAA,EAAO,MAAO,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAE;AAAA,eAC3B,CAAA;AAAA;AACF;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAM,EAAA,cAAA;AAAA,YACN,YAAA,EAAY,CAAE,CAAA,kCAAA,EAAoC,kBAAkB,CAAA;AAAA,YACpE,SAAS,MAAM;AACb,cAAoB,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAA;AAAA,gBAClB,GAAK,EAAA,WAAA;AAAA,gBACL,QAAU,EAAA,mBAAA;AAAA,gBACV,KAAA,EAAO,MAAO,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAE;AAAA,eAC3B,CAAA;AAAA;AACF;AAAA;AACF,OACF,EAAA;AAAA,KAEJ,EAAA;AAAA;AAEJ;;;;"}