UNPKG

@grafana/ui

Version:
1 lines 5.49 kB
{"version":3,"file":"DragHandle.mjs","sources":["../../../../src/components/DragHandle/DragHandle.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nexport type DragHandlePosition = 'middle' | 'start' | 'end';\n\nexport const getDragStyles = (theme: GrafanaTheme2, handlePosition?: DragHandlePosition) => {\n const position = handlePosition || 'middle';\n const baseColor = theme.colors.emphasize(theme.colors.background.secondary, 0.15);\n const hoverColor = theme.colors.primary.border;\n const clickTargetSize = theme.spacing(2);\n const handlebarThickness = 4;\n const handlebarWidth = 200;\n let verticalOffset = '50%';\n let horizontalOffset = '50%';\n\n switch (position) {\n case 'start': {\n verticalOffset = '0%';\n horizontalOffset = '0%';\n break;\n }\n case 'end': {\n verticalOffset = '100%';\n horizontalOffset = '100%';\n break;\n }\n }\n\n const dragHandleBase = css({\n position: 'relative',\n\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n transition: theme.transitions.create('border-color'),\n zIndex: 1,\n },\n\n '&:after': {\n background: baseColor,\n content: '\"\"',\n position: 'absolute',\n transition: theme.transitions.create('background'),\n transform: 'translate(-50%, -50%)',\n borderRadius: theme.shape.radius.pill,\n zIndex: 1,\n },\n\n '&:hover': {\n '&:before': {\n borderColor: hoverColor,\n },\n\n '&:after': {\n background: hoverColor,\n },\n },\n });\n\n const beforeVertical = {\n borderRight: '1px solid transparent',\n height: '100%',\n left: verticalOffset,\n transform: 'translateX(-50%)',\n };\n\n const beforeHorizontal = {\n borderTop: '1px solid transparent',\n top: horizontalOffset,\n transform: 'translateY(-50%)',\n };\n\n return {\n dragHandleVertical: cx(\n dragHandleBase,\n css({\n cursor: 'col-resize',\n width: clickTargetSize,\n\n '&:before': beforeVertical,\n\n '&:after': {\n left: verticalOffset,\n top: '50%',\n height: handlebarWidth,\n width: handlebarThickness,\n },\n })\n ),\n dragHandleHorizontal: cx(\n dragHandleBase,\n css({\n height: clickTargetSize,\n cursor: 'row-resize',\n\n '&:before': beforeHorizontal,\n\n '&:after': {\n left: '50%',\n top: horizontalOffset,\n height: handlebarThickness,\n width: handlebarWidth,\n },\n })\n ),\n dragHandleBaseVertical: cx(\n dragHandleBase,\n css({\n cursor: 'col-resize',\n width: clickTargetSize,\n\n '&:before': beforeVertical,\n })\n ),\n dragHandleBaseHorizontal: cx(\n dragHandleBase,\n css({\n cursor: 'row-resize',\n height: clickTargetSize,\n\n '&:before': beforeHorizontal,\n })\n ),\n };\n};\n"],"names":[],"mappings":"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"}