diff --git a/src/designer/elsa-workflows-designer/src/components.d.ts b/src/designer/elsa-workflows-designer/src/components.d.ts index 6efff7175..c53a051d8 100644 --- a/src/designer/elsa-workflows-designer/src/components.d.ts +++ b/src/designer/elsa-workflows-designer/src/components.d.ts @@ -96,6 +96,7 @@ export namespace Components { interface ElsaDefaultActivityTemplate { "activityId": string; "activityType": string; + "activityTypeVersion": number; "displayType": string; } interface ElsaDropdownButton { @@ -728,6 +729,7 @@ declare namespace LocalJSX { interface ElsaDefaultActivityTemplate { "activityId"?: string; "activityType"?: string; + "activityTypeVersion"?: number; "displayType"?: string; "onChildActivitySelected"?: (event: CustomEvent) => void; "onEditChildActivity"?: (event: CustomEvent) => void; diff --git a/src/designer/elsa-workflows-designer/src/drivers/activity/default-activity-driver.tsx b/src/designer/elsa-workflows-designer/src/drivers/activity/default-activity-driver.tsx index b7eeaa290..9d45d025d 100644 --- a/src/designer/elsa-workflows-designer/src/drivers/activity/default-activity-driver.tsx +++ b/src/designer/elsa-workflows-designer/src/drivers/activity/default-activity-driver.tsx @@ -8,11 +8,12 @@ export class DefaultActivityDriver implements ActivityDriver { display(context: ActivityDisplayContext): any { const activityDescriptor = context.activityDescriptor; - const activityType = activityDescriptor.activityType; + const type = activityDescriptor.type; + const version = activityDescriptor.version; const activity = context.activity; const activityId = activity?.id; const displayType = context.displayType; - return (``); + return (``); } } diff --git a/src/designer/elsa-workflows-designer/src/index.html b/src/designer/elsa-workflows-designer/src/index.html index b54f24a5b..874a639ba 100644 --- a/src/designer/elsa-workflows-designer/src/index.html +++ b/src/designer/elsa-workflows-designer/src/index.html @@ -32,7 +32,7 @@ activityNameFormatter.strategy = ActivityNameFormatter.PascalCaseStrategy; // Or install a custom name formatter strategy. - //activityNameFormatter.strategy = context => `${stripActivityNameSpace(context.activityDescriptor.activityType)}_${context.count}`; + //activityNameFormatter.strategy = context => `${stripActivityNameSpace(context.activityDescriptor.type)}_${context.count}`; diff --git a/src/designer/elsa-workflows-designer/src/models/core.ts b/src/designer/elsa-workflows-designer/src/models/core.ts index 00412b296..6978b6b6e 100644 --- a/src/designer/elsa-workflows-designer/src/models/core.ts +++ b/src/designer/elsa-workflows-designer/src/models/core.ts @@ -10,7 +10,8 @@ export type Lookup = { [key: string]: T }; export interface Activity { id: string; - typeName: string; + type: string; + version: number; metadata: any; canStartWorkflow?: boolean; applicationProperties: any; @@ -64,7 +65,8 @@ export interface WorkflowState { } export interface ActivityDescriptor { - activityType: string; + type: string; + version: number; displayName: string; category: string; description: string; diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/browser.tsx b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/browser.tsx index 85c57c527..a807f06f1 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/browser.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/browser.tsx @@ -163,7 +163,7 @@ export class ActivityDefinitionBrowser { const publishedVersionNumber = !!publishedVersion ? publishedVersion.version : '-'; const isSelected = this.selectedActivityDefinitionIds.findIndex(x => x === definition.definitionId) >= 0; - let displayName = definition.displayName || definition.typeName; + let displayName = definition.displayName || definition.type; if (!displayName || displayName.trim().length == 0) displayName = 'Untitled'; diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/editor.tsx b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/editor.tsx index 714fcee12..ede83944f 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/editor.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/editor.tsx @@ -126,7 +126,7 @@ export class Editor { const activityDefinition: ActivityDefinition = { root: newRoot, id: '', - typeName: 'Activity1', + type: 'Activity1', displayName: 'Activity 1', category: 'Custom', definitionId: '', diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/properties.tsx b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/properties.tsx index 6b731cf64..c203e4834 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/properties.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/components/properties.tsx @@ -68,7 +68,7 @@ export class Properties { content: () => { const definition = this.activityDefinition; return - this.onPropertyEditorChanged(a => a.typeName = (e.target as HTMLInputElement).value)}/> + this.onPropertyEditorChanged(a => a.type = (e.target as HTMLInputElement).value)}/> ; }, order: 0 @@ -164,7 +164,7 @@ export class Properties { render() { const activityDefinition = this.activityDefinition; - const title = activityDefinition?.displayName ?? activityDefinition?.typeName ?? 'Untitled'; + const title = activityDefinition?.displayName ?? activityDefinition?.type ?? 'Untitled'; const subTitle = 'Activity Definition' const tabs = this.model.tabModels.map(x => x.tab); diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/models.ts b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/models.ts index d99b92b15..d8432a419 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/models.ts +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/models.ts @@ -3,7 +3,7 @@ import {TabModel} from "../workflow-definitions/models/ui"; export interface ActivityDefinition extends VersionedEntity { definitionId: string; - typeName: string; + type: string; displayName?: string; category?: string; description?: string; @@ -18,7 +18,7 @@ export interface ActivityDefinitionSummary { id: string; definitionId: string; version: number; - typeName: string; + type: string; displayName?: string; category?: string; description?: string; @@ -28,7 +28,7 @@ export interface ActivityDefinitionSummary { export interface SaveActivityDefinitionRequest { definitionId: string; - typeName: string; + type: string; displayName?: string; category?: string; description?: string; diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/plugin.tsx b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/plugin.tsx index b8318c451..5da87f6c7 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/plugin.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/plugin.tsx @@ -62,7 +62,8 @@ export class ActivityDefinitionsPlugin implements Plugin { const newName = await this.generateUniqueActivityName(flowchartDescriptor); const flowchart = { - typeName: flowchartDescriptor.activityType, + type: flowchartDescriptor.type, + version: 1, activities: [], connections: [], id: newName, @@ -75,7 +76,7 @@ export class ActivityDefinitionsPlugin implements Plugin { root: flowchart, id: '', definitionId: '', - typeName: 'Activity1', + type: 'Activity1', category: 'Custom', displayName: 'Activity 1', version: 1, @@ -87,7 +88,7 @@ export class ActivityDefinitionsPlugin implements Plugin { }; private getFlowchartDescriptor = () => this.getActivityDescriptor(FlowchartTypeName); - private getActivityDescriptor = (typeName: string): ActivityDescriptor => descriptorsStore.activityDescriptors.find(x => x.activityType == typeName) + private getActivityDescriptor = (typeName: string): ActivityDescriptor => descriptorsStore.activityDescriptors.find(x => x.type == typeName) private generateUniqueActivityName = async (activityDescriptor: ActivityDescriptor): Promise => await generateUniqueActivityName([], activityDescriptor); private saveActivityDefinition = async (definition: ActivityDefinition, publish: boolean): Promise => { @@ -132,9 +133,9 @@ export class ActivityDefinitionsPlugin implements Plugin { private onPublishClicked = async (e: CustomEvent) => { e.detail.begin(); const activityDefinition = await this.activityDefinitionEditorElement.getActivityDefinition(); - await this.eventBus.emit(NotificationEventTypes.Add, this, {id: activityDefinition.definitionId, message: `Starting publishing ${activityDefinition.typeName}`}); + await this.eventBus.emit(NotificationEventTypes.Add, this, {id: activityDefinition.definitionId, message: `Starting publishing ${activityDefinition.type}`}); await this.saveActivityDefinition(activityDefinition, true); - await this.eventBus.emit(NotificationEventTypes.Update, this, {id: activityDefinition.definitionId, message: `${activityDefinition.typeName} publish finished`}); + await this.eventBus.emit(NotificationEventTypes.Update, this, {id: activityDefinition.definitionId, message: `${activityDefinition.type} publish finished`}); e.detail.complete(); // Reload activity descriptors. diff --git a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/services/manager.ts b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/services/manager.ts index 95f7ac3b8..f36b13766 100644 --- a/src/designer/elsa-workflows-designer/src/modules/activity-definitions/services/manager.ts +++ b/src/designer/elsa-workflows-designer/src/modules/activity-definitions/services/manager.ts @@ -13,7 +13,7 @@ export class ActivityDefinitionManager { public save = async (definition: ActivityDefinition, publish: boolean): Promise => { const request: SaveActivityDefinitionRequest = { definitionId: definition.definitionId, - typeName: definition.typeName, + type: definition.type, displayName: definition.displayName, category: definition.category, description: definition.description, diff --git a/src/designer/elsa-workflows-designer/src/modules/flow-switch/flow-switch-port-provider.ts b/src/designer/elsa-workflows-designer/src/modules/flow-switch/flow-switch-port-provider.ts index ac29edcf7..f85b66168 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flow-switch/flow-switch-port-provider.ts +++ b/src/designer/elsa-workflows-designer/src/modules/flow-switch/flow-switch-port-provider.ts @@ -18,12 +18,10 @@ export class FlowSwitchPortProvider implements PortProvider { } resolvePort(portName: string, context: PortProviderContext): Activity | Array { - debugger; return null; } assignPort(portName: string, activity: Activity, context: PortProviderContext) { - debugger; return null; } } diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/default-activity-template.tsx b/src/designer/elsa-workflows-designer/src/modules/flowchart/default-activity-template.tsx index eedce40ed..fff98d0ac 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/default-activity-template.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/default-activity-template.tsx @@ -23,6 +23,7 @@ export class DefaultActivityTemplate { } @Prop({attribute: 'activity-type'}) activityType: string; + @Prop({attribute: 'activity-type-version'}) activityTypeVersion: number = 1; @Prop({attribute: 'display-type'}) displayType: string; @Prop({attribute: 'activity-id'}) activityId: string; @Event() editChildActivity: EventEmitter; @@ -31,8 +32,9 @@ export class DefaultActivityTemplate { componentWillLoad() { const iconRegistry = this.iconRegistry; - this.activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.activityType == this.activityType); const activityType = this.activityType; + const activityTypeVersion = this.activityTypeVersion ?? 0; + this.activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.type == activityType && x.version == activityTypeVersion); this.icon = iconRegistry.has(activityType) ? iconRegistry.get(activityType) : null; } @@ -107,7 +109,7 @@ export class DefaultActivityTemplate { return; const activityDescriptor = this.activityDescriptor; - const portProvider = this.portProviderRegistry.get(activityDescriptor.activityType); + const portProvider = this.portProviderRegistry.get(activityDescriptor.type); const ports = portProvider.getOutboundPorts({ activityDescriptor, activity }); const embeddedPorts = ports.filter(x => x.mode == PortMode.Embedded); @@ -126,9 +128,9 @@ export class DefaultActivityTemplate { const textColor = canStartWorkflow ? 'text-white' : 'text-gray-700'; const borderColor = port.name == this.selectedPortName ? 'border-blue-600' : 'border-gray-300'; const activityDescriptor = this.activityDescriptor; - const portProvider = this.portProviderRegistry.get(activityDescriptor.activityType); + const portProvider = this.portProviderRegistry.get(activityDescriptor.type); const activityProperty = portProvider.resolvePort(port.name, { activity, activityDescriptor }) as Activity; - const childActivityDescriptor: ActivityDescriptor = activityProperty != null ? descriptorsStore.activityDescriptors.find(x => x.activityType == activityProperty.typeName) : null; + const childActivityDescriptor: ActivityDescriptor = activityProperty != null ? descriptorsStore.activityDescriptors.find(x => x.type == activityProperty.type) : null; let childActivityDisplayText = activityProperty?.metadata?.displayText; if (isNullOrWhitespace(childActivityDisplayText)) diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/default-node-handler.ts b/src/designer/elsa-workflows-designer/src/modules/flowchart/default-node-handler.ts index 6386d04a1..d5763ff26 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/default-node-handler.ts +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/default-node-handler.ts @@ -15,7 +15,7 @@ export class DefaultNodeHandler implements ActivityNodeHandler { createDesignerNode(context: CreateUINodeContext): Node.Metadata { const {activityDescriptor, activity, x, y} = context; - const provider = this.portProviderRegistry.get(activityDescriptor.activityType); + const provider = this.portProviderRegistry.get(activityDescriptor.type); const providerContext: PortProviderContext = {activityDescriptor, activity}; const inPorts = [{name: 'In', displayName: null, mode: PortMode.Port}]; let outPorts = provider.getOutboundPorts(providerContext).filter(x => x.mode == PortMode.Port); diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/flowchart.tsx b/src/designer/elsa-workflows-designer/src/modules/flowchart/flowchart.tsx index 7f9644b69..d3e2f1160 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/flowchart.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/flowchart.tsx @@ -65,7 +65,8 @@ export class FlowchartComponent implements ContainerActivityComponent { const newName = await this.generateUniqueActivityName(flowchartDescriptor); const flowchart = { - typeName: flowchartDescriptor.activityType, + type: flowchartDescriptor.type, + version: 1, activities: [], connections: [], id: newName, @@ -120,7 +121,8 @@ export class FlowchartComponent implements ContainerActivityComponent { const activity: Activity = { id: id, - typeName: descriptor.activityType, + type: descriptor.type, + version: descriptor.version, applicationProperties: {}, metadata: { designer: { @@ -218,7 +220,7 @@ export class FlowchartComponent implements ContainerActivityComponent { const currentActivityId = this.currentPath[this.currentPath.length - 1].activityId; const currentActivity = this.activityLookup[currentActivityId]; const parentActivity = this.activityLookup[parentActivityId] as Flowchart; - const parentActivityDescriptor = descriptorsStore.activityDescriptors.find(x => x.activityType == parentActivity.typeName); + const parentActivityDescriptor = descriptorsStore.activityDescriptors.find(x => x.type == parentActivity.type); const indexInParent = currentActivity.activities?.findIndex(x => x == parentActivity); const portName = e.detail.port.name; @@ -228,7 +230,7 @@ export class FlowchartComponent implements ContainerActivityComponent { index: indexInParent }; - const portProvider = this.portProviderRegistry.get(parentActivity.typeName); + const portProvider = this.portProviderRegistry.get(parentActivity.type); let activityProperty = portProvider.resolvePort(portName, {activity: parentActivity, activityDescriptor: parentActivityDescriptor}) as Flowchart; if (!activityProperty) { @@ -254,7 +256,8 @@ export class FlowchartComponent implements ContainerActivityComponent { const activityId = await this.generateUniqueActivityName(descriptor); return { - typeName: descriptor.activityType, + type: descriptor.type, + version: descriptor.version, id: activityId, start: null, activities: [], @@ -326,10 +329,10 @@ export class FlowchartComponent implements ContainerActivityComponent { const currentNavigationItem = currentPath[currentPath.length - 1]; const currentPortName = currentNavigationItem?.portName; const currentScope = this.activityLookup[currentNavigationItem.activityId] as Activity; - const currentScopeDescriptor = this.getActivityDescriptor(currentScope.typeName); + const currentScopeDescriptor = this.getActivityDescriptor(currentScope.type); if (!!currentPortName) { - const portProvider = this.portProviderRegistry.get(currentScope.typeName); + const portProvider = this.portProviderRegistry.get(currentScope.type); portProvider.assignPort(currentPortName, currentLevel, {activity: currentScope, activityDescriptor: currentScopeDescriptor}); } else { this.activity = currentLevel; @@ -354,7 +357,7 @@ export class FlowchartComponent implements ContainerActivityComponent { await this.setupGraph(flowchart); }; - private getActivityDescriptor = (typeName: string): ActivityDescriptor => descriptorsStore.activityDescriptors.find(x => x.activityType == typeName) + private getActivityDescriptor = (typeName: string): ActivityDescriptor => descriptorsStore.activityDescriptors.find(x => x.type == typeName) private setupGraph = async (flowchart: Flowchart) => { const activities = flowchart.activities; @@ -365,7 +368,7 @@ export class FlowchartComponent implements ContainerActivityComponent { const nodes: Array = activities.map(activity => { const position = activity.metadata.designer?.position || {x: 100, y: 100}; const {x, y} = position; - const descriptor = this.getActivityDescriptor(activity.typeName); + const descriptor = this.getActivityDescriptor(activity.type); return this.nodeFactory.createNode(descriptor, activity, x, y); }); @@ -443,12 +446,12 @@ export class FlowchartComponent implements ContainerActivityComponent { return this.activity; const activity = this.activityLookup[currentItem.activityId] as Flowchart; - const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.activityType == activity.typeName); + const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.type == activity.type); if (activityDescriptor.isContainer) return activity; - const portProvider = this.portProviderRegistry.get(activity.typeName); + const portProvider = this.portProviderRegistry.get(activity.type); return portProvider.resolvePort(currentItem.portName, {activity, activityDescriptor}) as Flowchart; } @@ -643,7 +646,7 @@ export class FlowchartComponent implements ContainerActivityComponent { const item = e.detail; const activityId = item.activityId; let activity = this.activityLookup[activityId]; - const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.activityType == activity.typeName); + const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.type == activity.type); const path = this.currentPath; const index = path.indexOf(item); diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/node-factory.ts b/src/designer/elsa-workflows-designer/src/modules/flowchart/node-factory.ts index 7cd7b3dbb..0b1257b59 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/node-factory.ts +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/node-factory.ts @@ -13,7 +13,7 @@ export class NodeFactory { } public createNode(activityDescriptor: ActivityDescriptor, activity: Activity, x: number, y: number): Node.Metadata { - const handler = this.handlerRegistry.createHandler(activityDescriptor.activityType); + const handler = this.handlerRegistry.createHandler(activityDescriptor.type); return handler.createDesignerNode({activityDescriptor, activity, x, y}); } } diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/shapes.ts b/src/designer/elsa-workflows-designer/src/modules/flowchart/shapes.ts index 84903ea93..b8553a1a6 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/shapes.ts +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/shapes.ts @@ -97,7 +97,7 @@ export class ActivityNodeShape extends Shape.HTML { createHtml() { const activityDescriptor = this.activityDescriptor as ActivityDescriptor; const activity = this.activity as Activity; - const activityType = activityDescriptor.activityType; + const activityType = activityDescriptor.type; const driverRegistry = Container.get(ActivityDriverRegistry); const driver = driverRegistry.createDriver(activityType); diff --git a/src/designer/elsa-workflows-designer/src/modules/flowchart/workflow-navigator.tsx b/src/designer/elsa-workflows-designer/src/modules/flowchart/workflow-navigator.tsx index 57d6a549d..f68122e0b 100644 --- a/src/designer/elsa-workflows-designer/src/modules/flowchart/workflow-navigator.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/flowchart/workflow-navigator.tsx @@ -46,8 +46,8 @@ export class WorkflowNavigator { private renderPathItem = (item: FlowchartNavigationItem, index: number, nodes: Array) => { const activityId = item.activityId; const activity = nodes.find(x => x.activity.id == activityId).activity; - const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.activityType == activity.typeName); - const icon = this.iconRegistry.get(activity.typeName)(); + const activityDescriptor = descriptorsStore.activityDescriptors.find(x => x.type == activity.type); + const icon = this.iconRegistry.get(activity.type)(); const listElements = []; const isLastItem = index == this.items.length - 1; @@ -59,7 +59,7 @@ export class WorkflowNavigator { let port: Port = null; if (!!item.portName) { - const portProvider = this.portProviderRegistry.get(activity.typeName); + const portProvider = this.portProviderRegistry.get(activity.type); const ports = portProvider.getOutboundPorts({activity, activityDescriptor}); if (ports.length > 1) diff --git a/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/activity-properties-editor.tsx b/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/activity-properties-editor.tsx index e9c144778..c1220c2ee 100644 --- a/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/activity-properties-editor.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/activity-properties-editor.tsx @@ -68,7 +68,7 @@ export class ActivityPropertiesEditor { const activity = this.activity; const activityId = activity.id; const activityDescriptor = this.findActivityDescriptor(); - const title = activityDescriptor?.displayName ?? activityDescriptor?.activityType ?? 'Unknown Activity'; + const title = activityDescriptor?.displayName ?? activityDescriptor?.type ?? 'Unknown Activity'; const driverRegistry = this.inputDriverRegistry; const onInputChanged = (inputDescriptor: InputDescriptor) => this.activityUpdated.emit({ @@ -156,7 +156,7 @@ export class ActivityPropertiesEditor { ); } - private findActivityDescriptor = (): ActivityDescriptor => !!this.activity ? descriptorsStore.activityDescriptors.find(x => x.activityType == this.activity.typeName) : null; + private findActivityDescriptor = (): ActivityDescriptor => !!this.activity ? descriptorsStore.activityDescriptors.find(x => x.type == this.activity.type) : null; private onSelectedTabIndexChanged = (e: CustomEvent) => this.selectedTabIndex = e.detail.selectedTabIndex private onActivityIdChanged = (e: any) => { diff --git a/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx b/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx index 84dcf054a..756751ca0 100644 --- a/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx @@ -70,7 +70,7 @@ export class ToolboxActivities { const activityDriverRegistry = Container.get(ActivityDriverRegistry); for (const activityDescriptor of browsableDescriptors) { - const activityType = activityDescriptor.activityType; + const activityType = activityDescriptor.type; const driver = activityDriverRegistry.createDriver(activityType); const html = driver.display({displayType: 'picker', activityDescriptor: activityDescriptor}); @@ -86,14 +86,14 @@ export class ToolboxActivities { render() { const model = this.buildModel(); - const categoryModels = model.categories; + const categoryModels:Array = model.categories; const renderedActivities = model.activities; return