@meshmakers/octo-process-diagrams 3.3.860 → 3.3.870

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6094,6 +6094,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6094
6094
  }]
6095
6095
  }] });
6096
6096
 
6097
+ /**
6098
+ * Factory for creating a mapping expression validator that can be used
6099
+ * with the DataMappingListComponent's expressionValidator input.
6100
+ *
6101
+ * Uses ExpressionEvaluatorService (expr-eval) for instant client-side validation.
6102
+ * Compatible with the mXparser expressions used by ApplyDataPointMappingsNode in the backend.
6103
+ *
6104
+ * Usage in host app:
6105
+ * ```typescript
6106
+ * import { createMappingExpressionValidator } from '@meshmakers/octo-process-diagrams';
6107
+ * import { ExpressionEvaluatorService } from '@meshmakers/octo-process-diagrams';
6108
+ *
6109
+ * // In component:
6110
+ * private readonly expressionService = inject(ExpressionEvaluatorService);
6111
+ * readonly expressionValidator = createMappingExpressionValidator(this.expressionService);
6112
+ *
6113
+ * // In template:
6114
+ * <mm-runtime-browser [expressionValidator]="expressionValidator" ...>
6115
+ * ```
6116
+ */
6117
+ /**
6118
+ * Creates a mapping expression validator function from an ExpressionEvaluatorService instance.
6119
+ *
6120
+ * The returned function validates expressions and returns a preview of the evaluation
6121
+ * using `value = 42` as a test input.
6122
+ *
6123
+ * @param service The ExpressionEvaluatorService instance (injected via DI)
6124
+ * @param testValue The test value for the 'value' variable (default: 42)
6125
+ * @returns A validator function compatible with DataMappingListComponent.expressionValidator
6126
+ */
6127
+ function createMappingExpressionValidator(service, testValue = 42) {
6128
+ return (expression) => {
6129
+ if (!expression || expression.trim() === '') {
6130
+ return { valid: false, error: 'Expression must not be empty' };
6131
+ }
6132
+ // Step 1: Validate syntax
6133
+ const validation = service.validate(expression);
6134
+ if (!validation.valid) {
6135
+ return { valid: false, error: validation.error ?? 'Invalid expression syntax' };
6136
+ }
6137
+ // Step 2: Evaluate with test value
6138
+ const result = service.evaluate(expression, { value: testValue });
6139
+ if (!result.success) {
6140
+ return { valid: false, error: result.error ?? 'Expression evaluation failed' };
6141
+ }
6142
+ // Step 3: Format preview
6143
+ const preview = typeof result.value === 'number'
6144
+ ? Number.isInteger(result.value)
6145
+ ? String(result.value)
6146
+ : result.value.toFixed(4).replace(/0+$/, '').replace(/\.$/, '')
6147
+ : String(result.value);
6148
+ return { valid: true, preview };
6149
+ };
6150
+ }
6151
+
6097
6152
  /**
6098
6153
  * Native Angular wrapper for dockview-core
6099
6154
  * Provides the same functionality as dockview-angular but with proper Ivy compatibility
@@ -31643,5 +31698,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
31643
31698
  * Generated bundle index. Do not edit.
31644
31699
  */
31645
31700
 
