@react-typed-forms/schemas 5.0.3 → 7.0.0
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.
- package/.rush/temp/shrinkwrap-deps.json +39 -11
- package/lib/controlBuilder.d.ts +2 -2
- package/lib/controlRender.d.ts +75 -21
- package/lib/hooks.d.ts +10 -6
- package/lib/index.d.ts +1 -0
- package/lib/index.js +511 -254
- package/lib/index.js.map +1 -1
- package/lib/internal.d.ts +1 -0
- package/lib/renderers.d.ts +21 -11
- package/lib/schemaInterface.d.ts +4 -0
- package/lib/types.d.ts +48 -8
- package/lib/util.d.ts +9 -6
- package/lib/validators.d.ts +2 -2
- package/package.json +2 -2
- package/src/controlBuilder.ts +3 -3
- package/src/controlRender.tsx +256 -167
- package/src/hooks.tsx +101 -16
- package/src/index.ts +1 -0
- package/src/internal.ts +4 -0
- package/src/renderers.tsx +224 -86
- package/src/schemaInterface.ts +31 -0
- package/src/tailwind.tsx +5 -1
- package/src/types.ts +62 -5
- package/src/util.ts +40 -19
- package/src/validators.ts +3 -3
package/lib/internal.d.ts
CHANGED
package/lib/renderers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { CSSProperties, ReactElement, ReactNode } from "react";
|
|
2
2
|
import { Control } from "@react-typed-forms/core";
|
|
3
|
-
import { ActionRendererProps, AdornmentProps, AdornmentRenderer, ArrayRendererProps, ControlLayoutProps, DataRendererProps, DisplayRendererProps, FormRenderer, GroupRendererProps, LabelRendererProps, LabelType, RenderedLayout,
|
|
4
|
-
import { FieldOption, GridRenderer } from "./types";
|
|
3
|
+
import { ActionRendererProps, AdornmentProps, AdornmentRenderer, ArrayRendererProps, ControlLayoutProps, DataRendererProps, DisplayRendererProps, FormRenderer, GroupRendererProps, LabelRendererProps, LabelType, RenderedControl, RenderedLayout, VisibilityRendererProps } from "./controlRender";
|
|
4
|
+
import { ControlAdornment, FieldOption, GridRenderer, IconAdornment, SchemaField, SchemaInterface } from "./types";
|
|
5
5
|
export interface DefaultRenderers {
|
|
6
6
|
data: DataRendererRegistration;
|
|
7
7
|
label: LabelRendererRegistration;
|
|
@@ -16,7 +16,7 @@ export interface DefaultRenderers {
|
|
|
16
16
|
export interface LayoutRendererRegistration {
|
|
17
17
|
type: "layout";
|
|
18
18
|
match?: (props: ControlLayoutProps) => boolean;
|
|
19
|
-
render: (props: ControlLayoutProps, renderers: FormRenderer) =>
|
|
19
|
+
render: (props: ControlLayoutProps, renderers: FormRenderer) => RenderedControl;
|
|
20
20
|
}
|
|
21
21
|
export interface DataRendererRegistration {
|
|
22
22
|
type: "data";
|
|
@@ -25,7 +25,7 @@ export interface DataRendererRegistration {
|
|
|
25
25
|
options?: boolean;
|
|
26
26
|
collection?: boolean;
|
|
27
27
|
match?: (props: DataRendererProps) => boolean;
|
|
28
|
-
render: (props: DataRendererProps,
|
|
28
|
+
render: (props: DataRendererProps, renderers: FormRenderer) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);
|
|
29
29
|
}
|
|
30
30
|
export interface LabelRendererRegistration {
|
|
31
31
|
type: "label";
|
|
@@ -44,7 +44,7 @@ export interface ArrayRendererRegistration {
|
|
|
44
44
|
export interface GroupRendererRegistration {
|
|
45
45
|
type: "group";
|
|
46
46
|
renderType?: string | string[];
|
|
47
|
-
render: (props: GroupRendererProps, renderers: FormRenderer) => ReactElement;
|
|
47
|
+
render: (props: GroupRendererProps, renderers: FormRenderer) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);
|
|
48
48
|
}
|
|
49
49
|
export interface DisplayRendererRegistration {
|
|
50
50
|
type: "display";
|
|
@@ -58,7 +58,7 @@ export interface AdornmentRendererRegistration {
|
|
|
58
58
|
}
|
|
59
59
|
export interface VisibilityRendererRegistration {
|
|
60
60
|
type: "visibility";
|
|
61
|
-
render: (
|
|
61
|
+
render: (props: VisibilityRendererProps) => ReactNode;
|
|
62
62
|
}
|
|
63
63
|
export type RendererRegistration = DataRendererRegistration | GroupRendererRegistration | DisplayRendererRegistration | ActionRendererRegistration | LabelRendererRegistration | ArrayRendererRegistration | AdornmentRendererRegistration | LayoutRendererRegistration | VisibilityRendererRegistration;
|
|
64
64
|
export declare function createFormRenderer(customRenderers?: RendererRegistration[], defaultRenderers?: DefaultRenderers): FormRenderer;
|
|
@@ -91,6 +91,8 @@ interface DefaultGroupRendererOptions {
|
|
|
91
91
|
gridStyles?: (columns: GridRenderer) => StyleProps;
|
|
92
92
|
gridClassName?: string;
|
|
93
93
|
defaultGridColumns?: number;
|
|
94
|
+
flexClassName?: string;
|
|
95
|
+
defaultFlexGap?: string;
|
|
94
96
|
}
|
|
95
97
|
export declare function createDefaultGroupRenderer(options?: DefaultGroupRendererOptions): GroupRendererRegistration;
|
|
96
98
|
export interface DefaultDisplayRendererOptions {
|
|
@@ -98,14 +100,24 @@ export interface DefaultDisplayRendererOptions {
|
|
|
98
100
|
htmlClassName?: string;
|
|
99
101
|
}
|
|
100
102
|
export declare function createDefaultDisplayRenderer(options?: DefaultDisplayRendererOptions): DisplayRendererRegistration;
|
|
103
|
+
export declare function DefaultDisplay({ data, display, className, style, ...options }: DefaultDisplayRendererOptions & DisplayRendererProps): React.JSX.Element;
|
|
101
104
|
export declare const DefaultBoolOptions: FieldOption[];
|
|
102
105
|
interface DefaultDataRendererOptions {
|
|
103
106
|
inputClass?: string;
|
|
107
|
+
displayOnlyClass?: string;
|
|
104
108
|
selectOptions?: SelectRendererOptions;
|
|
105
109
|
booleanOptions?: FieldOption[];
|
|
106
110
|
optionRenderer?: DataRendererRegistration;
|
|
107
111
|
}
|
|
108
112
|
export declare function createDefaultDataRenderer(options?: DefaultDataRendererOptions): DataRendererRegistration;
|
|
113
|
+
export declare function DefaultDisplayOnly({ control, className, emptyText, schemaInterface, field, style, }: {
|
|
114
|
+
control: Control<any>;
|
|
115
|
+
field: SchemaField;
|
|
116
|
+
schemaInterface: SchemaInterface;
|
|
117
|
+
className?: string;
|
|
118
|
+
style?: React.CSSProperties;
|
|
119
|
+
emptyText?: string | null;
|
|
120
|
+
}): React.JSX.Element;
|
|
109
121
|
export declare function ControlInput({ control, convert, ...props }: React.InputHTMLAttributes<HTMLInputElement> & {
|
|
110
122
|
control: Control<any>;
|
|
111
123
|
convert: InputConversion;
|
|
@@ -128,6 +140,7 @@ export interface DefaultRendererOptions {
|
|
|
128
140
|
layout?: DefaultLayoutRendererOptions;
|
|
129
141
|
}
|
|
130
142
|
export declare function createDefaultRenderers(options?: DefaultRendererOptions): DefaultRenderers;
|
|
143
|
+
export declare function isIconAdornment(a: ControlAdornment): a is IconAdornment;
|
|
131
144
|
export declare function createLayoutRenderer(render: LayoutRendererRegistration["render"], options?: Partial<LayoutRendererRegistration>): LayoutRendererRegistration;
|
|
132
145
|
export declare function createArrayRenderer(render: ArrayRendererRegistration["render"], options?: Partial<ArrayRendererRegistration>): ArrayRendererRegistration;
|
|
133
146
|
export declare function createDataRenderer(render: DataRendererRegistration["render"], options?: Partial<DataRendererRegistration>): DataRendererRegistration;
|
|
@@ -160,11 +173,8 @@ export declare function createSelectConversion(ft: string): SelectConversion;
|
|
|
160
173
|
type InputConversion = [string, (s: any) => any, (a: any) => string | number];
|
|
161
174
|
export declare function createInputConversion(ft: string): InputConversion;
|
|
162
175
|
export declare function createDefaultVisibilityRenderer(): VisibilityRendererRegistration;
|
|
163
|
-
export declare function DefaultVisibility({ visibility, children, }:
|
|
164
|
-
|
|
165
|
-
children: () => ReactNode;
|
|
166
|
-
}): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
|
|
167
|
-
export declare function DefaultLayout({ className, errorClass, layout: { controlEnd, controlStart, label, children, errorControl }, }: DefaultLayoutRendererOptions & {
|
|
176
|
+
export declare function DefaultVisibility({ visibility, children, className, style, divRef, }: VisibilityRendererProps): React.JSX.Element;
|
|
177
|
+
export declare function DefaultLayout({ errorClass, className, layout: { controlEnd, controlStart, label, children, errorControl }, }: DefaultLayoutRendererOptions & {
|
|
168
178
|
layout: RenderedLayout;
|
|
169
179
|
}): React.JSX.Element;
|
|
170
180
|
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SchemaField, SchemaInterface } from "./types";
|
|
2
|
+
export declare const defaultSchemaInterface: SchemaInterface;
|
|
3
|
+
export declare function defaultIsEmpty(f: SchemaField, value: any): boolean;
|
|
4
|
+
export declare function defaultTextValue(f: SchemaField, value: any): string | undefined;
|
package/lib/types.d.ts
CHANGED
|
@@ -42,9 +42,15 @@ export interface CompoundField extends SchemaField {
|
|
|
42
42
|
treeChildren?: boolean;
|
|
43
43
|
}
|
|
44
44
|
export type AnyControlDefinition = DataControlDefinition | GroupedControlsDefinition | ActionControlDefinition | DisplayControlDefinition;
|
|
45
|
+
export interface SchemaInterface {
|
|
46
|
+
isEmptyValue(field: SchemaField, value: any): boolean;
|
|
47
|
+
textValue(field: SchemaField, value: any, element?: boolean): string | undefined;
|
|
48
|
+
}
|
|
45
49
|
export interface ControlDefinition {
|
|
46
50
|
type: string;
|
|
47
51
|
title?: string | null;
|
|
52
|
+
styleClass?: string | null;
|
|
53
|
+
layoutClass?: string | null;
|
|
48
54
|
dynamic?: DynamicProperty[] | null;
|
|
49
55
|
adornments?: ControlAdornment[] | null;
|
|
50
56
|
children?: ControlDefinition[] | null;
|
|
@@ -63,22 +69,30 @@ export declare enum DynamicPropertyType {
|
|
|
63
69
|
Visible = "Visible",
|
|
64
70
|
DefaultValue = "DefaultValue",
|
|
65
71
|
Readonly = "Readonly",
|
|
66
|
-
Disabled = "Disabled"
|
|
72
|
+
Disabled = "Disabled",
|
|
73
|
+
Display = "Display",
|
|
74
|
+
Style = "Style",
|
|
75
|
+
LayoutStyle = "LayoutStyle"
|
|
67
76
|
}
|
|
68
77
|
export interface EntityExpression {
|
|
69
78
|
type: string;
|
|
70
79
|
}
|
|
71
80
|
export declare enum ExpressionType {
|
|
72
81
|
Jsonata = "Jsonata",
|
|
73
|
-
|
|
82
|
+
Data = "Data",
|
|
83
|
+
DataMatch = "FieldValue",
|
|
74
84
|
UserMatch = "UserMatch"
|
|
75
85
|
}
|
|
76
86
|
export interface JsonataExpression extends EntityExpression {
|
|
77
87
|
type: ExpressionType.Jsonata;
|
|
78
88
|
expression: string;
|
|
79
89
|
}
|
|
80
|
-
export interface
|
|
81
|
-
type: ExpressionType.
|
|
90
|
+
export interface DataExpression extends EntityExpression {
|
|
91
|
+
type: ExpressionType.Data;
|
|
92
|
+
field: string;
|
|
93
|
+
}
|
|
94
|
+
export interface DataMatchExpression extends EntityExpression {
|
|
95
|
+
type: ExpressionType.DataMatch;
|
|
82
96
|
field: string;
|
|
83
97
|
value: any;
|
|
84
98
|
}
|
|
@@ -98,7 +112,13 @@ export declare enum AdornmentPlacement {
|
|
|
98
112
|
export declare enum ControlAdornmentType {
|
|
99
113
|
Tooltip = "Tooltip",
|
|
100
114
|
Accordion = "Accordion",
|
|
101
|
-
HelpText = "HelpText"
|
|
115
|
+
HelpText = "HelpText",
|
|
116
|
+
Icon = "Icon"
|
|
117
|
+
}
|
|
118
|
+
export interface IconAdornment extends ControlAdornment {
|
|
119
|
+
type: ControlAdornmentType.Icon;
|
|
120
|
+
iconClass: string;
|
|
121
|
+
placement?: AdornmentPlacement | null;
|
|
102
122
|
}
|
|
103
123
|
export interface TooltipAdornment extends ControlAdornment {
|
|
104
124
|
type: ControlAdornmentType.Tooltip;
|
|
@@ -112,7 +132,7 @@ export interface AccordionAdornment extends ControlAdornment {
|
|
|
112
132
|
export interface HelpTextAdornment extends ControlAdornment {
|
|
113
133
|
type: ControlAdornmentType.HelpText;
|
|
114
134
|
helpText: string;
|
|
115
|
-
placement
|
|
135
|
+
placement?: AdornmentPlacement | null;
|
|
116
136
|
}
|
|
117
137
|
export interface DataControlDefinition extends ControlDefinition {
|
|
118
138
|
type: ControlDefinitionType.Data;
|
|
@@ -123,6 +143,7 @@ export interface DataControlDefinition extends ControlDefinition {
|
|
|
123
143
|
readonly?: boolean | null;
|
|
124
144
|
validators?: SchemaValidator[] | null;
|
|
125
145
|
hideTitle?: boolean | null;
|
|
146
|
+
dontClearHidden?: boolean | null;
|
|
126
147
|
}
|
|
127
148
|
export interface RenderOptions {
|
|
128
149
|
type: string;
|
|
@@ -138,7 +159,8 @@ export declare enum DataRenderType {
|
|
|
138
159
|
IconSelector = "IconSelector",
|
|
139
160
|
DateTime = "DateTime",
|
|
140
161
|
Checkbox = "Checkbox",
|
|
141
|
-
Dropdown = "Dropdown"
|
|
162
|
+
Dropdown = "Dropdown",
|
|
163
|
+
DisplayOnly = "DisplayOnly"
|
|
142
164
|
}
|
|
143
165
|
export interface RadioButtonRenderOptions extends RenderOptions {
|
|
144
166
|
type: DataRenderType.Radio;
|
|
@@ -158,6 +180,11 @@ export interface IconListRenderOptions extends RenderOptions {
|
|
|
158
180
|
type: DataRenderType.IconList;
|
|
159
181
|
iconMappings: IconMapping[];
|
|
160
182
|
}
|
|
183
|
+
export interface DisplayOnlyRenderOptions extends RenderOptions {
|
|
184
|
+
type: DataRenderType.DisplayOnly;
|
|
185
|
+
emptyText?: string | null;
|
|
186
|
+
sampleText?: string | null;
|
|
187
|
+
}
|
|
161
188
|
export interface IconMapping {
|
|
162
189
|
value: string;
|
|
163
190
|
materialIcon?: string | null;
|
|
@@ -195,11 +222,17 @@ export interface GroupRenderOptions {
|
|
|
195
222
|
export declare enum GroupRenderType {
|
|
196
223
|
Standard = "Standard",
|
|
197
224
|
Grid = "Grid",
|
|
225
|
+
Flex = "Flex",
|
|
198
226
|
GroupElement = "GroupElement"
|
|
199
227
|
}
|
|
200
228
|
export interface StandardGroupRenderer extends GroupRenderOptions {
|
|
201
229
|
type: GroupRenderType.Standard;
|
|
202
230
|
}
|
|
231
|
+
export interface FlexRenderer extends GroupRenderOptions {
|
|
232
|
+
type: GroupRenderType.Flex;
|
|
233
|
+
direction?: string | null;
|
|
234
|
+
gap?: string | null;
|
|
235
|
+
}
|
|
203
236
|
export interface GroupElementRenderer extends GroupRenderOptions {
|
|
204
237
|
type: GroupRenderType.GroupElement;
|
|
205
238
|
value: any;
|
|
@@ -217,12 +250,17 @@ export interface DisplayData {
|
|
|
217
250
|
}
|
|
218
251
|
export declare enum DisplayDataType {
|
|
219
252
|
Text = "Text",
|
|
220
|
-
Html = "Html"
|
|
253
|
+
Html = "Html",
|
|
254
|
+
Icon = "Icon"
|
|
221
255
|
}
|
|
222
256
|
export interface TextDisplay extends DisplayData {
|
|
223
257
|
type: DisplayDataType.Text;
|
|
224
258
|
text: string;
|
|
225
259
|
}
|
|
260
|
+
export interface IconDisplay extends DisplayData {
|
|
261
|
+
type: DisplayDataType.Icon;
|
|
262
|
+
iconClass: string;
|
|
263
|
+
}
|
|
226
264
|
export interface HtmlDisplay extends DisplayData {
|
|
227
265
|
type: DisplayDataType.Html;
|
|
228
266
|
html: string;
|
|
@@ -264,3 +302,5 @@ export interface ControlVisitor<A> {
|
|
|
264
302
|
}
|
|
265
303
|
export declare function visitControlDefinition<A>(x: ControlDefinition, visitor: ControlVisitor<A>, defaultValue: (c: ControlDefinition) => A): A;
|
|
266
304
|
export declare function isGridRenderer(options: GroupRenderOptions): options is GridRenderer;
|
|
305
|
+
export declare function isFlexRenderer(options: GroupRenderOptions): options is FlexRenderer;
|
|
306
|
+
export declare function isDisplayOnlyRenderer(options: RenderOptions): options is DisplayOnlyRenderOptions;
|
package/lib/util.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CompoundField, ControlDefinition, DataControlDefinition, FieldOption, GroupedControlsDefinition, SchemaField } from "./types";
|
|
1
|
+
import { CompoundField, ControlDefinition, DataControlDefinition, DisplayOnlyRenderOptions, FieldOption, GroupedControlsDefinition, SchemaField, SchemaInterface } from "./types";
|
|
2
2
|
import { MutableRefObject } from "react";
|
|
3
3
|
import { Control } from "@react-typed-forms/core";
|
|
4
|
-
export interface
|
|
4
|
+
export interface ControlDataContext {
|
|
5
5
|
groupControl: Control<any>;
|
|
6
6
|
fields: SchemaField[];
|
|
7
|
+
schemaInterface: SchemaInterface;
|
|
7
8
|
}
|
|
8
9
|
export declare function applyDefaultValues(v: {
|
|
9
10
|
[k: string]: any;
|
|
@@ -24,13 +25,15 @@ export declare function fieldDisplayName(field: SchemaField): string;
|
|
|
24
25
|
export declare function hasOptions(o: {
|
|
25
26
|
options: FieldOption[] | undefined | null;
|
|
26
27
|
}): boolean;
|
|
27
|
-
export declare function defaultControlForField(sf: SchemaField): DataControlDefinition
|
|
28
|
+
export declare function defaultControlForField(sf: SchemaField): DataControlDefinition;
|
|
28
29
|
export declare function addMissingControls(fields: SchemaField[], controls: ControlDefinition[]): ControlDefinition[];
|
|
29
30
|
export declare function useUpdatedRef<A>(a: A): MutableRefObject<A>;
|
|
30
31
|
export declare function isControlReadonly(c: ControlDefinition): boolean;
|
|
31
|
-
export declare function
|
|
32
|
-
export declare function
|
|
33
|
-
export declare function
|
|
32
|
+
export declare function getDisplayOnlyOptions(d: ControlDefinition): DisplayOnlyRenderOptions | undefined;
|
|
33
|
+
export declare function getTypeField(context: ControlDataContext): Control<string> | undefined;
|
|
34
|
+
export declare function visitControlDataArray<A>(controls: ControlDefinition[] | undefined | null, context: ControlDataContext, cb: (definition: DataControlDefinition, field: SchemaField, control: Control<any>, element: boolean) => A | undefined): A | undefined;
|
|
35
|
+
export declare function visitControlData<A>(definition: ControlDefinition, ctx: ControlDataContext, cb: (definition: DataControlDefinition, field: SchemaField, control: Control<any>, element: boolean) => A | undefined): A | undefined;
|
|
34
36
|
export declare function cleanDataForSchema(v: {
|
|
35
37
|
[k: string]: any;
|
|
36
38
|
} | undefined, fields: SchemaField[]): any;
|
|
39
|
+
export declare function getAllReferencedClasses(c: ControlDefinition): string[];
|
package/lib/validators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ControlDefinition } from "./types";
|
|
2
2
|
import { Control } from "@react-typed-forms/core";
|
|
3
|
-
import {
|
|
4
|
-
export declare function useValidationHook(definition: ControlDefinition): (control: Control<any>, hidden: boolean, groupContext:
|
|
3
|
+
import { ControlDataContext } from "./util";
|
|
4
|
+
export declare function useValidationHook(definition: ControlDefinition): (control: Control<any>, hidden: boolean, groupContext: ControlDataContext) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-typed-forms/schemas",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"material-ui"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@react-typed-forms/core": "^3.0.0
|
|
27
|
+
"@react-typed-forms/core": "^3.0.0",
|
|
28
28
|
"clsx": "^1 || ^2",
|
|
29
29
|
"jsonata": "^2.0.4",
|
|
30
30
|
"react": "^18.2.0"
|
package/src/controlBuilder.ts
CHANGED
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
ControlDefinition,
|
|
3
3
|
ControlDefinitionType,
|
|
4
4
|
DataControlDefinition,
|
|
5
|
+
DataMatchExpression,
|
|
5
6
|
DisplayControlDefinition,
|
|
6
7
|
DisplayDataType,
|
|
7
8
|
DynamicProperty,
|
|
8
9
|
DynamicPropertyType,
|
|
9
10
|
EntityExpression,
|
|
10
11
|
ExpressionType,
|
|
11
|
-
FieldValueExpression,
|
|
12
12
|
GroupedControlsDefinition,
|
|
13
13
|
GroupRenderType,
|
|
14
14
|
HtmlDisplay,
|
|
@@ -66,8 +66,8 @@ export function dynamicDisabled(expr: EntityExpression): DynamicProperty {
|
|
|
66
66
|
return { type: DynamicPropertyType.Disabled, expr };
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export function fieldEqExpr(field: string, value: any):
|
|
70
|
-
return { type: ExpressionType.
|
|
69
|
+
export function fieldEqExpr(field: string, value: any): DataMatchExpression {
|
|
70
|
+
return { type: ExpressionType.DataMatch, field, value };
|
|
71
71
|
}
|
|
72
72
|
export function jsonataExpr(expression: string): JsonataExpression {
|
|
73
73
|
return { type: ExpressionType.Jsonata, expression };
|