Added show help on math funcs in Calculated field simple expression and math node

This commit is contained in:
mpetrov 2025-04-08 17:15:52 +03:00
parent 099e3b6951
commit 673cb7e072
4 changed files with 45 additions and 2 deletions

View File

@ -80,6 +80,12 @@
</div>
<mat-form-field class="mt-3" appearance="outline" subscriptSizing="dynamic" [class.hidden]="fieldFormGroup.get('type').value !== CalculatedFieldType.SIMPLE">
<input matInput formControlName="expressionSIMPLE" maxlength="255" [placeholder]="'(temperature - 32) / 1.8'" required>
<div matSuffix
class="pr-2"
[tb-help-popup]="'math/math-methods_fn'"
tb-help-popup-placement="left"
[tb-help-popup-style]="{maxWidth: '970px'}">
</div>
@if (configFormGroup.get('expressionSIMPLE').errors && configFormGroup.get('expressionSIMPLE').touched) {
<mat-error>
@if (configFormGroup.get('expressionSIMPLE').hasError('required')) {

View File

@ -32,6 +32,12 @@
<legend class="group-title">{{'rule-node-config.custom-expression-field-input' | translate }} *</legend>
<mat-form-field class="mat-block no-margin-top flex-1" subscriptSizing="dynamic">
<input matInput formControlName="customFunction" required/>
<div matSuffix
class="pr-2"
[tb-help-popup]="'math/math-methods_fn'"
tb-help-popup-placement="left"
[tb-help-popup-style]="{maxWidth: '970px'}">
</div>
<mat-error *ngIf="mathFunctionConfigForm.get('customFunction').hasError('required')" translate>
rule-node-config.custom-expression-field-input-required
</mat-error>
@ -73,7 +79,7 @@
<input matInput formControlName="key" required/>
<mat-icon class="help-icon margin-8 cursor-pointer" aria-hidden="false" aria-label="help-icon" matSuffix
color="primary"
matTooltip="{{ 'rule-node-config.math-templatization-tooltip' | translate }}">help</mat-icon>
matTooltip="{{ 'rule-node-config.math-templatization-tooltip' | translate }}">info</mat-icon>
<mat-error *ngIf="mathFunctionConfigForm.get('result.key').hasError('required')" translate>
rule-node-config.key-field-input-required
</mat-error>

View File

@ -67,7 +67,7 @@
<mat-icon class="help-icon margin-8 cursor-pointer" aria-hidden="false" aria-label="help-icon" matSuffix
color="primary"
matTooltip="{{ 'rule-node-config.math-templatization-tooltip' | translate }}">
help
info
</mat-icon>
<mat-error *ngIf="argumentControl.get('key').hasError('required')" translate>
rule-node-config.argument-key-field-input-required

View File

@ -0,0 +1,31 @@
## Built-in mathematical functions
The following expression field provides support for built-in mathematical functions that you can utilize for various calculations.
| Function | Description | Example |
|---------------|---------------------------------------------------------------------|-------------------|
| `abs(x)` | Absolute value of `x`. | `abs(-7) = 7` |
| `acos(x)` | Arc cosine of `x`, result in radians. Requires `-1 ≤ x ≤ 1`. | `acos(1) = 0` |
| `asin(x)` | Arc sine of `x`, result in radians. Requires `-1 ≤ x ≤ 1`. | `asin(0) = 0` |
| `atan(x)` | Arc tangent of `x`, result in radians. | `atan(0) = 0` |
| `cbrt(x)` | Cube root of `x`. | `cbrt(8) = 2` |
| `ceil(x)` | Rounds `x` up to the nearest integer. | `ceil(3.1) = 4` |
| `cos(x)` | Cosine of `x`, where `x` is in radians. | `cos(0) = 1` |
| `cosh(x)` | Hyperbolic cosine of `x`. | `cosh(0) = 1` |
| `cot(x)` | Cotangent of `x` (1 / tan(`x`)), where `x` is in radians. | `cot(0.7854) ≈ 1` |
| `exp(x)` | Computes `e^x`. | `exp(0) = 1` |
| `expm1(x)` | Computes `e^x - 1` accurately for small `x`. | `expm1(0) = 0` |
| `floor(x)` | Rounds `x` down to the nearest integer. | `floor(3.9) = 3` |
| `ln(x)` | Natural logarithm (base *e*) of `x`. Requires `x > 0`. | `ln(1) = 0` |
| `log(x)` | Natural logarithm (base *e*) of `x`. Requires `x > 0`. | `log(1) = 0` |
| `lg(x)` | Natural logarithm (base 10) of `x`. Requires `x > 0`. | `lg(10) = 1` |
| `log10(x)` | Logarithm base 10 of `x`. Requires `x > 0`. | `log10(100) = 2` |
| `log2(x)` | Logarithm base 2 of `x`. Requires `x > 0`. | `log2(8) = 3` |
| `logab(a, b)` | Logarithm of `b` with base `a`. Requires `a > 0`, `b > 0`, `a ≠ 1`. | `logab(2, 8) = 3` |
| `log1p(x)` | Computes `ln(1 + x)` accurately for small `x`. Requires `x > -1`. | `log1p(0) = 0` |
| `pow(x, y)` | Raises `x` to the power of `y` (`x^y`). | `pow(2, 3) = 8` |
| `signum(x)` | Returns the sign of `x`: -1 if `x < 0`, 0 if `x = 0`, 1 if `x > 0`. | `signum(-5) = -1` |
| `sin(x)` | Sine of `x`, where `x` is in radians. | `sin(0) = 0` |
| `sinh(x)` | Hyperbolic sine of `x`. | `sinh(0) = 0` |
| `sqrt(x)` | Square root of `x`. Requires `x ≥ 0`. | `sqrt(4) = 2` |
| `tan(x)` | Tangent of `x`, where `x` is in radians. | `tan(0) = 0` |
| `tanh(x)` | Hyperbolic tangent of `x`. | `tanh(0) = 0` |