@qoretechnologies/reqraft 0.10.53 → 0.10.54-pr.115.ge2d364c
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/.claude/CLAUDE.md +25 -0
- package/.tasks/INDEX.md +1 -0
- package/.tasks/STORY_NETWORK_ISOLATION.md +98 -0
- package/README.md +1 -1
- package/design/FORM_ENGINE_EXPRESSIONS.md +110 -0
- package/design/RENDER_EXPRESSION_TRANSPORT.md +18 -0
- package/dist/components/dpqlEditor/dpqlProbe.d.ts +37 -0
- package/dist/components/dpqlEditor/dpqlProbe.d.ts.map +1 -0
- package/dist/components/dpqlEditor/dpqlProbe.js +203 -0
- package/dist/components/dpqlEditor/dpqlProbe.js.map +1 -0
- package/dist/components/dpqlEditor/index.d.ts +4 -0
- package/dist/components/dpqlEditor/index.d.ts.map +1 -1
- package/dist/components/dpqlEditor/index.js +5 -1
- package/dist/components/dpqlEditor/index.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +29 -2
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlProbe.d.ts +4 -0
- package/dist/components/dpqlEditor/useDpqlProbe.d.ts.map +1 -0
- package/dist/components/dpqlEditor/useDpqlProbe.js +29 -0
- package/dist/components/dpqlEditor/useDpqlProbe.js.map +1 -0
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +5 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +8 -2
- package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +186 -21
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +5 -2
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +159 -11
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +376 -75
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/FormFieldsSkeleton.d.ts +48 -0
- package/dist/components/form/engine/FormFieldsSkeleton.d.ts.map +1 -0
- package/dist/components/form/engine/FormFieldsSkeleton.js +38 -0
- package/dist/components/form/engine/FormFieldsSkeleton.js.map +1 -0
- package/dist/components/form/engine/OptionFieldMessages.d.ts +17 -2
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +61 -11
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +7 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.d.ts +42 -1
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +74 -7
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/rendererTypes.d.ts +13 -0
- package/dist/components/form/engine/rendererTypes.d.ts.map +1 -1
- package/dist/components/form/engine/rendererTypes.js.map +1 -1
- package/dist/components/form/engine/rowMenuContext.d.ts +78 -0
- package/dist/components/form/engine/rowMenuContext.d.ts.map +1 -0
- package/dist/components/form/engine/rowMenuContext.js +103 -0
- package/dist/components/form/engine/rowMenuContext.js.map +1 -0
- package/dist/components/form/engine/typeChoices.d.ts +37 -0
- package/dist/components/form/engine/typeChoices.d.ts.map +1 -0
- package/dist/components/form/engine/typeChoices.js +25 -0
- package/dist/components/form/engine/typeChoices.js.map +1 -0
- package/dist/components/form/expressions/ExpressionField.d.ts +7 -1
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +181 -33
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/argumentPresence.d.ts +97 -0
- package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -0
- package/dist/components/form/expressions/argumentPresence.js +203 -0
- package/dist/components/form/expressions/argumentPresence.js.map +1 -0
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +9 -4
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +15 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +19 -57
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/dpqlMockLsp.d.ts +17 -0
- package/dist/components/form/expressions/dpqlMockLsp.d.ts.map +1 -1
- package/dist/components/form/expressions/dpqlMockLsp.js +75 -9
- package/dist/components/form/expressions/dpqlMockLsp.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +94 -19
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +3 -1
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +11 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +14 -2
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +13 -2
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts +11 -0
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +84 -5
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +2 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +3 -2
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateField.d.ts +31 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +507 -40
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts +1 -0
- package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts.map +1 -1
- package/dist/components/smartEditor/__fixtures__/mockLspServer.js +6 -1
- package/dist/components/smartEditor/__fixtures__/mockLspServer.js.map +1 -1
- package/dist/helpers/dpqlDetection.d.ts +58 -0
- package/dist/helpers/dpqlDetection.d.ts.map +1 -0
- package/dist/helpers/dpqlDetection.js +164 -0
- package/dist/helpers/dpqlDetection.js.map +1 -0
- package/dist/helpers/optionUiTypes.d.ts +1 -1
- package/dist/helpers/options.d.ts +37 -0
- package/dist/helpers/options.d.ts.map +1 -1
- package/dist/helpers/options.js +78 -1
- package/dist/helpers/options.js.map +1 -1
- package/dist/helpers/templateItems.d.ts +47 -0
- package/dist/helpers/templateItems.d.ts.map +1 -0
- package/dist/helpers/templateItems.js +88 -0
- package/dist/helpers/templateItems.js.map +1 -0
- package/dist/helpers/templates.d.ts +21 -0
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +49 -3
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +56 -9
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useArgSchema.d.ts +2 -1
- package/dist/hooks/useArgSchema.d.ts.map +1 -1
- package/dist/hooks/useFetch/useFetch.d.ts +3 -1
- package/dist/hooks/useFetch/useFetch.d.ts.map +1 -1
- package/dist/hooks/useFetch/useFetch.js +47 -9
- package/dist/hooks/useFetch/useFetch.js.map +1 -1
- package/dist/hooks/useTemplates.d.ts +20 -0
- package/dist/hooks/useTemplates.d.ts.map +1 -1
- package/dist/hooks/useTemplates.js +34 -2
- package/dist/hooks/useTemplates.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/stories/storyNetwork.d.ts +36 -0
- package/dist/stories/storyNetwork.d.ts.map +1 -0
- package/dist/stories/storyNetwork.js +82 -0
- package/dist/stories/storyNetwork.js.map +1 -0
- package/dist/utils/fetch.d.ts +151 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +256 -44
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/lspClient.d.ts +6 -0
- package/dist/utils/lspClient.d.ts.map +1 -1
- package/dist/utils/lspClient.js +62 -11
- package/dist/utils/lspClient.js.map +1 -1
- package/dist/utils/websocket.d.ts +6 -0
- package/dist/utils/websocket.d.ts.map +1 -1
- package/dist/utils/websocket.js +15 -7
- package/dist/utils/websocket.js.map +1 -1
- package/package.json +2 -2
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -2
- package/src/components/dpqlEditor/dpqlProbe.ts +165 -0
- package/src/components/dpqlEditor/index.ts +4 -0
- package/src/components/dpqlEditor/types.ts +26 -2
- package/src/components/dpqlEditor/useDpqlProbe.ts +33 -0
- package/src/components/dpqlEditor/useDpqlSession.ts +20 -4
- package/src/components/form/engine/CompactRow.tsx +231 -11
- package/src/components/form/engine/CompactToolbar.tsx +10 -3
- package/src/components/form/engine/FormEngine.stories.tsx +331 -30
- package/src/components/form/engine/FormEngine.tsx +504 -87
- package/src/components/form/engine/FormFieldsSkeleton.tsx +76 -0
- package/src/components/form/engine/OptionFieldMessages.tsx +89 -11
- package/src/components/form/engine/_structuredData/SchemaDataView.tsx +11 -0
- package/src/components/form/engine/compactToolbarContext.ts +1 -1
- package/src/components/form/engine/readFirst.ts +86 -7
- package/src/components/form/engine/rendererTypes.ts +12 -0
- package/src/components/form/engine/rowMenuContext.ts +159 -0
- package/src/components/form/engine/typeChoices.ts +55 -0
- package/src/components/form/expressions/ExpressionField.stories.tsx +828 -31
- package/src/components/form/expressions/ExpressionField.tsx +234 -29
- package/src/components/form/expressions/argumentPresence.ts +200 -0
- package/src/components/form/expressions/builder/argumentLabel.tsx +10 -4
- package/src/components/form/expressions/builder/index.tsx +31 -75
- package/src/components/form/expressions/dpqlMockLsp.ts +81 -1
- package/src/components/form/expressions/renderExpressionToText.ts +106 -17
- package/src/components/form/fields/Field.tsx +3 -2
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +13 -2
- package/src/components/form/fields/auto/AutoFormField.tsx +12 -2
- package/src/components/form/fields/rich-text/RichText.tsx +112 -19
- package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +4 -2
- package/src/components/form/fields/template/TemplateField.tsx +667 -95
- package/src/components/form/index.tsx +1 -0
- package/src/components/log/Log.stories.tsx +2 -1
- package/src/components/smartEditor/__fixtures__/mockLspServer.ts +6 -1
- package/src/helpers/dpqlDetection.ts +209 -0
- package/src/helpers/options.ts +70 -0
- package/src/helpers/templateItems.ts +81 -0
- package/src/helpers/templates.ts +51 -2
- package/src/helpers/validations.ts +59 -9
- package/src/hooks/useFetch/useFetch.stories.tsx +6 -5
- package/src/hooks/useFetch/useFetch.tsx +53 -7
- package/src/hooks/useStorage/useStorage.stories.tsx +2 -1
- package/src/hooks/useTemplates.ts +41 -0
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +2 -1
- package/src/index.tsx +14 -1
- package/src/stores/currentUser/currentUser.stories.tsx +2 -1
- package/src/stories/storyNetwork.ts +92 -0
- package/src/utils/fetch.ts +311 -21
- package/src/utils/lspClient.ts +68 -11
- package/src/utils/websocket.ts +20 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionField.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/ExpressionField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA2C;AAC3C,wEAAwE;AACxE,sEAAsE;AACtE,2EAA2E;AAC3E,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"ExpressionField.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/ExpressionField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is this expression argument SUPPLIED, or is it still missing?
|
|
3
|
+
*
|
|
4
|
+
* DPQL has a null literal: `null` parses to `{exp: "value", args: [null]}` and
|
|
5
|
+
* round-trips, and an author writing it in the text editor means *"this is the
|
|
6
|
+
* value — nothing"*. It is the only way to assert that a call returned no
|
|
7
|
+
* value, which is how it was reported.
|
|
8
|
+
*
|
|
9
|
+
* The rule, stated once here because three different places had drawn it
|
|
10
|
+
* differently: **an argument that is explicitly null is supplied; one that is
|
|
11
|
+
* absent or `undefined` is still missing.**
|
|
12
|
+
*
|
|
13
|
+
* The builder used to ask `size(arg) === 0`, and lodash answers `0` for `null`
|
|
14
|
+
* as readily as for `{}`. So an explicit null was read as a missing argument
|
|
15
|
+
* and reset from the catalogue's declaration — which is how a saved draft ended
|
|
16
|
+
* up holding `{"type": "any", "required": true}`, an argument DEFINITION where
|
|
17
|
+
* its value should be, with the author's `null` gone and `required` (a schema
|
|
18
|
+
* key, never a value key) left behind to give it away.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* True when `arg` carries no value yet — `undefined`, the `{}` the builder
|
|
22
|
+
* writes when a type change resets an argument, or any envelope with no
|
|
23
|
+
* `value` in it.
|
|
24
|
+
*
|
|
25
|
+
* `null` is NOT missing: it is the null literal.
|
|
26
|
+
*
|
|
27
|
+
* The rule used to be "an object with no keys at all", which let an envelope
|
|
28
|
+
* holding nothing but SCHEMA keys pass as a supplied value. That is how a saved
|
|
29
|
+
* draft kept `{type: 'any', required: true}` — an argument DEFINITION where the
|
|
30
|
+
* author's value belonged — and why re-opening the expression never repaired
|
|
31
|
+
* it: the builder looked at those two keys, concluded the argument was already
|
|
32
|
+
* supplied, and left the definition in place as data. `required` is a schema
|
|
33
|
+
* key; nothing ever reads it back off a stored value.
|
|
34
|
+
*
|
|
35
|
+
* Asking for the `value` instead makes the question the one that was always
|
|
36
|
+
* meant: has the author put something here?
|
|
37
|
+
*
|
|
38
|
+
* @param arg one entry of an expression's `args`
|
|
39
|
+
*/
|
|
40
|
+
export declare const isExpressionArgumentMissing: (arg: unknown) => boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The shape the builder stores an argument in: `{type, value}`.
|
|
43
|
+
*
|
|
44
|
+
* A parse result carries its arguments RAW — `args: [null]`, `args: [3]` —
|
|
45
|
+
* because that is what the grammar produced. The builder's editors read
|
|
46
|
+
* `arg.value`, so a raw argument has to be widened before it is stored, and
|
|
47
|
+
* widening `null` is the whole point: dropped instead, the author's null
|
|
48
|
+
* becomes an argument with no `value` key at all, which every later reader
|
|
49
|
+
* treats as an empty field.
|
|
50
|
+
*
|
|
51
|
+
* An argument that is already an envelope is returned untouched.
|
|
52
|
+
*
|
|
53
|
+
* @param arg one entry of an expression's `args`
|
|
54
|
+
* @param uiType the type the catalogue declares for that position
|
|
55
|
+
*/
|
|
56
|
+
export declare const asExpressionArgumentEnvelope: (arg: unknown, uiType?: string) => unknown;
|
|
57
|
+
/**
|
|
58
|
+
* Does this value still look like an expression AST?
|
|
59
|
+
*
|
|
60
|
+
* `{exp, args}` is the shape the builder and `dpql/parse` both produce. The
|
|
61
|
+
* check is structural on purpose: the flag that marks an option as holding an
|
|
62
|
+
* expression describes its VALUE, so the value is what should decide whether
|
|
63
|
+
* the flag survives a change that said nothing about it.
|
|
64
|
+
*/
|
|
65
|
+
export declare const looksLikeExpressionAst: (value: unknown) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether an option should still be marked as holding an expression.
|
|
68
|
+
*
|
|
69
|
+
* The form engine used to delete the flag on ANY change that did not re-assert
|
|
70
|
+
* it, and most changes do not: an editor re-mounting, a revert, a validation
|
|
71
|
+
* pass. The value stayed the AST while the flag went, so the option degraded
|
|
72
|
+
* into a plain hash — which is how an assertion's Expected Value came back
|
|
73
|
+
* from a saved draft as a two-field object showing `exp` and `args`, and why
|
|
74
|
+
* `encodeTestValue` then stored it with `source: "literal"`.
|
|
75
|
+
*
|
|
76
|
+
* @param isFunction what the caller said: `true` sets the flag, `false` clears
|
|
77
|
+
* it deliberately (choosing a concrete type does this), `undefined` is no
|
|
78
|
+
* opinion at all
|
|
79
|
+
* @param value the option's new value
|
|
80
|
+
* @param wasExpression whether the option was marked before this change
|
|
81
|
+
*/
|
|
82
|
+
export declare const shouldMarkAsExpression: (isFunction: boolean | undefined, value: unknown, wasExpression: boolean | undefined) => boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Fill in an expression's missing arguments, leaving the supplied ones alone.
|
|
85
|
+
*
|
|
86
|
+
* Extracted from the builder so the decision it makes can be tested directly:
|
|
87
|
+
* a component test of the same behaviour passed just as happily with the defect
|
|
88
|
+
* in place, because the builder normalises on an interaction the harness never
|
|
89
|
+
* performed. A test that cannot fail is worse than none.
|
|
90
|
+
*
|
|
91
|
+
* @param expressions the served expression catalogue
|
|
92
|
+
* @param expression the chosen expression's `name`
|
|
93
|
+
* @param args the arguments so far — raw from a parse, or envelopes from the
|
|
94
|
+
* builder's own editors
|
|
95
|
+
*/
|
|
96
|
+
export declare const addMissingExpressionArgs: (expressions: any[] | undefined, expression: string, args?: any[]) => any[];
|
|
97
|
+
//# sourceMappingURL=argumentPresence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentPresence.d.ts","sourceRoot":"","sources":["../../../../src/components/form/expressions/argumentPresence.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,2BAA2B,QAAS,OAAO,KAAG,OAe1D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,4BAA4B,QAAS,OAAO,WAAW,MAAM,KAAG,OAM5E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,OAIF,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,eACrB,OAAO,GAAG,SAAS,SACxB,OAAO,iBACC,OAAO,GAAG,SAAS,KACjC,OAYF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,gBACtB,GAAG,EAAE,GAAG,SAAS,cAClB,MAAM,SACZ,GAAG,EAAE,KACV,GAAG,EAqDL,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Qore Technologies, s.r.o.
|
|
3
|
+
/**
|
|
4
|
+
* Is this expression argument SUPPLIED, or is it still missing?
|
|
5
|
+
*
|
|
6
|
+
* DPQL has a null literal: `null` parses to `{exp: "value", args: [null]}` and
|
|
7
|
+
* round-trips, and an author writing it in the text editor means *"this is the
|
|
8
|
+
* value — nothing"*. It is the only way to assert that a call returned no
|
|
9
|
+
* value, which is how it was reported.
|
|
10
|
+
*
|
|
11
|
+
* The rule, stated once here because three different places had drawn it
|
|
12
|
+
* differently: **an argument that is explicitly null is supplied; one that is
|
|
13
|
+
* absent or `undefined` is still missing.**
|
|
14
|
+
*
|
|
15
|
+
* The builder used to ask `size(arg) === 0`, and lodash answers `0` for `null`
|
|
16
|
+
* as readily as for `{}`. So an explicit null was read as a missing argument
|
|
17
|
+
* and reset from the catalogue's declaration — which is how a saved draft ended
|
|
18
|
+
* up holding `{"type": "any", "required": true}`, an argument DEFINITION where
|
|
19
|
+
* its value should be, with the author's `null` gone and `required` (a schema
|
|
20
|
+
* key, never a value key) left behind to give it away.
|
|
21
|
+
*/
|
|
22
|
+
var __assign = (this && this.__assign) || function () {
|
|
23
|
+
__assign = Object.assign || function(t) {
|
|
24
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
25
|
+
s = arguments[i];
|
|
26
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
27
|
+
t[p] = s[p];
|
|
28
|
+
}
|
|
29
|
+
return t;
|
|
30
|
+
};
|
|
31
|
+
return __assign.apply(this, arguments);
|
|
32
|
+
};
|
|
33
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
+
if (ar || !(i in from)) {
|
|
36
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
+
ar[i] = from[i];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.addMissingExpressionArgs = exports.shouldMarkAsExpression = exports.looksLikeExpressionAst = exports.asExpressionArgumentEnvelope = exports.isExpressionArgumentMissing = void 0;
|
|
44
|
+
/**
|
|
45
|
+
* True when `arg` carries no value yet — `undefined`, the `{}` the builder
|
|
46
|
+
* writes when a type change resets an argument, or any envelope with no
|
|
47
|
+
* `value` in it.
|
|
48
|
+
*
|
|
49
|
+
* `null` is NOT missing: it is the null literal.
|
|
50
|
+
*
|
|
51
|
+
* The rule used to be "an object with no keys at all", which let an envelope
|
|
52
|
+
* holding nothing but SCHEMA keys pass as a supplied value. That is how a saved
|
|
53
|
+
* draft kept `{type: 'any', required: true}` — an argument DEFINITION where the
|
|
54
|
+
* author's value belonged — and why re-opening the expression never repaired
|
|
55
|
+
* it: the builder looked at those two keys, concluded the argument was already
|
|
56
|
+
* supplied, and left the definition in place as data. `required` is a schema
|
|
57
|
+
* key; nothing ever reads it back off a stored value.
|
|
58
|
+
*
|
|
59
|
+
* Asking for the `value` instead makes the question the one that was always
|
|
60
|
+
* meant: has the author put something here?
|
|
61
|
+
*
|
|
62
|
+
* @param arg one entry of an expression's `args`
|
|
63
|
+
*/
|
|
64
|
+
var isExpressionArgumentMissing = function (arg) {
|
|
65
|
+
if (arg === null) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (arg === undefined) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (typeof arg !== 'object') {
|
|
72
|
+
// a raw scalar argument — `0`, `false` and `''` are values too
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return arg.value === undefined;
|
|
76
|
+
};
|
|
77
|
+
exports.isExpressionArgumentMissing = isExpressionArgumentMissing;
|
|
78
|
+
/**
|
|
79
|
+
* The shape the builder stores an argument in: `{type, value}`.
|
|
80
|
+
*
|
|
81
|
+
* A parse result carries its arguments RAW — `args: [null]`, `args: [3]` —
|
|
82
|
+
* because that is what the grammar produced. The builder's editors read
|
|
83
|
+
* `arg.value`, so a raw argument has to be widened before it is stored, and
|
|
84
|
+
* widening `null` is the whole point: dropped instead, the author's null
|
|
85
|
+
* becomes an argument with no `value` key at all, which every later reader
|
|
86
|
+
* treats as an empty field.
|
|
87
|
+
*
|
|
88
|
+
* An argument that is already an envelope is returned untouched.
|
|
89
|
+
*
|
|
90
|
+
* @param arg one entry of an expression's `args`
|
|
91
|
+
* @param uiType the type the catalogue declares for that position
|
|
92
|
+
*/
|
|
93
|
+
var asExpressionArgumentEnvelope = function (arg, uiType) {
|
|
94
|
+
if (arg !== null && (arg === undefined || typeof arg === 'object')) {
|
|
95
|
+
return arg;
|
|
96
|
+
}
|
|
97
|
+
return __assign({ value: arg }, (uiType ? { type: uiType } : {}));
|
|
98
|
+
};
|
|
99
|
+
exports.asExpressionArgumentEnvelope = asExpressionArgumentEnvelope;
|
|
100
|
+
/**
|
|
101
|
+
* Does this value still look like an expression AST?
|
|
102
|
+
*
|
|
103
|
+
* `{exp, args}` is the shape the builder and `dpql/parse` both produce. The
|
|
104
|
+
* check is structural on purpose: the flag that marks an option as holding an
|
|
105
|
+
* expression describes its VALUE, so the value is what should decide whether
|
|
106
|
+
* the flag survives a change that said nothing about it.
|
|
107
|
+
*/
|
|
108
|
+
var looksLikeExpressionAst = function (value) {
|
|
109
|
+
return !!value &&
|
|
110
|
+
typeof value === 'object' &&
|
|
111
|
+
!Array.isArray(value) &&
|
|
112
|
+
typeof value.exp === 'string';
|
|
113
|
+
};
|
|
114
|
+
exports.looksLikeExpressionAst = looksLikeExpressionAst;
|
|
115
|
+
/**
|
|
116
|
+
* Whether an option should still be marked as holding an expression.
|
|
117
|
+
*
|
|
118
|
+
* The form engine used to delete the flag on ANY change that did not re-assert
|
|
119
|
+
* it, and most changes do not: an editor re-mounting, a revert, a validation
|
|
120
|
+
* pass. The value stayed the AST while the flag went, so the option degraded
|
|
121
|
+
* into a plain hash — which is how an assertion's Expected Value came back
|
|
122
|
+
* from a saved draft as a two-field object showing `exp` and `args`, and why
|
|
123
|
+
* `encodeTestValue` then stored it with `source: "literal"`.
|
|
124
|
+
*
|
|
125
|
+
* @param isFunction what the caller said: `true` sets the flag, `false` clears
|
|
126
|
+
* it deliberately (choosing a concrete type does this), `undefined` is no
|
|
127
|
+
* opinion at all
|
|
128
|
+
* @param value the option's new value
|
|
129
|
+
* @param wasExpression whether the option was marked before this change
|
|
130
|
+
*/
|
|
131
|
+
var shouldMarkAsExpression = function (isFunction, value, wasExpression) {
|
|
132
|
+
if (isFunction === true) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (isFunction === false) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
// No opinion: the flag belongs to the value, so it survives exactly as long
|
|
139
|
+
// as the value is still an expression.
|
|
140
|
+
return !!wasExpression && (0, exports.looksLikeExpressionAst)(value);
|
|
141
|
+
};
|
|
142
|
+
exports.shouldMarkAsExpression = shouldMarkAsExpression;
|
|
143
|
+
/**
|
|
144
|
+
* Fill in an expression's missing arguments, leaving the supplied ones alone.
|
|
145
|
+
*
|
|
146
|
+
* Extracted from the builder so the decision it makes can be tested directly:
|
|
147
|
+
* a component test of the same behaviour passed just as happily with the defect
|
|
148
|
+
* in place, because the builder normalises on an interaction the harness never
|
|
149
|
+
* performed. A test that cannot fail is worse than none.
|
|
150
|
+
*
|
|
151
|
+
* @param expressions the served expression catalogue
|
|
152
|
+
* @param expression the chosen expression's `name`
|
|
153
|
+
* @param args the arguments so far — raw from a parse, or envelopes from the
|
|
154
|
+
* builder's own editors
|
|
155
|
+
*/
|
|
156
|
+
var addMissingExpressionArgs = function (expressions, expression, args) {
|
|
157
|
+
var _a;
|
|
158
|
+
if (args === void 0) { args = []; }
|
|
159
|
+
var newArgs = __spreadArray([], args, true);
|
|
160
|
+
var selected = expressions === null || expressions === void 0 ? void 0 : expressions.find(function (exp) { return (exp === null || exp === void 0 ? void 0 : exp.name) === expression; });
|
|
161
|
+
if (!selected) {
|
|
162
|
+
return newArgs;
|
|
163
|
+
}
|
|
164
|
+
if (selected.varargs) {
|
|
165
|
+
if (selected.subtype === 2) {
|
|
166
|
+
newArgs.push({ is_expression: true, value: { args: [] } });
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
newArgs.push.apply(newArgs, Array.from({ length: ((_a = selected.min_args) !== null && _a !== void 0 ? _a : 1) - 1 }, function () { return ({
|
|
170
|
+
type: selected.args[0].ui_type === 'richtext' || selected.args[0].ui_type === 'number'
|
|
171
|
+
? selected.args[0].ui_type
|
|
172
|
+
: undefined,
|
|
173
|
+
}); }));
|
|
174
|
+
}
|
|
175
|
+
return newArgs;
|
|
176
|
+
}
|
|
177
|
+
selected.args.forEach(function (arg, index) {
|
|
178
|
+
/* A RAW argument, as `dpql/parse` produces it — `args: [null]`, `args: [3]`
|
|
179
|
+
— is widened into the `{type, value}` envelope the editors read. Widening
|
|
180
|
+
the null is the point: dropped instead, the author's `null` became an
|
|
181
|
+
argument with no `value` key, and the branch below then filled the gap
|
|
182
|
+
from the catalogue's DECLARATION, which is how a saved draft came back
|
|
183
|
+
holding `{type: "any", required: true}` where its value belonged. */
|
|
184
|
+
newArgs[index] = (0, exports.asExpressionArgumentEnvelope)(newArgs[index], arg.ui_type);
|
|
185
|
+
/* "Missing" already means "carries no value", so an argument waiting for
|
|
186
|
+
its catalogue default is simply a missing one — it needs no separate
|
|
187
|
+
test. */
|
|
188
|
+
if (!(0, exports.isExpressionArgumentMissing)(newArgs[index])) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
newArgs[index] =
|
|
192
|
+
arg.default_value ?
|
|
193
|
+
{ value: arg.default_value, type: arg.ui_type }
|
|
194
|
+
: {
|
|
195
|
+
type: arg.ui_type === 'richtext' || arg.ui_type === 'number' || arg.ui_type === 'bool' ?
|
|
196
|
+
arg.ui_type
|
|
197
|
+
: undefined,
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
return newArgs;
|
|
201
|
+
};
|
|
202
|
+
exports.addMissingExpressionArgs = addMissingExpressionArgs;
|
|
203
|
+
//# sourceMappingURL=argumentPresence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentPresence.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/argumentPresence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,
|
|
1
|
+
{"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,4CA4HtC,CAAC"}
|
|
@@ -34,9 +34,14 @@ var ExpressionBuilderArgumentLabel = function (_a) {
|
|
|
34
34
|
types.getExactMatches(schema.ui_type).includes('any') ||
|
|
35
35
|
type === 'any';
|
|
36
36
|
var acceptedTypes = (0, lodash_1.uniq)(__spreadArray(__spreadArray([], types.getExactMatches(schema.ui_type), true), types.getAcceptedTypes(schema.ui_type), true));
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
/* `arg` is optional — an operand the author has not filled in yet has no
|
|
38
|
+
entry at all, and a literal carried straight from a parse can be the null
|
|
39
|
+
literal itself. Both were dereferenced unguarded here, which took the whole
|
|
40
|
+
expression editor down to its error boundary rather than drawing an empty
|
|
41
|
+
argument. */
|
|
42
|
+
var _c = (arg === null || arg === void 0 ? void 0 : arg.is_expression) ?
|
|
43
|
+
(0, validations_1.validateFieldWithResult)('expression', arg, { expressions: expressions })
|
|
44
|
+
: (0, validations_1.validateFieldWithResult)(argumentType, arg === null || arg === void 0 ? void 0 : arg.value, schema, !schema.required), isValid = _c.isValid, reason = _c.reason;
|
|
40
45
|
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'tiny', effect: {
|
|
41
46
|
uppercase: true,
|
|
42
47
|
spaced: 1,
|
|
@@ -52,7 +57,7 @@ var ExpressionBuilderArgumentLabel = function (_a) {
|
|
|
52
57
|
italic: true,
|
|
53
58
|
weight: 'light',
|
|
54
59
|
opacity: 0.5,
|
|
55
|
-
}, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || (arg.is_expression && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
|
|
60
|
+
}, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || ((arg === null || arg === void 0 ? void 0 : arg.is_expression) && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
|
|
56
61
|
types.getTypeDisplayName(argumentType) !== types.getTypeDisplayName(schema.ui_type) &&
|
|
57
62
|
!matchesTypeExactly ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'CheckLine', color: 'pending', size: '10px', margin: 'both', tooltip: 'Type matches, but a transformation may be applied' })) : null, (0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpan, { effect: {
|
|
58
63
|
italic: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA2E;AAC3E,iCAA8B;AAC9B,+DAAuF;AACvF,+DAA0E;AAC1E,iEAAgE;AAWzD,IAAM,8BAA8B,GAAG,UAAC,EAMR;;QALrC,KAAK,WAAA,EACL,GAAG,SAAA,EACH,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,IAAI,UAAA;IAEJ,IAAM,KAAK,GAAG,IAAA,6BAAa,GAAE,CAAC;IAE9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CACL,uBAAC,gBAAO,IACN,IAAI,EAAC,MAAM,EACX,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,GAAG;aACb,YAEA,KAAK,GACE,CACX,CAAC;IACJ,CAAC;IAED,IAAM,WAAW,GAAG,IAAA,iCAAmB,EAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAElE,IAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAM,kBAAkB,GACtB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5D,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrD,IAAI,KAAK,KAAK,CAAC;IACjB,IAAM,aAAa,GAAG,IAAA,aAAI,kCACrB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SACrC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IReqorePanelAction } from '@qoretechnologies/reqore/dist/components/Panel';
|
|
2
2
|
import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
|
|
3
3
|
import { TQorusType } from '@qoretechnologies/ts-toolkit';
|
|
4
|
+
import React from 'react';
|
|
4
5
|
import { IExpression, IExpressionSchema, TExpressionReorder } from '../types';
|
|
5
6
|
export interface IExpressionBuilderProps {
|
|
6
7
|
localTemplates?: IReqoreFormTemplates;
|
|
@@ -21,6 +22,18 @@ export interface IExpressionBuilderProps {
|
|
|
21
22
|
expressions?: IExpressionSchema[];
|
|
22
23
|
expressionsUrl?: string;
|
|
23
24
|
serverHandled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* SEAM (reqraft): the host's per-`ui_type` editors, forwarded to the operand
|
|
27
|
+
* fields below.
|
|
28
|
+
*
|
|
29
|
+
* Without them an operand whose type is one of the CONSUMER's own ui_types
|
|
30
|
+
* falls through `AutoFormField`'s switch to the literal "Unknown type!" tag.
|
|
31
|
+
* That is what an assertion's `Value` did the moment it was turned into an
|
|
32
|
+
* expression: the field is `test-reference`, an IDE ui_type whose editor the
|
|
33
|
+
* IDE registers through `componentOverrides`, and the builder rendered its
|
|
34
|
+
* operands without them.
|
|
35
|
+
*/
|
|
36
|
+
componentOverrides?: Record<string, React.FC<any>>;
|
|
24
37
|
size?: string;
|
|
25
38
|
/**
|
|
26
39
|
* SEAM (reqraft): extra hover actions prepended to each expression card —
|
|
@@ -40,6 +53,6 @@ export interface IExpressionBuilderProps {
|
|
|
40
53
|
}
|
|
41
54
|
export interface IExpressionProps extends IExpressionBuilderProps {
|
|
42
55
|
}
|
|
43
|
-
export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
-
export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, componentOverrides, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, componentOverrides, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAiD,MAAM,OAAO,CAAC;AAiBtE,OAAO,EAEL,WAAW,EACX,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAclB,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,6FAA6F;IAC7F,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EACT,kBAAkB,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE;QACT,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QACvC,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,KAAK,kBAAkB,EAAE,CAAC,CAAC;CACjC;AAiBD,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;CAAG;AAEpE,eAAO,MAAM,UAAU,4LAkBpB,gBAAgB,4CA+gClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+MAmB3B,uBAAuB,4CA4LzB,CAAC"}
|
|
@@ -70,6 +70,7 @@ var react_1 = __importStar(require("react"));
|
|
|
70
70
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
71
71
|
var common_1 = require("../../../../helpers/common");
|
|
72
72
|
var expressions_1 = require("../../../../helpers/expressions");
|
|
73
|
+
var argumentPresence_1 = require("../argumentPresence");
|
|
73
74
|
var templates_1 = require("../../../../helpers/templates");
|
|
74
75
|
var validations_1 = require("../../../../helpers/validations");
|
|
75
76
|
var useQorusTypes_1 = require("../../../../hooks/useQorusTypes");
|
|
@@ -97,7 +98,7 @@ var noopUseRegisterHintView = function () {
|
|
|
97
98
|
var StyledExpressionItemLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"], ["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"])), function () { return (0, polished_1.rgba)('#fff', 0.3); });
|
|
98
99
|
var Expression = function (_a) {
|
|
99
100
|
var _b, _c, _d, _f, _g, _h, _j, _k, _l;
|
|
100
|
-
var localTemplates = _a.localTemplates, _m = _a.value, value = _m === void 0 ? types_1.ExpressionDefaultValue : _m, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions"]);
|
|
101
|
+
var localTemplates = _a.localTemplates, _m = _a.value, value = _m === void 0 ? types_1.ExpressionDefaultValue : _m, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions", "componentOverrides"]);
|
|
101
102
|
var types = (0, useQorusTypes_1.useQorusTypes)();
|
|
102
103
|
var _o = (0, react_1.useState)(false), showSummary = _o[0], setShowSummary = _o[1];
|
|
103
104
|
var _p = (0, react_1.useState)(undefined), confirmDialogData = _p[0], setConfirmDialogData = _p[1];
|
|
@@ -170,53 +171,8 @@ var Expression = function (_a) {
|
|
|
170
171
|
}, path);
|
|
171
172
|
}, [onValueChange, JSON.stringify(value), path]);
|
|
172
173
|
var addMissingArgs = (0, react_1.useCallback)(function (expression, args) {
|
|
173
|
-
var _a;
|
|
174
174
|
if (args === void 0) { args = []; }
|
|
175
|
-
|
|
176
|
-
// Check if this expression has variable arguments
|
|
177
|
-
var selectedExpression = (_a = expressions.value) === null || _a === void 0 ? void 0 : _a.find(function (exp) { return exp.name === expression; });
|
|
178
|
-
if (selectedExpression.varargs) {
|
|
179
|
-
if (selectedExpression.subtype === 2) {
|
|
180
|
-
newArgs.push({
|
|
181
|
-
is_expression: true,
|
|
182
|
-
value: {
|
|
183
|
-
args: [],
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
// Add the number of arguments equal to min_args - 1
|
|
189
|
-
newArgs.push.apply(newArgs, Array.from({ length: selectedExpression.min_args - 1 }, function () { return ({
|
|
190
|
-
type: selectedExpression.args[0].ui_type === 'richtext' ||
|
|
191
|
-
selectedExpression.args[0].ui_type === 'number'
|
|
192
|
-
? selectedExpression.args[0].ui_type
|
|
193
|
-
: undefined,
|
|
194
|
-
}); }));
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
// Check if any of the arguments have a default value
|
|
199
|
-
selectedExpression.args.forEach(function (arg, index) {
|
|
200
|
-
if (newArgs[index] === undefined ||
|
|
201
|
-
(0, lodash_1.size)(newArgs[index]) === 0 ||
|
|
202
|
-
(arg.default_value && 'value' in newArgs[index] === false)) {
|
|
203
|
-
if (arg.default_value) {
|
|
204
|
-
newArgs[index] = {
|
|
205
|
-
value: arg.default_value,
|
|
206
|
-
type: arg.ui_type,
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
newArgs[index] = {
|
|
211
|
-
type: arg.ui_type === 'richtext' || arg.ui_type === 'number' || arg.ui_type === 'bool'
|
|
212
|
-
? arg.ui_type
|
|
213
|
-
: undefined,
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
return newArgs;
|
|
175
|
+
return (0, argumentPresence_1.addMissingExpressionArgs)(expressions.value, expression, args);
|
|
220
176
|
}, [JSON.stringify(expressions.value)]);
|
|
221
177
|
var updateExp = (0, react_1.useCallback)(function (val) {
|
|
222
178
|
var _a;
|
|
@@ -320,7 +276,7 @@ var Expression = function (_a) {
|
|
|
320
276
|
var updateMultipleArgs = (0, react_1.useCallback)(function (args) {
|
|
321
277
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: addMissingArgs(value.value.exp, args) }) }), path);
|
|
322
278
|
}, [onValueChange, JSON.stringify(value), path, addMissingArgs]);
|
|
323
|
-
var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction
|
|
279
|
+
var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction) {
|
|
324
280
|
var _a;
|
|
325
281
|
if (index === void 0) { index = 0; }
|
|
326
282
|
var args = (0, lodash_1.clone)(value.value.args);
|
|
@@ -328,7 +284,14 @@ var Expression = function (_a) {
|
|
|
328
284
|
if (newVal === null || newVal === void 0 ? void 0 : newVal.exp) {
|
|
329
285
|
newVal.args = addMissingArgs(newVal.exp, newVal.args);
|
|
330
286
|
}
|
|
331
|
-
|
|
287
|
+
/* `required` is NOT written here. It is a schema key — it describes the
|
|
288
|
+
catalogue's declaration of the argument, not the author's value, and
|
|
289
|
+
nothing reads it back off a stored argument (validation takes it from
|
|
290
|
+
the schema). Persisting it made a cleared argument indistinguishable
|
|
291
|
+
from real data: the value dropped out as `undefined`, `required: true`
|
|
292
|
+
stayed, and what was saved to the draft was `{type, required}` — an
|
|
293
|
+
argument DEFINITION sitting where its value should be. */
|
|
294
|
+
args[index] = __assign(__assign({}, args[index]), { value: newVal, type: !isFunction ? type || ((_a = args[index]) === null || _a === void 0 ? void 0 : _a.type) : undefined, is_expression: isFunction });
|
|
332
295
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: args }) }), path);
|
|
333
296
|
}, [addMissingArgs, onValueChange, JSON.stringify(value), path]);
|
|
334
297
|
var handleRemoveClick = (0, react_1.useCallback)(function () {
|
|
@@ -437,11 +400,10 @@ var Expression = function (_a) {
|
|
|
437
400
|
updateType(value === 'context' ? undefined : value, true);
|
|
438
401
|
}, [updateType]);
|
|
439
402
|
var handleFirstParamChange = (0, react_1.useCallback)(function (_name, value, type, isFunction) {
|
|
440
|
-
var _a, _b;
|
|
441
403
|
if (isFunction || (type !== 'any' && type !== 'auto')) {
|
|
442
|
-
updateArg(value, 0, isFunction ? undefined : type, isFunction
|
|
404
|
+
updateArg(value, 0, isFunction ? undefined : type, isFunction);
|
|
443
405
|
}
|
|
444
|
-
}, [updateArg
|
|
406
|
+
}, [updateArg]);
|
|
445
407
|
var buildCustomTemplateItems = (0, react_1.useCallback)(function (arg, onClick) {
|
|
446
408
|
var _a, _b;
|
|
447
409
|
// If the argument has allowed values or element allowed values, do not allow type changing
|
|
@@ -648,7 +610,7 @@ var Expression = function (_a) {
|
|
|
648
610
|
setConfirmDialogData(undefined);
|
|
649
611
|
},
|
|
650
612
|
},
|
|
651
|
-
], children: confirmDialogData.children })), showSummary && (0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value }), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { fluid: false, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField,
|
|
613
|
+
], children: confirmDialogData.children })), showSummary && (0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value }), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { fluid: false, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
|
|
652
614
|
// SEAM (reqraft): an operand that becomes an expression mounts
|
|
653
615
|
// its own builder through this TemplateField — hand the host's
|
|
654
616
|
// actions on, or nesting silently drops them (the group
|
|
@@ -688,7 +650,7 @@ var Expression = function (_a) {
|
|
|
688
650
|
updateArg(undefined, index + 1, value === 'context' ? undefined : value);
|
|
689
651
|
}, onRemoveArgClick: function () {
|
|
690
652
|
removeVarArg(index + 1);
|
|
691
|
-
}, hasMultipleArgs: selectedExpression.varargs && (0, lodash_1.size)(rest) > 1, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField,
|
|
653
|
+
}, hasMultipleArgs: selectedExpression.varargs && (0, lodash_1.size)(rest) > 1, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
|
|
692
654
|
// SEAM (reqraft): same as the first operand above.
|
|
693
655
|
extraActions: extraActions, noSoft: true, level: level + 1, allowFunctions: !(arg === null || arg === void 0 ? void 0 : arg.allowed_values) && !(arg === null || arg === void 0 ? void 0 : arg.element_allowed_values), isFunction: (_a = rest[index]) === null || _a === void 0 ? void 0 : _a.is_expression,
|
|
694
656
|
// An empty argument has no value to take a type from; fall
|
|
@@ -705,7 +667,7 @@ var Expression = function (_a) {
|
|
|
705
667
|
!!arg.element_allowed_values ||
|
|
706
668
|
!!((_h = rest[index]) === null || _h === void 0 ? void 0 : _h.type) ||
|
|
707
669
|
!!arg.default_value, onChange: (function (_name, value, type, isFunction) {
|
|
708
|
-
updateArg(value, index + 1, isFunction ? undefined : type, isFunction
|
|
670
|
+
updateArg(value, index + 1, isFunction ? undefined : type, isFunction);
|
|
709
671
|
}), fluid: false, fixed: true, disableManagement: true, disabled: readOnly, menuItems: buildCustomTemplateItems(arg, function (type, removeTemplate) {
|
|
710
672
|
removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
|
|
711
673
|
updateArg(undefined, index + 1, type.name === 'context' ? undefined : type.name);
|
|
@@ -716,7 +678,7 @@ var Expression = function (_a) {
|
|
|
716
678
|
exports.Expression = Expression;
|
|
717
679
|
var ExpressionBuilder = function (_a) {
|
|
718
680
|
var _b, _c, _d;
|
|
719
|
-
var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, reorder = _a.reorder;
|
|
681
|
+
var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
|
|
720
682
|
var templates = (0, useTemplates_1.useTemplates)(!isChild, localTemplates);
|
|
721
683
|
var theme = (0, reqore_1.useReqoreTheme)();
|
|
722
684
|
var _j = (0, react_1.useState)(false), showSummary = _j[0], setShowSummary = _j[1];
|
|
@@ -799,7 +761,7 @@ var ExpressionBuilder = function (_a) {
|
|
|
799
761
|
marginLeft: 10,
|
|
800
762
|
} }))] }, index)); })] }) }) }));
|
|
801
763
|
}
|
|
802
|
-
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }) }));
|
|
764
|
+
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, componentOverrides: componentOverrides, reorder: reorder }) }));
|
|
803
765
|
};
|
|
804
766
|
exports.ExpressionBuilder = ExpressionBuilder;
|
|
805
767
|
var templateObject_1;
|