31646
- export { ANIMATION_PRESETS, AnimationsPanelComponent, BindingEditorDialogComponent, ContextMenuComponent, CreateProcessDiagramDtoGQL, CreateSymbolDefinitionDtoGQL, CreateSymbolLibraryDtoGQL, DEFAULT_RENDER_CONTEXT, DEFAULT_STYLE, DEFAULT_TEXT_STYLE, DeleteProcessDiagramDtoGQL, DesignerClipboardService, DesignerHistoryService, DesignerLayoutService, DesignerSelectionService, DockviewComponent, ElementPaletteComponent, ElementsPanelComponent, EllipseRenderer, ExpressionEvaluatorService, GetProcessDiagramDtoGQL, GetProcessDiagramsDtoGQL, GetSymbolDefinitionDtoGQL, GetSymbolDefinitionsDtoGQL, GetSymbolLibrariesDtoGQL, GetSymbolLibraryDtoGQL, ImageRenderer, LineRenderer, PathCommands, PathEditorComponent, PathEditorService, PathRenderer, PolygonRenderer, PolylineRenderer, PrimitiveRendererRegistry, PrimitiveType, ProcessDesignerComponent, ProcessDiagramDataService, ProcessDiagramDataSourceDirective, ProcessDiagramListComponent, PropertiesPanelComponent, PropertyInspectorComponent, RectangleRenderer, SettingsPanelComponent, SimulationPanelComponent, SimulationPanelWrapperComponent, StylesPanelComponent, SvgImportService, SymbolEditorComponent, SymbolEditorPageComponent, SymbolLibraryAdminComponent, SymbolLibraryDataSourceDirective, SymbolLibraryDetailComponent, SymbolLibraryListComponent, SymbolLibraryPanelComponent, SymbolLibraryService, SymbolRenderer, SymbolsPanelComponent, TextRenderer, TransformPanelComponent, TransformPropertyEditorComponent, UpdateProcessDiagramDtoGQL, UpdateSymbolDefinitionDtoGQL, UpdateSymbolLibraryDtoGQL, addChildrenToGroup, applyTextTransform, buildAnimationChildren, buildStyleAttributes, buildTransformAttribute, createAnimationDefinition, createBooleanProperty, createCircle, createColorProperty, createEllipse, createFromPreset, createGroup, createImage, createLine, createMotionAnimation, createNumberProperty, createOpacityAnimation, createPath, createPolygon, createPolyline, createPropertyBinding, createRectangle, createRegularPolygon, createRenderContext, createRotationAnimation, createStyleClass, createStyleClassFromCss, createStyleClassNameMap, createSvgImage, createSymbolRenderContext, createText, detectSourceType, estimatePathBounds, findStyleClass, findStyleClassByName, formatDuration, generateAnimationControlScript, getAnimationElementSelector, getEffectiveTextStyle, getEllipseSize, getFlowParticlesAnimation, getGroupBounds, getImageSize, getLineAngle, getLineLength, getLineMidpoint, getPolygonBounds, getPolygonCentroid, getPresetKeys, getPresetsGrouped, getRectangleSize, hasFlowParticlesAnimation, isAnimationDefinition, isAttributeAnimation, isChildOfGroup, isCircle, isEllipse, isFlowParticlesAnimation, isGroupEmpty, isGroupPrimitive, isImage, isLine, isMotionAnimation, isPath, isPolygon, isPolyline, isPrimitive, isPropertyBinding, isRectangle, isStyleClass, isText, isTransformAnimation, isTransformProperty, offsetPathData, parseDuration, parsePathNumbers, pointsToSvgString, removeChildrenFromGroup, renderAnimation, renderAnimations, renderFlowParticles, svgStringToPoints, toSvgPreserveAspectRatio, updateGroupBounds, wrapText };
31701
+ export { ANIMATION_PRESETS, AnimationsPanelComponent, BindingEditorDialogComponent, ContextMenuComponent, CreateProcessDiagramDtoGQL, CreateSymbolDefinitionDtoGQL, CreateSymbolLibraryDtoGQL, DEFAULT_RENDER_CONTEXT, DEFAULT_STYLE, DEFAULT_TEXT_STYLE, DeleteProcessDiagramDtoGQL, DesignerClipboardService, DesignerHistoryService, DesignerLayoutService, DesignerSelectionService, DockviewComponent, ElementPaletteComponent, ElementsPanelComponent, EllipseRenderer, ExpressionEvaluatorService, GetProcessDiagramDtoGQL, GetProcessDiagramsDtoGQL, GetSymbolDefinitionDtoGQL, GetSymbolDefinitionsDtoGQL, GetSymbolLibrariesDtoGQL, GetSymbolLibraryDtoGQL, ImageRenderer, LineRenderer, PathCommands, PathEditorComponent, PathEditorService, PathRenderer, PolygonRenderer, PolylineRenderer, PrimitiveRendererRegistry, PrimitiveType, ProcessDesignerComponent, ProcessDiagramDataService, ProcessDiagramDataSourceDirective, ProcessDiagramListComponent, PropertiesPanelComponent, PropertyInspectorComponent, RectangleRenderer, SettingsPanelComponent, SimulationPanelComponent, SimulationPanelWrapperComponent, StylesPanelComponent, SvgImportService, SymbolEditorComponent, SymbolEditorPageComponent, SymbolLibraryAdminComponent, SymbolLibraryDataSourceDirective, SymbolLibraryDetailComponent, SymbolLibraryListComponent, SymbolLibraryPanelComponent, SymbolLibraryService, SymbolRenderer, SymbolsPanelComponent, TextRenderer, TransformPanelComponent, TransformPropertyEditorComponent, UpdateProcessDiagramDtoGQL, UpdateSymbolDefinitionDtoGQL, UpdateSymbolLibraryDtoGQL, addChildrenToGroup, applyTextTransform, buildAnimationChildren, buildStyleAttributes, buildTransformAttribute, createAnimationDefinition, createBooleanProperty, createCircle, createColorProperty, createEllipse, createFromPreset, createGroup, createImage, createLine, createMappingExpressionValidator, createMotionAnimation, createNumberProperty, createOpacityAnimation, createPath, createPolygon, createPolyline, createPropertyBinding, createRectangle, createRegularPolygon, createRenderContext, createRotationAnimation, createStyleClass, createStyleClassFromCss, createStyleClassNameMap, createSvgImage, createSymbolRenderContext, createText, detectSourceType, estimatePathBounds, findStyleClass, findStyleClassByName, formatDuration, generateAnimationControlScript, getAnimationElementSelector, getEffectiveTextStyle, getEllipseSize, getFlowParticlesAnimation, getGroupBounds, getImageSize, getLineAngle, getLineLength, getLineMidpoint, getPolygonBounds, getPolygonCentroid, getPresetKeys, getPresetsGrouped, getRectangleSize, hasFlowParticlesAnimation, isAnimationDefinition, isAttributeAnimation, isChildOfGroup, isCircle, isEllipse, isFlowParticlesAnimation, isGroupEmpty, isGroupPrimitive, isImage, isLine, isMotionAnimation, isPath, isPolygon, isPolyline, isPrimitive, isPropertyBinding, isRectangle, isStyleClass, isText, isTransformAnimation, isTransformProperty, offsetPathData, parseDuration, parsePathNumbers, pointsToSvgString, removeChildrenFromGroup, renderAnimation, renderAnimations, renderFlowParticles, svgStringToPoints, toSvgPreserveAspectRatio, updateGroupBounds, wrapText };
31647
31702
  //# sourceMappingURL=meshmakers-octo-process-diagrams.mjs.map