@qoretechnologies/reqraft 0.10.51 → 0.10.52
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/dist/components/form/expressions/ExpressionField.d.ts +4 -2
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +2 -2
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts +13 -2
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +61 -3
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +4 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +96 -15
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/moveToPositionStrip.d.ts +19 -0
- package/dist/components/form/expressions/builder/moveToPositionStrip.d.ts.map +1 -0
- package/dist/components/form/expressions/builder/moveToPositionStrip.js +62 -0
- package/dist/components/form/expressions/builder/moveToPositionStrip.js.map +1 -0
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +18 -0
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/types.d.ts +8 -0
- package/dist/components/form/expressions/types.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +3 -2
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/MigrationsTab.js +3 -3
- package/dist/components/form/fields/schema-definition/MigrationsTab.js.map +1 -1
- package/dist/components/form/fields/schema-definition/helpers.d.ts +0 -2
- package/dist/components/form/fields/schema-definition/helpers.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/helpers.js +1 -20
- package/dist/components/form/fields/schema-definition/helpers.js.map +1 -1
- package/dist/components/form/fields/template/TemplateField.d.ts +33 -4
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +57 -7
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/helpers/common.d.ts +4 -0
- package/dist/helpers/common.d.ts.map +1 -1
- package/dist/helpers/common.js +30 -1
- package/dist/helpers/common.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/expressions/ExpressionField.tsx +5 -1
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +386 -0
- package/src/components/form/expressions/builder/argumentWrapper.tsx +137 -11
- package/src/components/form/expressions/builder/index.tsx +153 -5
- package/src/components/form/expressions/builder/moveToPositionStrip.tsx +156 -0
- package/src/components/form/expressions/mockExpressions.ts +18 -0
- package/src/components/form/expressions/types.ts +10 -0
- package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +1 -1
- package/src/components/form/fields/schema-definition/MigrationsTab.tsx +1 -1
- package/src/components/form/fields/schema-definition/helpers.ts +0 -9
- package/src/components/form/fields/template/TemplateField.tsx +112 -4
- package/src/helpers/common.ts +31 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
|
|
3
3
|
import { IExpressionBuilderProps } from './builder';
|
|
4
|
-
import { IExpression, IExpressionSchema } from './types';
|
|
4
|
+
import { IExpression, IExpressionSchema, TExpressionReorder } from './types';
|
|
5
5
|
export type TExpressionMode = 'visual' | 'text';
|
|
6
6
|
export interface IExpressionFieldProps {
|
|
7
7
|
/** The expression value: `{ is_expression:true, value:{ exp, args } }`. */
|
|
@@ -39,7 +39,9 @@ export interface IExpressionFieldProps {
|
|
|
39
39
|
/** Initial editor mode (default `visual`). */
|
|
40
40
|
defaultMode?: TExpressionMode;
|
|
41
41
|
size?: string;
|
|
42
|
+
/** Forwarded to the builder — operand reordering for varargs expressions. */
|
|
43
|
+
reorder?: TExpressionReorder;
|
|
42
44
|
}
|
|
43
|
-
export declare const ExpressionField: import("react").MemoExoticComponent<({ value, onChange, type, returnType, readOnly, expressions: expressionsOverride, expressionsUrl, localTemplates, serverHandled, extraActions, provider, recordType, defaultMode, size, }: IExpressionFieldProps) => import("react/jsx-runtime").JSX.Element>;
|
|
45
|
+
export declare const ExpressionField: import("react").MemoExoticComponent<({ value, onChange, type, returnType, readOnly, expressions: expressionsOverride, expressionsUrl, localTemplates, serverHandled, extraActions, provider, recordType, defaultMode, size, reorder, }: IExpressionFieldProps) => import("react/jsx-runtime").JSX.Element>;
|
|
44
46
|
export default ExpressionField;
|
|
45
47
|
//# sourceMappingURL=ExpressionField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionField.d.ts","sourceRoot":"","sources":["../../../../src/components/form/expressions/ExpressionField.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAqB,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpressionField.d.ts","sourceRoot":"","sources":["../../../../src/components/form/expressions/ExpressionField.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAqB,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAoB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI/F,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAShD,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACvD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,0OAiBvB,qBAAqB,6CAgMzB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -58,7 +58,7 @@ var SEED_MAX_TRIES = 20;
|
|
|
58
58
|
var noop = function () { return undefined; };
|
|
59
59
|
exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
60
60
|
var _b;
|
|
61
|
-
var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, extraActions = _a.extraActions, provider = _a.provider, recordType = _a.recordType, _c = _a.defaultMode, defaultMode = _c === void 0 ? 'visual' : _c, size = _a.size;
|
|
61
|
+
var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, extraActions = _a.extraActions, provider = _a.provider, recordType = _a.recordType, _c = _a.defaultMode, defaultMode = _c === void 0 ? 'visual' : _c, size = _a.size, reorder = _a.reorder;
|
|
62
62
|
var expressions = (0, useExpressions_1.useExpressions)({
|
|
63
63
|
override: expressionsOverride,
|
|
64
64
|
expressionsUrl: expressionsUrl,
|
|
@@ -201,7 +201,7 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
201
201
|
// Default to `auto` when the field declares no return type, so a
|
|
202
202
|
// valid expression renders `muted` rather than `danger` (the
|
|
203
203
|
// builder's intent requires a truthy returnType).
|
|
204
|
-
returnType: ((_b = returnType !== null && returnType !== void 0 ? returnType : type) !== null && _b !== void 0 ? _b : 'auto'), readOnly: readOnly, localTemplates: localTemplates !== null && localTemplates !== void 0 ? localTemplates : { items: [] }, serverHandled: serverHandled, extraActions: extraActions, size: size }))] }));
|
|
204
|
+
returnType: ((_b = returnType !== null && returnType !== void 0 ? returnType : type) !== null && _b !== void 0 ? _b : 'auto'), readOnly: readOnly, localTemplates: localTemplates !== null && localTemplates !== void 0 ? localTemplates : { items: [] }, serverHandled: serverHandled, extraActions: extraActions, size: size, reorder: reorder }))] }));
|
|
205
205
|
});
|
|
206
206
|
exports.default = exports.ExpressionField;
|
|
207
207
|
//# sourceMappingURL=ExpressionField.js.map
|
|
@@ -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,2EAA2E;AAC3E,0DAA0D;AAC1D,mDAIkC;AAElC,+BAAgF;AAChF,+CAA8D;AAC9D,qCAAuE;AAEvE,mDAAkD;AAClD,6DAA4D;AAI5D,IAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,6EAA6E;AAC7E,IAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,IAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,IAAM,IAAI,GAAG,cAAY,OAAA,SAAS,EAAT,CAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpressionField.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/ExpressionField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IExpression, IExpressionSchema, IExpressionSchemaArg } from '../types';
|
|
2
|
+
import { IExpression, IExpressionSchema, IExpressionSchemaArg, TExpressionReorderSurface } from '../types';
|
|
3
3
|
export interface IExpressionBuilderArgumentWrapperProps {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
schema?: IExpressionSchemaArg;
|
|
@@ -10,6 +10,17 @@ export interface IExpressionBuilderArgumentWrapperProps {
|
|
|
10
10
|
expressions: IExpressionSchema[];
|
|
11
11
|
label?: string;
|
|
12
12
|
readOnly?: boolean;
|
|
13
|
+
/** Reorder surfaces to render; undefined = this operand cannot be moved. */
|
|
14
|
+
reorder?: TExpressionReorderSurface[];
|
|
15
|
+
argIndex?: number;
|
|
16
|
+
argCount?: number;
|
|
17
|
+
/** Another operand is being dragged over this one. */
|
|
18
|
+
dragOver?: boolean;
|
|
19
|
+
onMoveArg?: (from: number, to: number) => void;
|
|
20
|
+
onArgDragStart?: (index: number) => void;
|
|
21
|
+
onArgDragOver?: (index: number) => void;
|
|
22
|
+
onArgDrop?: (index: number) => void;
|
|
23
|
+
onArgDragEnd?: () => void;
|
|
13
24
|
}
|
|
14
|
-
export declare const ExpressionBuilderArgumentWrapper: import("react").MemoExoticComponent<({ children, schema, arg, onRemoveArgClick, hasMultipleArgs, expressions, label, readOnly, }: IExpressionBuilderArgumentWrapperProps) => import("react/jsx-runtime").JSX.Element>;
|
|
25
|
+
export declare const ExpressionBuilderArgumentWrapper: import("react").MemoExoticComponent<({ children, schema, arg, onRemoveArgClick, hasMultipleArgs, expressions, label, readOnly, reorder, argIndex, argCount, dragOver, onMoveArg, onArgDragStart, onArgDragOver, onArgDrop, onArgDragEnd, }: IExpressionBuilderArgumentWrapperProps) => import("react/jsx-runtime").JSX.Element>;
|
|
15
26
|
//# sourceMappingURL=argumentWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentWrapper.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"argumentWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentWrapper.tsx"],"names":[],"mappings":";AASA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,sCAAsC;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,gCAAgC,8OAmBxC,sCAAsC,6CAyJ1C,CAAC"}
|
|
@@ -1,16 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.ExpressionBuilderArgumentWrapper = void 0;
|
|
4
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
16
|
var reqore_1 = require("@qoretechnologies/reqore");
|
|
6
17
|
var react_1 = require("react");
|
|
18
|
+
var common_1 = require("../../../../helpers/common");
|
|
7
19
|
var argumentLabel_1 = require("./argumentLabel");
|
|
8
20
|
exports.ExpressionBuilderArgumentWrapper = (0, react_1.memo)(function (_a) {
|
|
9
|
-
var children = _a.children, schema = _a.schema, arg = _a.arg, onRemoveArgClick = _a.onRemoveArgClick, hasMultipleArgs = _a.hasMultipleArgs, expressions = _a.expressions, label = _a.label, readOnly = _a.readOnly;
|
|
21
|
+
var children = _a.children, schema = _a.schema, arg = _a.arg, onRemoveArgClick = _a.onRemoveArgClick, hasMultipleArgs = _a.hasMultipleArgs, expressions = _a.expressions, label = _a.label, readOnly = _a.readOnly, reorder = _a.reorder, _b = _a.argIndex, argIndex = _b === void 0 ? 0 : _b, _c = _a.argCount, argCount = _c === void 0 ? 0 : _c, dragOver = _a.dragOver, onMoveArg = _a.onMoveArg, onArgDragStart = _a.onArgDragStart, onArgDragOver = _a.onArgDragOver, onArgDrop = _a.onArgDrop, onArgDragEnd = _a.onArgDragEnd;
|
|
22
|
+
var theme = (0, reqore_1.useReqoreTheme)();
|
|
10
23
|
var type = (arg === null || arg === void 0 ? void 0 : arg.type) || (schema === null || schema === void 0 ? void 0 : schema.ui_type) || 'context';
|
|
24
|
+
var draggable = !!(reorder === null || reorder === void 0 ? void 0 : reorder.includes('dragHandle'));
|
|
25
|
+
// Only the grip is `draggable`, so a drag never starts from inside the
|
|
26
|
+
// field and text selection there is untouched; the drag image is the
|
|
27
|
+
// whole operand. Drag events stop here: an operand of a nested builder
|
|
28
|
+
// must not light up (or drop into) the parent builder's slots.
|
|
29
|
+
var dragProps = draggable
|
|
30
|
+
? {
|
|
31
|
+
onDragOver: function (event) {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
onArgDragOver === null || onArgDragOver === void 0 ? void 0 : onArgDragOver(argIndex);
|
|
35
|
+
},
|
|
36
|
+
onDrop: function (event) {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
event.stopPropagation();
|
|
39
|
+
onArgDrop === null || onArgDrop === void 0 ? void 0 : onArgDrop(argIndex);
|
|
40
|
+
},
|
|
41
|
+
onDragEnd: function (event) {
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
onArgDragEnd === null || onArgDragEnd === void 0 ? void 0 : onArgDragEnd();
|
|
44
|
+
},
|
|
45
|
+
style: dragOver
|
|
46
|
+
? { outline: "1px dashed ".concat(theme.intents.info), outlineOffset: 4, borderRadius: 4 }
|
|
47
|
+
: undefined,
|
|
48
|
+
}
|
|
49
|
+
: {};
|
|
50
|
+
// A literal fragment, so the control group still clones its size onto
|
|
51
|
+
// the grip and the dropdown.
|
|
52
|
+
var renderReorderControls = function () { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [draggable && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { compact: true, fixed: true, minimal: true, flat: true, transparent: true, className: 'expression-arg-drag-handle', icon: 'Draggable', tooltip: 'Drag to reorder',
|
|
53
|
+
// As tight as the field's `⋮` button next to it.
|
|
54
|
+
style: { cursor: 'grab', paddingLeft: 0, paddingRight: 0, minWidth: '10px' }, draggable: true, onDragStart: function (event) {
|
|
55
|
+
event.stopPropagation();
|
|
56
|
+
// Synthetic drag events (play tests) carry no dataTransfer.
|
|
57
|
+
var operand = event.currentTarget.closest('.expression-arg');
|
|
58
|
+
if (event.dataTransfer && operand) {
|
|
59
|
+
event.dataTransfer.effectAllowed = 'move';
|
|
60
|
+
event.dataTransfer.setDragImage(operand, 0, 0);
|
|
61
|
+
}
|
|
62
|
+
onArgDragStart === null || onArgDragStart === void 0 ? void 0 : onArgDragStart(argIndex);
|
|
63
|
+
} })), (reorder === null || reorder === void 0 ? void 0 : reorder.includes('positionPicker')) && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { compact: true, fixed: true, minimal: true, flat: true, className: 'expression-arg-position', label: (0, common_1.ordinal)(argIndex + 1), tooltip: 'Position \u2014 pick a new one to move this argument', items: Array.from({ length: argCount }, function (_, target) { return ({
|
|
64
|
+
label: (0, common_1.ordinal)(target + 1),
|
|
65
|
+
selected: target === argIndex,
|
|
66
|
+
disabled: target === argIndex,
|
|
67
|
+
onClick: function () { return onMoveArg === null || onMoveArg === void 0 ? void 0 : onMoveArg(argIndex, target); },
|
|
68
|
+
}); }) }))] })); };
|
|
11
69
|
if (arg === null || arg === void 0 ? void 0 : arg.is_expression) {
|
|
12
|
-
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, gapSize: 'small', children: [(0, jsx_runtime_1.jsx)(argumentLabel_1.ExpressionBuilderArgumentLabel, { arg: arg, schema: schema, label: label || '', expressions: expressions, type: type }), (0, jsx_runtime_1.jsx)(reqore_1.ReqorePanel, { minimal: true, fluid: true, wrapperPadding: 'top', responsiveTitle: false, responsiveActions: false, size: 'small', flat: true, padded: false, transparent: true, children: children })] }));
|
|
70
|
+
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, __assign({ vertical: true, fluid: true, gapSize: 'small', className: 'expression-arg' }, dragProps, { children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { verticalAlign: 'center', gapSize: 'small', children: [(0, jsx_runtime_1.jsx)(argumentLabel_1.ExpressionBuilderArgumentLabel, { arg: arg, schema: schema, label: label || '', expressions: expressions, type: type }), reorder && renderReorderControls()] }), (0, jsx_runtime_1.jsx)(reqore_1.ReqorePanel, { minimal: true, fluid: true, wrapperPadding: 'top', responsiveTitle: false, responsiveActions: false, size: 'small', flat: true, padded: false, transparent: true, children: children })] })));
|
|
13
71
|
}
|
|
14
|
-
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, wrap: true, style: { flexShrink: 1 },
|
|
72
|
+
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, __assign({ vertical: true, wrap: true, size: 'small', className: 'expression-arg' }, dragProps, { style: __assign({ flexShrink: 1 }, dragProps.style), children: [(0, jsx_runtime_1.jsx)(argumentLabel_1.ExpressionBuilderArgumentLabel, { arg: arg, schema: schema, label: label, expressions: expressions }), (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { verticalAlign: 'flex-start', wrap: true, fluid: true, children: [reorder && renderReorderControls(), children, hasMultipleArgs && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { compact: true, intent: 'danger', minimal: true, fixed: true, className: 'expression-remove-arg', icon: 'DeleteBinLine', flat: true, transparent: true, tooltip: 'Remove argument', onClick: onRemoveArgClick, disabled: readOnly }))] })] })));
|
|
15
73
|
});
|
|
16
74
|
//# sourceMappingURL=argumentWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentWrapper.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentWrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"argumentWrapper.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +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 { IExpression, IExpressionSchema } from '../types';
|
|
4
|
+
import { IExpression, IExpressionSchema, TExpressionReorder } from '../types';
|
|
5
5
|
export interface IExpressionBuilderProps {
|
|
6
6
|
localTemplates?: IReqoreFormTemplates;
|
|
7
7
|
value?: IExpression;
|
|
@@ -14,6 +14,8 @@ export interface IExpressionBuilderProps {
|
|
|
14
14
|
group?: '&&' | '||';
|
|
15
15
|
onChange?: (value: IExpression, remove?: boolean) => void;
|
|
16
16
|
onValueChange?: (value: IExpression, path: string, remove?: boolean) => void;
|
|
17
|
+
/** Operand reordering for varargs expressions — see `TExpressionReorder`. Default `true`. */
|
|
18
|
+
reorder?: TExpressionReorder;
|
|
17
19
|
readOnly?: boolean;
|
|
18
20
|
id?: string;
|
|
19
21
|
expressions?: IExpressionSchema[];
|
|
@@ -39,5 +41,5 @@ export interface IExpressionBuilderProps {
|
|
|
39
41
|
export interface IExpressionProps extends IExpressionBuilderProps {
|
|
40
42
|
}
|
|
41
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;
|
|
42
|
-
export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, }: IExpressionBuilderProps) => 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;
|
|
43
45
|
//# 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;
|
|
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;AAmB1D,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,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,wKAiBpB,gBAAgB,4CA2kClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,2LAkB3B,uBAAuB,4CA2LzB,CAAC"}
|
|
@@ -68,6 +68,7 @@ var lodash_1 = require("lodash");
|
|
|
68
68
|
var polished_1 = require("polished");
|
|
69
69
|
var react_1 = __importStar(require("react"));
|
|
70
70
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
71
|
+
var common_1 = require("../../../../helpers/common");
|
|
71
72
|
var expressions_1 = require("../../../../helpers/expressions");
|
|
72
73
|
var templates_1 = require("../../../../helpers/templates");
|
|
73
74
|
var validations_1 = require("../../../../helpers/validations");
|
|
@@ -84,6 +85,7 @@ var argumentWrapper_1 = require("./argumentWrapper");
|
|
|
84
85
|
var confirmMismatchedTypesModal_1 = require("./confirmMismatchedTypesModal");
|
|
85
86
|
var confirmUnsupportedTypeModal_1 = require("./confirmUnsupportedTypeModal");
|
|
86
87
|
var item_1 = require("./item");
|
|
88
|
+
var moveToPositionStrip_1 = require("./moveToPositionStrip");
|
|
87
89
|
var renderTemplate_1 = require("./renderTemplate");
|
|
88
90
|
var noopUseRegisterHintView = function () {
|
|
89
91
|
var args = [];
|
|
@@ -94,13 +96,13 @@ var noopUseRegisterHintView = function () {
|
|
|
94
96
|
};
|
|
95
97
|
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); });
|
|
96
98
|
var Expression = function (_a) {
|
|
97
|
-
var _b, _c, _d, _f, _g, _h, _j, _k;
|
|
98
|
-
var localTemplates = _a.localTemplates,
|
|
99
|
+
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"]);
|
|
99
101
|
var types = (0, useQorusTypes_1.useQorusTypes)();
|
|
100
|
-
var
|
|
101
|
-
var
|
|
102
|
+
var _o = (0, react_1.useState)(false), showSummary = _o[0], setShowSummary = _o[1];
|
|
103
|
+
var _p = (0, react_1.useState)(undefined), confirmDialogData = _p[0], setConfirmDialogData = _p[1];
|
|
102
104
|
var doNotShowTypeConfirmation = (0, useStorage_1.useReqraftStorage)('doNotShowTypeExpressionConfirmation', false, true)[0];
|
|
103
|
-
var
|
|
105
|
+
var _q = ((_b = value.value) === null || _b === void 0 ? void 0 : _b.args) || [], firstArgument = _q[0], rest = _q.slice(1);
|
|
104
106
|
var _expressions = (0, useExpressions_1.useExpressions)({
|
|
105
107
|
allow: true,
|
|
106
108
|
expressionsUrl: expressionsUrl,
|
|
@@ -279,6 +281,42 @@ var Expression = function (_a) {
|
|
|
279
281
|
var args = value.value.args.filter(function (_, i) { return i !== index; });
|
|
280
282
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: args }) }), path);
|
|
281
283
|
}, [onValueChange, JSON.stringify(value), path]);
|
|
284
|
+
var reorderSurfaces = (0, react_1.useMemo)(function () {
|
|
285
|
+
var _a;
|
|
286
|
+
var reorder = (_a = props.reorder) !== null && _a !== void 0 ? _a : true;
|
|
287
|
+
if (reorder === false) {
|
|
288
|
+
return [];
|
|
289
|
+
}
|
|
290
|
+
return reorder === true ? ['dragHandle', 'overflowMenu'] : reorder;
|
|
291
|
+
}, [props.reorder]);
|
|
292
|
+
// Bumped on every move and folded into the operand keys: the operands are
|
|
293
|
+
// keyed by slot, and a slot's TemplateField keeps template / text-mode
|
|
294
|
+
// state that only resyncs one way — remounting hands every slot a field
|
|
295
|
+
// seeded from the operand that now lives there.
|
|
296
|
+
var _r = (0, react_1.useState)(0), argsGeneration = _r[0], setArgsGeneration = _r[1];
|
|
297
|
+
var dragArg = (0, react_1.useRef)(null);
|
|
298
|
+
var _s = (0, react_1.useState)(null), dragOverArg = _s[0], setDragOverArg = _s[1];
|
|
299
|
+
var moveVarArg = (0, react_1.useCallback)(function (from, to) {
|
|
300
|
+
setArgsGeneration(function (generation) { return generation + 1; });
|
|
301
|
+
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: (0, common_1.moveItem)(value.value.args, from, to) }) }), path);
|
|
302
|
+
}, [onValueChange, JSON.stringify(value), path]);
|
|
303
|
+
var handleArgDragStart = (0, react_1.useCallback)(function (index) {
|
|
304
|
+
dragArg.current = index;
|
|
305
|
+
}, []);
|
|
306
|
+
var handleArgDragOver = (0, react_1.useCallback)(function (index) {
|
|
307
|
+
setDragOverArg(function (current) { return (current === index ? current : index); });
|
|
308
|
+
}, []);
|
|
309
|
+
var handleArgDragEnd = (0, react_1.useCallback)(function () {
|
|
310
|
+
dragArg.current = null;
|
|
311
|
+
setDragOverArg(null);
|
|
312
|
+
}, []);
|
|
313
|
+
var handleArgDrop = (0, react_1.useCallback)(function (index) {
|
|
314
|
+
var from = dragArg.current;
|
|
315
|
+
if (from !== null && from !== index) {
|
|
316
|
+
moveVarArg(from, index);
|
|
317
|
+
}
|
|
318
|
+
handleArgDragEnd();
|
|
319
|
+
}, [moveVarArg, handleArgDragEnd]);
|
|
282
320
|
var updateMultipleArgs = (0, react_1.useCallback)(function (args) {
|
|
283
321
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: addMissingArgs(value.value.exp, args) }) }), path);
|
|
284
322
|
}, [onValueChange, JSON.stringify(value), path, addMissingArgs]);
|
|
@@ -301,6 +339,49 @@ var Expression = function (_a) {
|
|
|
301
339
|
? firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type
|
|
302
340
|
: (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type) || type || 'context';
|
|
303
341
|
var restOfArgs = selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.args.slice(1);
|
|
342
|
+
var argCount = (0, lodash_1.size)((_f = value.value) === null || _f === void 0 ? void 0 : _f.args);
|
|
343
|
+
var canReorderArgs = !!(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) && argCount > 1 && !readOnly && (0, lodash_1.size)(reorderSurfaces) > 0;
|
|
344
|
+
var argReorderSurfaces = canReorderArgs ? reorderSurfaces : undefined;
|
|
345
|
+
var isDragOverArg = function (index) {
|
|
346
|
+
return dragOverArg === index && dragArg.current !== null && dragArg.current !== index;
|
|
347
|
+
};
|
|
348
|
+
// The `⋮` menu's "Move Argument" section, one per operand. The wording is
|
|
349
|
+
// axis-free on purpose — the operands wrap into a column on narrow screens.
|
|
350
|
+
var argMenuActions = (0, react_1.useMemo)(function () {
|
|
351
|
+
if (!canReorderArgs || !reorderSurfaces.includes('overflowMenu')) {
|
|
352
|
+
return undefined;
|
|
353
|
+
}
|
|
354
|
+
var moves = [
|
|
355
|
+
['before', 'Move before', 'ArrowGoBackLine', function (index) { return index - 1; }],
|
|
356
|
+
['after', 'Move after', 'ArrowGoForwardLine', function (index) { return index + 1; }],
|
|
357
|
+
['start', 'Move to start', 'SkipBackLine', function () { return 0; }],
|
|
358
|
+
['end', 'Move to end', 'SkipForwardLine', function () { return argCount - 1; }],
|
|
359
|
+
];
|
|
360
|
+
return Array.from({ length: argCount }, function (_, index) { return ({
|
|
361
|
+
label: 'Move Argument',
|
|
362
|
+
icon: 'ArrowLeftRightLine',
|
|
363
|
+
items: __spreadArray(__spreadArray([], moves.map(function (_a) {
|
|
364
|
+
var key = _a[0], label = _a[1], icon = _a[2], target = _a[3];
|
|
365
|
+
var to = target(index);
|
|
366
|
+
return {
|
|
367
|
+
label: label,
|
|
368
|
+
icon: icon,
|
|
369
|
+
className: "expression-arg-move-".concat(key),
|
|
370
|
+
disabled: to === index || to < 0 || to >= argCount,
|
|
371
|
+
onClick: function () { return moveVarArg(index, to); },
|
|
372
|
+
};
|
|
373
|
+
}), true), [
|
|
374
|
+
// Any position in one pick — what a ten-part concat needs.
|
|
375
|
+
{
|
|
376
|
+
isCustom: true,
|
|
377
|
+
content: function (closePopover) { return ((0, jsx_runtime_1.jsx)(moveToPositionStrip_1.ExpressionMoveToPositionStrip, { index: index, count: argCount, onMoveTo: function (to) {
|
|
378
|
+
moveVarArg(index, to);
|
|
379
|
+
closePopover === null || closePopover === void 0 ? void 0 : closePopover();
|
|
380
|
+
} })); },
|
|
381
|
+
},
|
|
382
|
+
], false),
|
|
383
|
+
}); });
|
|
384
|
+
}, [canReorderArgs, reorderSurfaces, argCount, moveVarArg]);
|
|
304
385
|
if (selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) {
|
|
305
386
|
restOfArgs = __spreadArray(__spreadArray([], restOfArgs, true), rest.map(function () { return (__assign({}, selectedExpression.args[0])); }), true);
|
|
306
387
|
}
|
|
@@ -433,7 +514,7 @@ var Expression = function (_a) {
|
|
|
433
514
|
});
|
|
434
515
|
return ((0, jsx_runtime_1.jsxs)(item_1.ExpressionItem, { index: index, as: reqore_1.ReqorePanel, intent: validationData.isValid && !!returnType && isReturnTypeMatching ? 'muted' : 'danger', description: isExpressionServerHandled ? 'This expression will be executed outside of Qorus' : '', flat: true, readOnly: readOnly, minimal: true, size: 'small', isChild: isChild, className: 'expression', customTheme: {
|
|
435
516
|
main: "main:darken:".concat(level),
|
|
436
|
-
}, id: id, label: (0, jsx_runtime_1.jsx)(Select_1.SelectFormField, { size: 'tiny', className: 'expression-operator-selector', value: (
|
|
517
|
+
}, id: id, label: (0, jsx_runtime_1.jsx)(Select_1.SelectFormField, { size: 'tiny', className: 'expression-operator-selector', value: (_g = value === null || value === void 0 ? void 0 : value.value) === null || _g === void 0 ? void 0 : _g.exp, icon: 'Functions', placeholder: 'Select operation', fluid: false, fixed: true, flat: true,
|
|
437
518
|
// The operation catalogue is long and every entry carries a description,
|
|
438
519
|
// so it belongs in the searchable collection modal rather than an inline
|
|
439
520
|
// dropdown. `SelectFormField` defaults `forceDropdown` to `true`, which
|
|
@@ -488,7 +569,7 @@ var Expression = function (_a) {
|
|
|
488
569
|
tooltip: 'Remove this expression but keep the children',
|
|
489
570
|
fixed: true,
|
|
490
571
|
onClick: unwrapExpression,
|
|
491
|
-
show: ((
|
|
572
|
+
show: ((_k = (_j = (_h = value.value) === null || _h === void 0 ? void 0 : _h.args) === null || _j === void 0 ? void 0 : _j[0]) === null || _k === void 0 ? void 0 : _k.is_expression) === true && !readOnly ? 'hover' : false,
|
|
492
573
|
},
|
|
493
574
|
{
|
|
494
575
|
className: 'expression-explain',
|
|
@@ -542,7 +623,7 @@ var Expression = function (_a) {
|
|
|
542
623
|
},
|
|
543
624
|
],
|
|
544
625
|
},
|
|
545
|
-
], children: [hasArgumentsWithTypeMismatch && ((0, jsx_runtime_1.jsx)(confirmMismatchedTypesModal_1.ConfirmMismatchedTypesModal, { args: (
|
|
626
|
+
], children: [hasArgumentsWithTypeMismatch && ((0, jsx_runtime_1.jsx)(confirmMismatchedTypesModal_1.ConfirmMismatchedTypesModal, { args: (_l = value.value) === null || _l === void 0 ? void 0 : _l.args, expression: selectedExpression, onSubmit: updateMultipleArgs, expressions: expressions.value })), (confirmDialogData === null || confirmDialogData === void 0 ? void 0 : confirmDialogData.isOpen) && ((0, jsx_runtime_1.jsx)(confirmUnsupportedTypeModal_1.ConfirmUnsupportedTypeModal, { acceptedTypes: confirmDialogData.acceptedTypes, onClose: function () {
|
|
546
627
|
setConfirmDialogData(undefined);
|
|
547
628
|
}, maxSize: '550px', bottomActions: [
|
|
548
629
|
{
|
|
@@ -567,7 +648,7 @@ var Expression = function (_a) {
|
|
|
567
648
|
setConfirmDialogData(undefined);
|
|
568
649
|
},
|
|
569
650
|
},
|
|
570
|
-
], 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, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField,
|
|
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,
|
|
571
652
|
// SEAM (reqraft): an operand that becomes an expression mounts
|
|
572
653
|
// its own builder through this TemplateField — hand the host's
|
|
573
654
|
// actions on, or nesting silently drops them (the group
|
|
@@ -600,14 +681,14 @@ var Expression = function (_a) {
|
|
|
600
681
|
: buildCustomTemplateItems(firstArgSchema, function (type, removeTemplate) {
|
|
601
682
|
removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
|
|
602
683
|
updateArg(undefined, 0, type.name === 'context' ? undefined : type.name);
|
|
603
|
-
}), expressions: props.expressions, expressions_url: expressionsUrl }, "".concat(firstParamType).concat(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.name)) }), (firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_after) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_after })), selectedExpression
|
|
684
|
+
}), menuActions: argMenuActions === null || argMenuActions === void 0 ? void 0 : argMenuActions[0], reorder: props.reorder, expressions: props.expressions, expressions_url: expressionsUrl }, "".concat(argsGeneration, "-").concat(firstParamType).concat(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.name)) }), (firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_after) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_after })), selectedExpression
|
|
604
685
|
? restOfArgs === null || restOfArgs === void 0 ? void 0 : restOfArgs.map(function (arg, index) {
|
|
605
686
|
var _a, _b, _c, _d, _f, _g, _h;
|
|
606
687
|
return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(arg === null || arg === void 0 ? void 0 : arg.label_before) && (0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: arg.label_before }), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { readOnly: readOnly, expressions: expressions.value, arg: __assign(__assign({}, rest[index]), { type: (0, expressions_1.getArgumentType)(expressions.value, rest[index], arg) }), schema: arg, onTypeChange: function (value) {
|
|
607
688
|
updateArg(undefined, index + 1, value === 'context' ? undefined : value);
|
|
608
689
|
}, onRemoveArgClick: function () {
|
|
609
690
|
removeVarArg(index + 1);
|
|
610
|
-
}, hasMultipleArgs: selectedExpression.varargs && (0, lodash_1.size)(rest) > 1, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField,
|
|
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,
|
|
611
692
|
// SEAM (reqraft): same as the first operand above.
|
|
612
693
|
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,
|
|
613
694
|
// An empty argument has no value to take a type from; fall
|
|
@@ -628,14 +709,14 @@ var Expression = function (_a) {
|
|
|
628
709
|
}), fluid: false, fixed: true, disableManagement: true, disabled: readOnly, menuItems: buildCustomTemplateItems(arg, function (type, removeTemplate) {
|
|
629
710
|
removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
|
|
630
711
|
updateArg(undefined, index + 1, type.name === 'context' ? undefined : type.name);
|
|
631
|
-
}), expressions: props.expressions, expressions_url: expressionsUrl, allowed_values: arg === null || arg === void 0 ? void 0 : arg.allowed_values, element_allowed_values: arg === null || arg === void 0 ? void 0 : arg.element_allowed_values, ui_element_type: arg === null || arg === void 0 ? void 0 : arg.ui_element_type }, "".concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name, "-").concat(level + 1)) }), (arg === null || arg === void 0 ? void 0 : arg.label_after) && (0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: arg.label_after })] }, "".concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name)));
|
|
712
|
+
}), menuActions: argMenuActions === null || argMenuActions === void 0 ? void 0 : argMenuActions[index + 1], reorder: props.reorder, expressions: props.expressions, expressions_url: expressionsUrl, allowed_values: arg === null || arg === void 0 ? void 0 : arg.allowed_values, element_allowed_values: arg === null || arg === void 0 ? void 0 : arg.element_allowed_values, ui_element_type: arg === null || arg === void 0 ? void 0 : arg.ui_element_type }, "".concat(argsGeneration, "-").concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name, "-").concat(level + 1)) }), (arg === null || arg === void 0 ? void 0 : arg.label_after) && (0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: arg.label_after })] }, "".concat(argsGeneration, "-").concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name)));
|
|
632
713
|
})
|
|
633
714
|
: null] })), !isReturnTypeMatching && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: "This expression returns ".concat(types.getTypeDisplayName(expressionReturnType) || 'nothing', " but the expected return type is ").concat(expectedReturnTypeText, ". Please select an expression that returns ").concat(expectedReturnTypeText, " or wrap this expression inside another one that does.") })] })), selectedExpression && !validationData.isValid ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: validationData.reason || 'Expression is not valid for unknown reasons' })] })) : null] }));
|
|
634
715
|
};
|
|
635
716
|
exports.Expression = Expression;
|
|
636
717
|
var ExpressionBuilder = function (_a) {
|
|
637
718
|
var _b, _c, _d;
|
|
638
|
-
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;
|
|
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;
|
|
639
720
|
var templates = (0, useTemplates_1.useTemplates)(!isChild, localTemplates);
|
|
640
721
|
var theme = (0, reqore_1.useReqoreTheme)();
|
|
641
722
|
var _j = (0, react_1.useState)(false), showSummary = _j[0], setShowSummary = _j[1];
|
|
@@ -714,11 +795,11 @@ var ExpressionBuilder = function (_a) {
|
|
|
714
795
|
: 'Show explanation of this expression',
|
|
715
796
|
fixed: true,
|
|
716
797
|
},
|
|
717
|
-
], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
|
|
798
|
+
], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
|
|
718
799
|
marginLeft: 10,
|
|
719
800
|
} }))] }, index)); })] }) }) }));
|
|
720
801
|
}
|
|
721
|
-
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 }) }));
|
|
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 }) }));
|
|
722
803
|
};
|
|
723
804
|
exports.ExpressionBuilder = ExpressionBuilder;
|
|
724
805
|
var templateObject_1;
|