From eca0cea33912410a2ec049d75776c6ac8321e009 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 28 Aug 2023 18:54:30 +0530 Subject: [PATCH] refactor: Fir classDB types --- .../mermaid/src/diagrams/class/classDb.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/mermaid/src/diagrams/class/classDb.ts b/packages/mermaid/src/diagrams/class/classDb.ts index b14b1d07a..7f233f3bf 100644 --- a/packages/mermaid/src/diagrams/class/classDb.ts +++ b/packages/mermaid/src/diagrams/class/classDb.ts @@ -1,4 +1,3 @@ -// @ts-nocheck - don't check until handle it import type { Selection } from 'd3'; import { select } from 'd3'; import { log } from '../../logger.js'; @@ -71,21 +70,21 @@ export const setClassLabel = function (id: string, label: string) { * @public */ export const addClass = function (id: string) { - const classId = splitClassNameAndType(id); + const { className, type } = splitClassNameAndType(id); // Only add class if not exists - if (classes[classId.className] !== undefined) { + if (Object.hasOwn(classes, className)) { return; } - classes[classId.className] = { - id: classId.className, - type: classId.type, - label: classId.className, + classes[className] = { + id: className, + type: type, + label: className, cssClasses: [], methods: [], members: [], annotations: [], - domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter, + domId: MERMAID_DOM_ID_PREFIX + className + '-' + classCounter, } as ClassNode; classCounter++; @@ -368,6 +367,7 @@ export const relationType = { const setupToolTips = function (element: Element) { let tooltipElem: Selection = select('.mermaidTooltip'); + // @ts-expect-error - Incorrect types if ((tooltipElem._groups || tooltipElem)[0][0] === null) { tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0); } @@ -377,7 +377,6 @@ const setupToolTips = function (element: Element) { const nodes = svg.selectAll('g.node'); nodes .on('mouseover', function () { - // @ts-expect-error - select is not part of the d3 type definition const el = select(this); const title = el.attr('title'); // Don't try to draw a tooltip if no data is provided @@ -387,6 +386,7 @@ const setupToolTips = function (element: Element) { // @ts-ignore - getBoundingClientRect is not part of the d3 type definition const rect = this.getBoundingClientRect(); + // @ts-expect-error - Incorrect types tooltipElem.transition().duration(200).style('opacity', '.9'); tooltipElem .text(el.attr('title')) @@ -396,8 +396,8 @@ const setupToolTips = function (element: Element) { el.classed('hover', true); }) .on('mouseout', function () { + // @ts-expect-error - Incorrect types tooltipElem.transition().duration(500).style('opacity', 0); - // @ts-expect-error - select is not part of the d3 type definition const el = select(this); el.classed('hover', false); });