@qoretechnologies/reqraft 0.10.51 → 0.10.52-pr.117.g2c44284

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.
Files changed (50) hide show
  1. package/dist/components/form/expressions/ExpressionField.d.ts +4 -2
  2. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  3. package/dist/components/form/expressions/ExpressionField.js +2 -2
  4. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  5. package/dist/components/form/expressions/builder/argumentWrapper.d.ts +13 -2
  6. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  7. package/dist/components/form/expressions/builder/argumentWrapper.js +61 -3
  8. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  9. package/dist/components/form/expressions/builder/index.d.ts +4 -2
  10. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  11. package/dist/components/form/expressions/builder/index.js +96 -15
  12. package/dist/components/form/expressions/builder/index.js.map +1 -1
  13. package/dist/components/form/expressions/builder/moveToPositionStrip.d.ts +19 -0
  14. package/dist/components/form/expressions/builder/moveToPositionStrip.d.ts.map +1 -0
  15. package/dist/components/form/expressions/builder/moveToPositionStrip.js +62 -0
  16. package/dist/components/form/expressions/builder/moveToPositionStrip.js.map +1 -0
  17. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  18. package/dist/components/form/expressions/mockExpressions.js +18 -0
  19. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  20. package/dist/components/form/expressions/types.d.ts +8 -0
  21. package/dist/components/form/expressions/types.d.ts.map +1 -1
  22. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +3 -2
  23. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  24. package/dist/components/form/fields/schema-definition/MigrationsTab.js +3 -3
  25. package/dist/components/form/fields/schema-definition/MigrationsTab.js.map +1 -1
  26. package/dist/components/form/fields/schema-definition/helpers.d.ts +0 -2
  27. package/dist/components/form/fields/schema-definition/helpers.d.ts.map +1 -1
  28. package/dist/components/form/fields/schema-definition/helpers.js +1 -20
  29. package/dist/components/form/fields/schema-definition/helpers.js.map +1 -1
  30. package/dist/components/form/fields/template/TemplateField.d.ts +33 -4
  31. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  32. package/dist/components/form/fields/template/TemplateField.js +57 -7
  33. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  34. package/dist/helpers/common.d.ts +4 -0
  35. package/dist/helpers/common.d.ts.map +1 -1
  36. package/dist/helpers/common.js +30 -1
  37. package/dist/helpers/common.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/components/form/expressions/ExpressionField.tsx +5 -1
  40. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +386 -0
  41. package/src/components/form/expressions/builder/argumentWrapper.tsx +137 -11
  42. package/src/components/form/expressions/builder/index.tsx +153 -5
  43. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +156 -0
  44. package/src/components/form/expressions/mockExpressions.ts +18 -0
  45. package/src/components/form/expressions/types.ts +10 -0
  46. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +1 -1
  47. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +1 -1
  48. package/src/components/form/fields/schema-definition/helpers.ts +0 -9
  49. package/src/components/form/fields/template/TemplateField.tsx +112 -4
  50. 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;AAI3E,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;CACf;AAED,eAAO,MAAM,eAAe,iOAgBvB,qBAAqB,6CA+LzB,CAAC;AAEF,eAAe,eAAe,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":"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"}
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":";AAEA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,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;CACpB;AAED,eAAO,MAAM,gCAAgC,oIAUxC,sCAAsC,6CA2D1C,CAAC"}
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 }, size: 'small', 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: [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 }))] })] }));
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":";;;;AAAA,mDAAyF;AACzF,+BAA6B;AAE7B,iDAAiE;AAcpD,QAAA,gCAAgC,GAAG,IAAA,YAAI,EAClD,UAAC,EASwC;QARvC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,GAAG,SAAA,EACH,gBAAgB,sBAAA,EAChB,eAAe,qBAAA,EACf,WAAW,iBAAA,EACX,KAAK,WAAA,EACL,QAAQ,cAAA;IAER,IAAM,IAAI,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,IAAI,SAAS,CAAC;IAEvD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,aAAa,EAAE,CAAC;QACvB,OAAO,CACL,wBAAC,2BAAkB,IAAC,QAAQ,QAAC,KAAK,QAAC,OAAO,EAAC,OAAO,aAChD,uBAAC,8CAA8B,IAC7B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,GACV,EACF,uBAAC,oBAAW,IACV,OAAO,QACP,KAAK,QACL,cAAc,EAAC,KAAK,EACpB,eAAe,EAAE,KAAK,EACtB,iBAAiB,EAAE,KAAK,EACxB,IAAI,EAAC,OAAO,EACZ,IAAI,QACJ,MAAM,EAAE,KAAK,EACb,WAAW,kBAEV,QAAQ,GACG,IACK,CACtB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,wBAAC,2BAAkB,IAAC,QAAQ,QAAC,IAAI,QAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAC,OAAO,aACtE,uBAAC,8CAA8B,IAC7B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,GACxB,EACF,wBAAC,2BAAkB,IAAC,aAAa,EAAC,YAAY,EAAC,IAAI,QAAC,KAAK,mBACtD,QAAQ,EACR,eAAe,IAAI,CAClB,uBAAC,qBAAY,IACX,OAAO,QACP,MAAM,EAAC,QAAQ,EACf,OAAO,QACP,KAAK,QACL,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAC,eAAe,EACpB,IAAI,QACJ,WAAW,QACX,OAAO,EAAC,iBAAiB,EACzB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,IACkB,IACF,CACtB,CAAC;AACJ,CAAC,CACF,CAAC"}
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;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAc1D,OAAO,EAEL,WAAW,EACX,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAalB,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,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,4CAq8BlB,CAAC;AAEF,eAAO,MAAM,iBAAiB,kLAiB3B,uBAAuB,4CAyLzB,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, _l = _a.value, value = _l === void 0 ? types_1.ExpressionDefaultValue : _l, 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
+ 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 _m = (0, react_1.useState)(false), showSummary = _m[0], setShowSummary = _m[1];
101
- var _o = (0, react_1.useState)(undefined), confirmDialogData = _o[0], setConfirmDialogData = _o[1];
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 _p = ((_b = value.value) === null || _b === void 0 ? void 0 : _b.args) || [], firstArgument = _p[0], rest = _p.slice(1);
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: (_f = value === null || value === void 0 ? void 0 : value.value) === null || _f === void 0 ? void 0 : _f.exp, icon: 'Functions', placeholder: 'Select operation', fluid: false, fixed: true, flat: true,
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: ((_j = (_h = (_g = value.value) === null || _g === void 0 ? void 0 : _g.args) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.is_expression) === true && !readOnly ? 'hover' : false,
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: (_k = value.value) === null || _k === void 0 ? void 0 : _k.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 () {
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;