Исправлена ширина всплывающей подсказки на графике Телеметрия - Мониторинг

This commit is contained in:
ts_salikhov 2022-09-06 18:58:20 +04:00
parent 0e6a0888d8
commit 9d0ddc6f21
3 changed files with 26 additions and 34 deletions

View File

@ -13,7 +13,7 @@ import '@styles/d3.less'
type D3GroupRenderFunction<DataType> = (group: ChartGroup<DataType>, data: DataType[]) => ReactNode
export type D3HorizontalCursorSettings<DataType> = {
width?: number
spaceBetweenGroups?: number
height?: number
render?: D3GroupRenderFunction<DataType>
position?: D3TooltipPosition
@ -62,7 +62,7 @@ const makeDefaultRender = <DataType,>(): D3GroupRenderFunction<DataType> => (gro
)
const _D3HorizontalCursor = <DataType,>({
width = 220,
spaceBetweenGroups = 30,
height = 200,
render = makeDefaultRender<DataType>(),
position: _position = 'bottom',
@ -178,19 +178,21 @@ const _D3HorizontalCursor = <DataType,>({
{groups.map((_, i) => (
<foreignObject
key={`${i}`}
width={width}
width={sizes.groupWidth + spaceBetweenGroups}
height={height}
x={sizes.groupLeft(i) + (sizes.groupWidth - width) / 2}
x={sizes.groupLeft(i) - spaceBetweenGroups / 2}
y={tooltipY}
opacity={fixed || mouseState.visible ? 1 : 0}
pointerEvents={fixed ? 'all' : 'none'}
style={{ transition: 'opacity .1s ease-out', userSelect: fixed ? 'auto' : 'none' }}
>
<div className={`adaptive-tooltip tooltip ${position} ${className}`}
style={{height: 'auto', bottom: `${position === 'bottom' ? '0' : ''}`}}
>
<div className={'tooltip-content'}>
{tooltipBodies[i]}
<div className={'tooltip-wrapper'}>
<div className={`adaptive-tooltip tooltip ${position} ${className}`}
style={{height: 'auto', bottom: `${position === 'bottom' ? '0' : ''}`}}
>
<div className={'tooltip-content'}>
{tooltipBodies[i]}
</div>
</div>
</div>
</foreignObject>

View File

@ -567,6 +567,7 @@ const _D3MonitoringCharts = <DataType extends Record<string, unknown>>({
yAxis={yAxis}
groups={groups}
sizes={sizes}
spaceBetweenGroups={spaceBetweenGroups}
data={data}
height={height}
/>

View File

@ -2,12 +2,17 @@
width: 100%;
height: 100%;
& .tooltip-wrapper {
display: flex;
justify-content: center;
}
& .tooltip {
@color: white;
@bg-color: rgba(0, 0, 0, .75);
@arrow-size: 8px;
width: 100%;
max-width: 100%;
height: 100%;
font-size: 13px;
@ -109,51 +114,35 @@
width: 100%;
height: 100%;
}
& .adaptive-tooltip {
left: 0;
right: 0;
margin: 0 auto;
}
}
@media (max-width: 1830px) {
@media (max-width: 1800px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 190px;
font-size: 10px;
font-size: 11px;
}
}
@media (max-width: 1600px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 160px;
font-size: 8px;
font-size: 9px;
}
}
@media (max-width: 1420px) {
@media (max-width: 1440px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 140px;
font-size: 7px;
font-size: 8px;
padding: 0;
}
}
@media (max-width: 1300px) {
@media (max-width: 1310px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 125px;
font-size: 7px;
}
}
@media (max-width: 1200px) {
@media (max-width: 1279px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 105px;
font-size: 6px;
}
}
@media (max-width: 1100px) {
.asb-d3-chart .adaptive-tooltip {
max-width: 90px;
}
}