From 75ad7757e33de197df87b8900c08da50edd6fdf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jos=C3=A9=20dos=20Santos?= Date: Fri, 10 May 2024 20:05:04 -0300 Subject: [PATCH 1/5] kie-issue#1149: DMN Editor produces invalid typeRef attributes --- .../src/BoxedExpressionEditor.tsx | 4 +-- .../src/api/BeeGwtService.ts | 2 +- .../expressionVariable/DataTypeSelector.tsx | 14 ++++----- .../ExpressionVariableCell.tsx | 4 +-- .../ExpressionVariableMenu.tsx | 9 +++--- .../ContextExpression/ContextExpression.tsx | 12 ++++---- .../DecisionTableExpression.tsx | 5 ++-- .../ExpressionContainer.tsx | 8 ++--- .../ExpressionDefinitionRoot.tsx | 2 +- .../FeelFunctionExpression.tsx | 2 +- .../FunctionExpression/FunctionExpression.tsx | 16 +++++----- .../JavaFunctionExpression.tsx | 4 +-- .../FunctionExpression/ParametersPopover.tsx | 12 +++----- .../InvocationExpression.tsx | 15 +++++----- .../IteratorExpressionComponent.tsx | 3 +- .../ListExpression/ListExpression.tsx | 5 ++-- .../LiteralExpression/LiteralExpression.tsx | 14 +++++---- .../RelationExpression/RelationExpression.tsx | 7 ++--- .../src/table/BeeTable/BeeTableHeader.tsx | 9 ++---- .../stories/boxedExpressionStoriesWrapper.tsx | 6 ++-- .../Context/Context.stories.tsx | 4 +-- .../DecisionTable/DecisionTable.stories.tsx | 4 +-- .../getDefaultBoxedExpressionForDevWebapp.ts | 2 +- .../features/Resizing/Resizing.stories.tsx | 4 +-- .../getDefaultBoxedExpressionForStories.ts | 10 +++---- .../BoxedExpressionScreen.tsx | 10 +++---- .../getDefaultBoxedExpression.tsx | 30 ++++++++----------- .../getDefaultColumnWidth.tsx | 2 +- .../dmn-editor/src/dataTypes/Constraints.tsx | 13 ++++---- .../dmn-editor/src/dataTypes/DataTypeName.tsx | 2 +- .../src/dataTypes/DataTypePanel.tsx | 2 +- .../dmn-editor/src/dataTypes/DataTypes.tsx | 6 ++-- .../src/dataTypes/ItemComponentsTable.tsx | 15 +++++----- .../dmn-editor/src/dataTypes/TypeRefLabel.tsx | 2 +- .../src/dataTypes/TypeRefSelector.tsx | 12 ++++---- .../src/dataTypes/useResolvedTypeRef.ts | 2 +- packages/dmn-editor/src/diagram/Diagram.tsx | 2 +- .../src/diagram/nodes/DataTypeNodePanel.tsx | 5 +--- .../dmn-editor/src/diagram/nodes/Nodes.tsx | 2 +- .../src/mutations/addConnectedNode.ts | 2 +- .../src/mutations/addStandaloneNode.ts | 2 +- .../src/mutations/updateExpression.ts | 2 +- .../DecisionTableInputHeaderCell.tsx | 2 +- .../DecisionTableOutputHeaderCell.tsx | 4 +-- .../Fields.tsx | 2 +- .../FunctionDefinitionParametersCell.tsx | 2 +- .../InformationItemCell.tsx | 2 +- .../stunner-editors-dmn-loader/src/index.tsx | 2 +- 48 files changed, 133 insertions(+), 169 deletions(-) diff --git a/packages/boxed-expression-component/src/BoxedExpressionEditor.tsx b/packages/boxed-expression-component/src/BoxedExpressionEditor.tsx index 30e4a095b4a..29c524e421c 100644 --- a/packages/boxed-expression-component/src/BoxedExpressionEditor.tsx +++ b/packages/boxed-expression-component/src/BoxedExpressionEditor.tsx @@ -20,7 +20,7 @@ import "@patternfly/react-styles/css/components/Drawer/drawer.css"; import { I18nDictionariesProvider } from "@kie-tools-core/i18n/dist/react-components"; import * as React from "react"; -import { BeeGwtService, DmnDataType, BoxedExpression, PmmlDocument } from "./api"; +import { BeeGwtService, BoxedExpression, DmnDataType, PmmlDocument } from "./api"; import { boxedExpressionEditorDictionaries, BoxedExpressionEditorI18nContext, @@ -42,7 +42,7 @@ export interface BoxedExpressionEditorProps { /** Name of the Decision or BKM containing `expression` */ expressionHolderName: string; /** TypeRef of the Decision or BKM containing `expression` */ - expressionHolderTypeRef: string; + expressionHolderTypeRef: string | undefined; /** The boxed expression itself */ expression: BoxedExpression | undefined; /** Called every time something changes on the expression */ diff --git a/packages/boxed-expression-component/src/api/BeeGwtService.ts b/packages/boxed-expression-component/src/api/BeeGwtService.ts index 4e85810e2c1..8a6b6b18762 100644 --- a/packages/boxed-expression-component/src/api/BeeGwtService.ts +++ b/packages/boxed-expression-component/src/api/BeeGwtService.ts @@ -25,7 +25,7 @@ import { BoxedExpression } from "./BoxedExpression"; export interface BeeGwtService { getDefaultExpressionDefinition( logicType: BoxedExpression["__$$element"] | undefined, - typeRef: string, + typeRef: string | undefined, isRoot?: boolean ): { expression: BoxedExpression; widthsById: Map }; diff --git a/packages/boxed-expression-component/src/expressionVariable/DataTypeSelector.tsx b/packages/boxed-expression-component/src/expressionVariable/DataTypeSelector.tsx index 95679d7e630..5f32425b3a2 100644 --- a/packages/boxed-expression-component/src/expressionVariable/DataTypeSelector.tsx +++ b/packages/boxed-expression-component/src/expressionVariable/DataTypeSelector.tsx @@ -19,18 +19,18 @@ import { Select, SelectGroup, SelectOption, SelectVariant } from "@patternfly/react-core/dist/js/components/Select"; import * as React from "react"; -import { useCallback, useState, useRef, useMemo } from "react"; +import { useCallback, useMemo, useRef, useState } from "react"; import { useBoxedExpressionEditorI18n } from "../i18n"; import * as _ from "lodash"; -import { DmnDataType } from "../api"; +import { DmnBuiltInDataType, DmnDataType } from "../api"; import { useBoxedExpressionEditor } from "../BoxedExpressionEditorContext"; import { Divider } from "@patternfly/react-core/dist/js/components/Divider"; export interface DataTypeSelectorProps { /** The pre-selected data type */ - value: string; + value: string | undefined; /** On DataType selection callback */ - onChange: (dataType: string) => void; + onChange: (dataType: string | undefined) => void; /** By default the menu will be appended inline, but it is possible to append on the parent or on other elements */ /** Callback for toggle select behavior */ onToggle?: (isOpen: boolean) => void; @@ -64,7 +64,7 @@ export const DataTypeSelector: React.FunctionComponent = /* this setTimeout keeps the context menu open after type selection changes. Without this Popover component thinks there has been a click outside the context menu, after DataTypeSelector has changed. This because the Select component has been removed from the html*/ setTimeout(() => setOpen(false), 0); - onChange(selection); + onChange(selection === DmnBuiltInDataType.Undefined ? undefined : selection); // Because Select leave the focus to the detached btn, give back the focus to the selectWrapperRef (selectContainerRef.current?.querySelector("button") as HTMLInputElement)?.focus(); @@ -108,7 +108,7 @@ export const DataTypeSelector: React.FunctionComponent = return buildSelectGroups().reduce((acc, group) => { const filteredGroup = React.cloneElement(group, { children: group.props?.children?.filter((item: React.ReactElement) => - item.props.value.toLowerCase().includes(textInput.toLowerCase()) + (item.props.value ?? DmnBuiltInDataType.Undefined).toLowerCase().includes(textInput.toLowerCase()) ), }); @@ -157,7 +157,7 @@ export const DataTypeSelector: React.FunctionComponent = onSelect={onSelect} onFilter={onFilter} isOpen={isOpen} - selections={value} + selections={value ?? DmnBuiltInDataType.Undefined} isGrouped={true} hasInlineFilter={true} inlineFilterPlaceholderText={i18n.choose} diff --git a/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableCell.tsx b/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableCell.tsx index 735c0c32c02..aeaab2fe45c 100644 --- a/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableCell.tsx +++ b/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableCell.tsx @@ -49,7 +49,7 @@ export const ExpressionVariableCell: React.FunctionComponent< const { expression, variable, index } = data[rowIndex]; const onVariableUpdated = useCallback( - ({ name = DEFAULT_EXPRESSION_VARIABLE_NAME, typeRef = DmnBuiltInDataType.Undefined }) => { + ({ name = DEFAULT_EXPRESSION_VARIABLE_NAME, typeRef = undefined }) => { onExpressionWithVariableUpdated(index, { // `expression` and `variable` must always have the same `typeRef` and `name/label`, as those are dictated by `variable`. expression: expression @@ -99,7 +99,7 @@ export const ExpressionVariableCell: React.FunctionComponent< rowIndex, columnIndex, undefined, - useCallback(() => `${variable["@_name"]} (${variable["@_typeRef"] ?? DmnBuiltInDataType.Undefined}})`, [variable]) + useCallback(() => `${variable["@_name"]} (${variable["@_typeRef"]}})`, [variable]) ); const { beeGwtService } = useBoxedExpressionEditor(); diff --git a/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableMenu.tsx b/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableMenu.tsx index c257fdea2c5..03e50bfe219 100644 --- a/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableMenu.tsx +++ b/packages/boxed-expression-component/src/expressionVariable/ExpressionVariableMenu.tsx @@ -18,10 +18,9 @@ */ import * as React from "react"; -import { useCallback, useEffect, useState, useRef } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import { PopoverMenu, PopoverMenuRef } from "../contextMenu/PopoverMenu"; import { useBoxedExpressionEditorI18n } from "../i18n"; -import { DmnBuiltInDataType, BoxedExpression } from "../api"; import { useBoxedExpressionEditor } from "../BoxedExpressionEditorContext"; import { DataTypeSelector } from "./DataTypeSelector"; import { CogIcon } from "@patternfly/react-icons/dist/js/icons/cog-icon"; @@ -30,7 +29,7 @@ import { NavigationKeysUtils } from "../keysUtils/keyUtils"; import { PopoverPosition } from "@patternfly/react-core/dist/js/components/Popover"; import "./ExpressionVariableMenu.css"; -export type OnExpressionVariableUpdated = (args: { name: string; typeRef: string }) => void; +export type OnExpressionVariableUpdated = (args: { name: string; typeRef: string | undefined }) => void; export interface ExpressionVariableMenuProps { /** Optional children element to be considered for triggering the edit expression menu */ @@ -62,7 +61,7 @@ export function ExpressionVariableMenu({ arrowPlacement, nameField, dataTypeField, - selectedDataType = DmnBuiltInDataType.Undefined, + selectedDataType = undefined, selectedExpressionName, onVariableUpdated, position, @@ -92,7 +91,7 @@ export function ExpressionVariableMenu({ setExpressionName(event.target.value); }, []); - const onDataTypeChange = useCallback((dataType: DmnBuiltInDataType) => { + const onDataTypeChange = useCallback((dataType: string | undefined) => { setDataType(dataType); }, []); diff --git a/packages/boxed-expression-component/src/expressions/ContextExpression/ContextExpression.tsx b/packages/boxed-expression-component/src/expressions/ContextExpression/ContextExpression.tsx index 1bb8078b966..c3b1dee1373 100644 --- a/packages/boxed-expression-component/src/expressions/ContextExpression/ContextExpression.tsx +++ b/packages/boxed-expression-component/src/expressions/ContextExpression/ContextExpression.tsx @@ -35,11 +35,11 @@ import { import { useBoxedExpressionEditorI18n } from "../../i18n"; import { useNestedExpressionContainerWithNestedExpressions } from "../../resizing/Hooks"; import { NestedExpressionContainerContext } from "../../resizing/NestedExpressionContainerContext"; -import { ResizerStopBehavior, ResizingWidth, useResizingWidths } from "../../resizing/ResizingWidthsContext"; +import { ResizerStopBehavior, ResizingWidth } from "../../resizing/ResizingWidthsContext"; import { CONTEXT_ENTRY_EXPRESSION_MIN_WIDTH, - CONTEXT_ENTRY_VARIABLE_MIN_WIDTH, CONTEXT_ENTRY_VARIABLE_COLUMN_WIDTH_INDEX, + CONTEXT_ENTRY_VARIABLE_MIN_WIDTH, CONTEXT_EXPRESSION_EXTRA_WIDTH, } from "../../resizing/WidthConstants"; import { useBeeTableCoordinates, useBeeTableSelectableCellRef } from "../../selection/BeeTableSelectionContext"; @@ -49,13 +49,11 @@ import { DEFAULT_EXPRESSION_VARIABLE_NAME } from "../../expressionVariable/Expre import { ContextEntryExpressionCell } from "./ContextEntryExpressionCell"; import { ExpressionVariableCell, ExpressionWithVariable } from "../../expressionVariable/ExpressionVariableCell"; import { ContextResultExpressionCell } from "./ContextResultExpressionCell"; -import { getExpressionMinWidth, getExpressionTotalMinWidth } from "../../resizing/WidthMaths"; +import { getExpressionTotalMinWidth } from "../../resizing/WidthMaths"; import { DMN15__tContextEntry } from "@kie-tools/dmn-marshaller/dist/schemas/dmn-1_5/ts-gen/types"; import { findAllIdsDeep } from "../../ids/ids"; import "./ContextExpression.css"; -const CONTEXT_ENTRY_DEFAULT_DATA_TYPE = DmnBuiltInDataType.Undefined; - export type ROWTYPE = ExpressionWithVariable & { index: number }; export function ContextExpression({ @@ -156,7 +154,7 @@ export function ContextExpression({ accessor: expressionHolderId as any, // FIXME: https://github.com/apache/incubator-kie-issues/issues/169 label: contextExpression["@_label"] ?? DEFAULT_EXPRESSION_VARIABLE_NAME, isRowIndexColumn: false, - dataType: contextExpression["@_typeRef"] ?? CONTEXT_ENTRY_DEFAULT_DATA_TYPE, + dataType: contextExpression["@_typeRef"] ?? DmnBuiltInDataType.Undefined, width: undefined, columns: [ { @@ -286,7 +284,7 @@ export function ContextExpression({ variable: { "@_id": generateUuid(), "@_name": variableName, - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, description: { __$$text: "" }, }, }; diff --git a/packages/boxed-expression-component/src/expressions/DecisionTableExpression/DecisionTableExpression.tsx b/packages/boxed-expression-component/src/expressions/DecisionTableExpression/DecisionTableExpression.tsx index c9af257bcc4..27332a19b8d 100644 --- a/packages/boxed-expression-component/src/expressions/DecisionTableExpression/DecisionTableExpression.tsx +++ b/packages/boxed-expression-component/src/expressions/DecisionTableExpression/DecisionTableExpression.tsx @@ -62,7 +62,6 @@ import { DMN15__tInputClause, DMN15__tLiteralExpression, DMN15__tOutputClause, - DMN15__tRuleAnnotation, DMN15__tRuleAnnotationClause, DMN15__tUnaryTests, } from "@kie-tools/dmn-marshaller/dist/schemas/dmn-1_5/ts-gen/types"; @@ -728,7 +727,7 @@ export function DecisionTableExpression({ "@_id": generateUuid(), inputExpression: { "@_id": generateUuid(), - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, text: { __$$text: newName }, }, }); @@ -768,7 +767,7 @@ export function DecisionTableExpression({ outputColumnsToAdd.push({ "@_id": generateUuid(), "@_name": name, - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, }); } diff --git a/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionContainer.tsx b/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionContainer.tsx index e5108118450..bc1f446fd2e 100644 --- a/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionContainer.tsx +++ b/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionContainer.tsx @@ -20,7 +20,7 @@ import * as React from "react"; import { useCallback, useEffect, useRef } from "react"; import { useBoxedExpressionEditor, useBoxedExpressionEditorDispatch } from "../../BoxedExpressionEditorContext"; -import { BoxedExpression, DmnBuiltInDataType, generateUuid } from "../../api"; +import { BoxedExpression, generateUuid } from "../../api"; import { findAllIdsDeep } from "../../ids/ids"; import { DEFAULT_EXPRESSION_VARIABLE_NAME } from "../../expressionVariable/ExpressionVariableMenu"; import { useBeeTableSelectableCellRef } from "../../selection/BeeTableSelectionContext"; @@ -65,11 +65,7 @@ export const ExpressionContainer: React.FunctionComponent { const { expression: defaultExpression, widthsById: defaultWidthsById } = - beeGwtService!.getDefaultExpressionDefinition( - logicType, - parentElementTypeRef ?? expressionTypeRef ?? DmnBuiltInDataType.Undefined, - !isNested - ); + beeGwtService!.getDefaultExpressionDefinition(logicType, parentElementTypeRef ?? expressionTypeRef, !isNested); setExpression((prev: BoxedExpression) => { // Do not inline this variable for type safety. See https://github.com/microsoft/TypeScript/issues/241 diff --git a/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionDefinitionRoot.tsx b/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionDefinitionRoot.tsx index 0ad8abb2907..3139416ed87 100644 --- a/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionDefinitionRoot.tsx +++ b/packages/boxed-expression-component/src/expressions/ExpressionDefinitionRoot/ExpressionDefinitionRoot.tsx @@ -25,7 +25,7 @@ import "./ExpressionDefinitionRoot.css"; export interface ExpressionDefinitionRootProps { expressionHolderId: string; - expressionHolderTypeRef: string; + expressionHolderTypeRef: string | undefined; expression?: BoxedExpression; isResetSupported: boolean | undefined; expressionHolderName?: string; diff --git a/packages/boxed-expression-component/src/expressions/FunctionExpression/FeelFunctionExpression.tsx b/packages/boxed-expression-component/src/expressions/FunctionExpression/FeelFunctionExpression.tsx index 91be6514c94..2bc3aa89ffb 100644 --- a/packages/boxed-expression-component/src/expressions/FunctionExpression/FeelFunctionExpression.tsx +++ b/packages/boxed-expression-component/src/expressions/FunctionExpression/FeelFunctionExpression.tsx @@ -27,10 +27,10 @@ import { BeeTableOperation, BeeTableOperationConfig, BeeTableProps, - DmnBuiltInDataType, BoxedExpression, BoxedFunction, BoxedFunctionKind, + DmnBuiltInDataType, } from "../../api"; import { useBoxedExpressionEditorI18n } from "../../i18n"; import { useNestedExpressionContainerWithNestedExpressions } from "../../resizing/Hooks"; diff --git a/packages/boxed-expression-component/src/expressions/FunctionExpression/FunctionExpression.tsx b/packages/boxed-expression-component/src/expressions/FunctionExpression/FunctionExpression.tsx index 5875422b6c4..cfd74e4a477 100644 --- a/packages/boxed-expression-component/src/expressions/FunctionExpression/FunctionExpression.tsx +++ b/packages/boxed-expression-component/src/expressions/FunctionExpression/FunctionExpression.tsx @@ -20,15 +20,15 @@ import _ from "lodash"; import * as React from "react"; import { useCallback, useMemo } from "react"; -import { DmnBuiltInDataType, BoxedFunction, BoxedFunctionKind, generateUuid } from "../../api"; +import { BoxedFunction, BoxedFunctionKind, generateUuid } from "../../api"; import { PopoverMenu } from "../../contextMenu/PopoverMenu"; import { useBoxedExpressionEditorI18n } from "../../i18n"; import { useBoxedExpressionEditor, useBoxedExpressionEditorDispatch } from "../../BoxedExpressionEditorContext"; -import { FeelFunctionExpression, BoxedFunctionFeel } from "./FeelFunctionExpression"; +import { BoxedFunctionFeel, FeelFunctionExpression } from "./FeelFunctionExpression"; import { FunctionKindSelector } from "./FunctionKindSelector"; -import { JavaFunctionExpression, BoxedFunctionJava } from "./JavaFunctionExpression"; +import { BoxedFunctionJava, JavaFunctionExpression } from "./JavaFunctionExpression"; import { ParametersPopover } from "./ParametersPopover"; -import { PmmlFunctionExpression, BoxedFunctionPmml } from "./PmmlFunctionExpression"; +import { BoxedFunctionPmml, PmmlFunctionExpression } from "./PmmlFunctionExpression"; import { DMN15__tFunctionDefinition, DMN15__tFunctionKind, @@ -86,11 +86,11 @@ export function useFunctionExpressionControllerCell(functionKind: DMN15__tFuncti "@_label": prev["@_label"], "@_id": generateUuid(), "@_kind": BoxedFunctionKind.Feel, - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, expression: { __$$element: "literalExpression", "@_id": generateUuid(), - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, }, formalParameter: [], }; @@ -108,7 +108,7 @@ export function useFunctionExpressionControllerCell(functionKind: DMN15__tFuncti "@_id": generateUuid(), }, "@_kind": BoxedFunctionKind.Java, - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, formalParameter: [], }; return retJava; @@ -123,7 +123,7 @@ export function useFunctionExpressionControllerCell(functionKind: DMN15__tFuncti "@_id": generateUuid(), }, "@_kind": BoxedFunctionKind.Pmml, - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, formalParameter: [], }; return retPmml; diff --git a/packages/boxed-expression-component/src/expressions/FunctionExpression/JavaFunctionExpression.tsx b/packages/boxed-expression-component/src/expressions/FunctionExpression/JavaFunctionExpression.tsx index ddf0285725d..430ca10c3f1 100644 --- a/packages/boxed-expression-component/src/expressions/FunctionExpression/JavaFunctionExpression.tsx +++ b/packages/boxed-expression-component/src/expressions/FunctionExpression/JavaFunctionExpression.tsx @@ -29,10 +29,10 @@ import { BeeTableOperation, BeeTableOperationConfig, BeeTableProps, - DmnBuiltInDataType, + BoxedFunction, BoxedFunctionKind, + DmnBuiltInDataType, generateUuid, - BoxedFunction, } from "../../api"; import { useBoxedExpressionEditorI18n } from "../../i18n"; import { usePublishedBeeTableResizableColumns } from "../../resizing/BeeTableResizableColumnsContext"; diff --git a/packages/boxed-expression-component/src/expressions/FunctionExpression/ParametersPopover.tsx b/packages/boxed-expression-component/src/expressions/FunctionExpression/ParametersPopover.tsx index 12bd285985c..cb491538863 100644 --- a/packages/boxed-expression-component/src/expressions/FunctionExpression/ParametersPopover.tsx +++ b/packages/boxed-expression-component/src/expressions/FunctionExpression/ParametersPopover.tsx @@ -24,7 +24,7 @@ import { CubesIcon } from "@patternfly/react-icons/dist/js/icons/cubes-icon"; import { OutlinedTrashAltIcon } from "@patternfly/react-icons/dist/js/icons/outlined-trash-alt-icon"; import * as React from "react"; import { ChangeEvent, useCallback } from "react"; -import { DmnBuiltInDataType, BoxedFunction, generateUuid, getNextAvailablePrefixedName } from "../../api"; +import { BoxedFunction, generateUuid, getNextAvailablePrefixedName } from "../../api"; import { useBoxedExpressionEditorI18n } from "../../i18n"; import { useBoxedExpressionEditorDispatch } from "../../BoxedExpressionEditorContext"; import { DMN15__tInformationItem } from "@kie-tools/dmn-marshaller/dist/schemas/dmn-1_5/ts-gen/types"; @@ -51,7 +51,7 @@ export const ParametersPopover: React.FunctionComponent (prev.formalParameter ?? []).map((p) => p["@_name"]), "p" ), - "@_typeRef": DmnBuiltInDataType.Undefined, + "@_typeRef": undefined, }, ]; @@ -120,7 +120,7 @@ function ParameterEntry({ parameter, index }: { parameter: DMN15__tInformationIt ); const onDataTypeChange = useCallback( - (typeRef: string) => { + (typeRef: string | undefined) => { setExpression((prev: BoxedFunction) => { const newParameters = [...(prev.formalParameter ?? [])]; newParameters[index] = { @@ -166,11 +166,7 @@ function ParameterEntry({ parameter, index }: { parameter: DMN15__tInformationIt placeholder={"Parameter Name"} defaultValue={parameter["@_name"]} /> - +