@adaptabletools/adaptable 17.0.0-canary.6 → 17.0.0-canary.8

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 (43) hide show
  1. package/base.css +14 -0
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +128 -128
  4. package/index.css +16 -0
  5. package/index.css.map +1 -1
  6. package/package.json +1 -1
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
  10. package/src/AdaptableOptions/EditOptions.d.ts +6 -6
  11. package/src/AdaptableOptions/GridFilterOptions.d.ts +8 -3
  12. package/src/Api/GridFilterApi.d.ts +2 -2
  13. package/src/Api/Implementation/GridFilterApiImpl.d.ts +1 -1
  14. package/src/Api/Implementation/GridFilterApiImpl.js +1 -1
  15. package/src/Api/Internal/LayoutInternalApi.d.ts +2 -2
  16. package/src/Api/Internal/LayoutInternalApi.js +11 -11
  17. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -1
  18. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +6 -0
  19. package/src/Utilities/Services/ValidationService.js +11 -11
  20. package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +5 -4
  21. package/src/View/Components/Selectors/PermittedValuesSelector.js +25 -3
  22. package/src/View/GridFilter/GridFilterViewPanel.js +4 -2
  23. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  24. package/src/View/GridFilter/useGridFilterOptionsForExpressionEditor.js +5 -23
  25. package/src/View/Layout/Wizard/sections/GridFilterSection.js +4 -4
  26. package/src/View/NamedQuery/EditCurrentQueryButton.js +1 -1
  27. package/src/agGrid/Adaptable.d.ts +4 -0
  28. package/src/agGrid/Adaptable.js +3 -18
  29. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +6 -0
  30. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +7 -1
  31. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +14 -2
  32. package/src/components/ExpressionEditor/QueryBuilder/booleanExpressions.js +1 -0
  33. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -1
  34. package/src/components/Select/Select.js +45 -20
  35. package/src/metamodel/adaptable.metamodel.d.ts +35 -28
  36. package/src/metamodel/adaptable.metamodel.js +1 -1
  37. package/src/parser/src/predicate/mapQlPredicateToExpression.js +5 -2
  38. package/src/parser/src/predicate/types.d.ts +1 -1
  39. package/src/parser/src/types.d.ts +1 -1
  40. package/src/renderReactRoot.js +11 -2
  41. package/src/types.d.ts +2 -2
  42. package/version.d.ts +1 -1
  43. package/version.js +1 -1
@@ -115,7 +115,7 @@ const useGridFilterExpressionEditor = () => {
115
115
  availableColumns,
116
116
  runQuery,
117
117
  clearQuery,
118
- onExpand: () => adaptable.api.gridFilterApi.openExpressionEditorForGridFilter(expression),
118
+ onExpand: () => adaptable.api.gridFilterApi.openUIEditorForGridFilter(expression),
119
119
  saveQuery,
120
120
  suspendGridFilter,
121
121
  unSuspendGridFilter,
@@ -4,28 +4,10 @@ exports.useGridFilterOptionsForExpressionEditorProps = void 0;
4
4
  const AdaptableContext_1 = require("../AdaptableContext");
5
5
  const useGridFilterOptionsForExpressionEditorProps = () => {
6
6
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
7
- const gridfilterOptions = adaptable.api.optionsApi.getGridFilterOptions();
8
- switch (gridfilterOptions.availableFilterEditors) {
9
- case 'Both':
10
- return {
11
- showQueryBuilder: true,
12
- showExpressionEditor: true,
13
- };
14
- case 'QueryBuilder':
15
- return {
16
- showQueryBuilder: true,
17
- showExpressionEditor: false,
18
- };
19
- case 'ExpressionEditor':
20
- return {
21
- showQueryBuilder: false,
22
- showExpressionEditor: true,
23
- };
24
- default:
25
- return {
26
- showQueryBuilder: true,
27
- showExpressionEditor: true,
28
- };
29
- }
7
+ const gridFilterEditors = adaptable.api.optionsApi.getGridFilterOptions().availableFilterEditors;
8
+ return {
9
+ showQueryBuilder: gridFilterEditors.includes('QueryBuilder'),
10
+ showExpressionEditor: gridFilterEditors.includes('ExpressionEditor'),
11
+ };
30
12
  };
31
13
  exports.useGridFilterOptionsForExpressionEditorProps = useGridFilterOptionsForExpressionEditorProps;
@@ -34,11 +34,11 @@ const GridFilterSection = (props) => {
34
34
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
35
35
  const initialData = React.useMemo(() => api.internalApi.getQueryPreviewData(), []);
36
36
  const expressionEditorProps = (0, useGridFilterOptionsForExpressionEditor_1.useGridFilterOptionsForExpressionEditorProps)();
37
+ const expressionEditorContent = (React.createElement(ExpressionEditor_1.ExpressionEditor, Object.assign({}, expressionEditorProps, { allowSaveNamedQuery: false, type: 'boolean', module: ModuleConstants_1.GridFilterModuleId, value: (_b = (_a = layout === null || layout === void 0 ? void 0 : layout.GridFilter) === null || _a === void 0 ? void 0 : _a.Expression) !== null && _b !== void 0 ? _b : '', onChange: (expression) => {
38
+ props.onChange(Object.assign(Object.assign({}, layout), { GridFilter: Object.assign(Object.assign({}, layout.GridFilter), { Expression: expression }) }));
39
+ }, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api })));
37
40
  return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } },
38
41
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid Filters"),
39
- React.createElement(Tabs_1.Tabs.Content, null,
40
- React.createElement(ExpressionEditor_1.ExpressionEditor, Object.assign({}, expressionEditorProps, { allowSaveNamedQuery: false, type: 'boolean', module: ModuleConstants_1.GridFilterModuleId, value: (_b = (_a = layout === null || layout === void 0 ? void 0 : layout.GridFilter) === null || _a === void 0 ? void 0 : _a.Expression) !== null && _b !== void 0 ? _b : '', onChange: (expression) => {
41
- props.onChange(Object.assign(Object.assign({}, layout), { GridFilter: Object.assign(Object.assign({}, layout.GridFilter), { Expression: expression }) }));
42
- }, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api })))));
42
+ React.createElement(Tabs_1.Tabs.Content, null, expressionEditorContent)));
43
43
  };
44
44
  exports.GridFilterSection = GridFilterSection;
@@ -9,7 +9,7 @@ const EditGridFilterButton = () => {
9
9
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
10
10
  const handleClick = React.useCallback((event) => {
11
11
  event.stopPropagation();
12
- adaptable.api.gridFilterApi.openExpressionEditorForGridFilter();
12
+ adaptable.api.gridFilterApi.openUIEditorForGridFilter();
13
13
  }, []);
14
14
  return React.createElement(SimpleButton_1.default, { variant: "text", iconSize: 15, onClick: handleClick, icon: "edit" });
15
15
  };
@@ -41,6 +41,9 @@ import { AdaptableLogger } from './AdaptableLogger';
41
41
  import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
42
42
  type RuntimeConfig = {
43
43
  waitForAgGrid?: boolean;
44
+ /**
45
+ * @deprecated
46
+ */
44
47
  renderReactRoot?: RenderReactRootFn;
45
48
  variant?: AdaptableVariant;
46
49
  gridOptions: AgGridConfig['gridOptions'];
@@ -361,6 +364,7 @@ export declare class Adaptable implements IAdaptable {
361
364
  closeAllRowGroups(): void;
362
365
  expandRowGroupsForValues(columnValues: any[]): void;
363
366
  getAgGridColumnForColumnId(columnId: string): Column;
367
+ getAgGridAllGridColumns(): Column<any>[];
364
368
  setRowGroupColumns(columnIds: string[]): void;
365
369
  clearRowGroupColumns(): void;
366
370
  getExpandRowGroupsKeys(): any[];
@@ -361,24 +361,6 @@ class Adaptable {
361
361
  async init(adaptableOptions, runtimeConfig, _staticInit) {
362
362
  this.logger = new AdaptableLogger_1.AdaptableLogger(adaptableOptions.adaptableId || String(Date.now()));
363
363
  const perfAdaptableInit = this.logger.beginPerf(`Adaptable init()`);
364
- if (runtimeConfig.renderReactRoot) {
365
- this.renderReactRoot = (el, container) => {
366
- const unmount = runtimeConfig.renderReactRoot(el, container);
367
- return () => {
368
- // we used to capture here because of FloatingFilters/Filters - see FloatingFilterWrapper and FilterWrapper
369
- // as we didn't have a native React implementation for our React wrapper
370
- // but we might need to do this again in the future for some other components that are not native React
371
- // captureReactWarnings();
372
- if (typeof unmount === 'function') {
373
- // rAF is required, otherwise the unmount would be performed during the rendering phase and React doesn't like that
374
- requestAnimationFrame(() => {
375
- unmount();
376
- });
377
- }
378
- // releaseReactWarnings();
379
- };
380
- };
381
- }
382
364
  if (runtimeConfig.variant) {
383
365
  this.variant = runtimeConfig.variant;
384
366
  }
@@ -4179,6 +4161,9 @@ class Adaptable {
4179
4161
  getAgGridColumnForColumnId(columnId) {
4180
4162
  return this.gridOptions.columnApi.getColumn(columnId);
4181
4163
  }
4164
+ getAgGridAllGridColumns() {
4165
+ return this.gridOptions.columnApi.getAllGridColumns();
4166
+ }
4182
4167
  setRowGroupColumns(columnIds) {
4183
4168
  this.gridOptions.columnApi.setRowGroupColumns(columnIds);
4184
4169
  }
@@ -17,6 +17,12 @@ export declare const PrimiteValueInput: (props: {
17
17
  */
18
18
  lefthandColumnIdParam: string;
19
19
  }) => JSX.Element;
20
+ export declare const PrimitiveMultiValueInput: (props: {
21
+ inputType: ExpressionFunctionInputType;
22
+ value: any[];
23
+ onChange(values: any[]): void;
24
+ lefthandColumnIdParam: string;
25
+ }) => JSX.Element;
20
26
  export declare const ExpressionSelector: (props: {
21
27
  value: BooleanFunctionName;
22
28
  dataType: AdaptableColumn['dataType'];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CombinatorSelector = exports.ExpressionSelector = exports.PrimiteValueInput = exports.PrimitiveColumnSelector = void 0;
3
+ exports.CombinatorSelector = exports.ExpressionSelector = exports.PrimitiveMultiValueInput = exports.PrimiteValueInput = exports.PrimitiveColumnSelector = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const rebass_1 = require("rebass");
@@ -104,6 +104,12 @@ const PrimiteValueInput = (props) => {
104
104
  editor));
105
105
  };
106
106
  exports.PrimiteValueInput = PrimiteValueInput;
107
+ const PrimitiveMultiValueInput = (props) => {
108
+ return (react_1.default.createElement(PermittedValuesSelector_1.PermittedValuesSelector, { isMulti: true, allowNewValues: true, value: props.value, columnId: props.lefthandColumnIdParam, onChange: (value) => {
109
+ props.onChange(value);
110
+ } }));
111
+ };
112
+ exports.PrimitiveMultiValueInput = PrimitiveMultiValueInput;
107
113
  const ExpressionSelector = (props) => {
108
114
  var _a;
109
115
  const { getExpressions } = (0, QueryBuilder_1.useQueryBuilderContext)();
@@ -145,12 +145,24 @@ const PrimitiveFunctionEditor = (props) => {
145
145
  }, value: props.predicate.operator })),
146
146
  react_1.default.createElement(rebass_1.Flex, { flex: 1, ml: 2 }, restOfFunctionInputDataTypes.map((type, index) => {
147
147
  var _a;
148
- return (react_1.default.createElement(QueryBuilderInputs_1.PrimiteValueInput, { key: type + index, inputType: type, lefthandColumnIdParam: columnId, value: (_a = restOfArgs[index]) !== null && _a !== void 0 ? _a : null, onChange: (value) => {
148
+ let value = restOfArgs[index];
149
+ const commonProps = {
150
+ key: type + index,
151
+ lefthandColumnIdParam: columnId,
152
+ inputType: type,
153
+ };
154
+ if (type.includes('[]')) {
155
+ return (react_1.default.createElement(QueryBuilderInputs_1.PrimitiveMultiValueInput, Object.assign({}, commonProps, { value: restOfArgs, onChange: (values) => {
156
+ const args = [...props.predicate.args.slice(0, 1), ...values];
157
+ props.onChange(Object.assign(Object.assign({}, props.predicate), { args }));
158
+ } })));
159
+ }
160
+ return (react_1.default.createElement(QueryBuilderInputs_1.PrimiteValueInput, Object.assign({}, commonProps, { value: (_a = restOfArgs[index]) !== null && _a !== void 0 ? _a : null, onChange: (value) => {
149
161
  const args = [...props.predicate.args];
150
162
  // +1 because col is the first argument
151
163
  args[index + 1] = value;
152
164
  props.onChange(Object.assign(Object.assign({}, props.predicate), { args }));
153
- } }));
165
+ } })));
154
166
  }))),
155
167
  react_1.default.createElement(rebass_1.Box, { flex: 1 }),
156
168
  react_1.default.createElement(QueryPredicateButtons, Object.assign({}, props))));
@@ -14,4 +14,5 @@ exports.booleanExpressionsAvailableInQueryBuilder = [
14
14
  'ENDS_WITH',
15
15
  'IS_HOLIDAY',
16
16
  'IS_WORKDAY',
17
+ 'IN',
17
18
  ];
@@ -80,7 +80,7 @@ const getFunctionsForColumnType = (dataType, availableBooleanFunctions) => {
80
80
  const functionDef = booleanExpressionFunctions_1.booleanExpressionFunctions[boolFnName];
81
81
  const inputs = functionDef.inputs;
82
82
  let matchingInputTypes = [];
83
- if (Array.isArray(inputs[0])) {
83
+ if (inputs && Array.isArray(inputs[0])) {
84
84
  matchingInputTypes = inputs.find((input) => input[0] === columnType);
85
85
  }
86
86
  else {
@@ -15,21 +15,40 @@ const commonStyles = ({ isFocused, isDisabled, }) => {
15
15
  };
16
16
  };
17
17
  const Select = function (props) {
18
- var _a, _b, _c, _d, _e;
19
- let selectedOption = (_b = ((_a = props.options) !== null && _a !== void 0 ? _a : []).find((option) => {
18
+ var _a, _b, _c, _d, _e, _f, _g;
19
+ const doesOptionMatchValue = function (option) {
20
20
  if (typeof option.value === 'object' && option.value instanceof Date) {
21
21
  return (0, date_fns_1.isSameDay)(option.value, props.value);
22
22
  }
23
23
  return option.value === props.value;
24
- })) !== null && _b !== void 0 ? _b : null;
25
- if (!selectedOption && props.value !== undefined && props.value !== null) {
26
- selectedOption = {
27
- value: props.value,
28
- label: props.value,
29
- };
24
+ };
25
+ let selectedOption = null;
26
+ if (props.isMulti) {
27
+ selectedOption =
28
+ (_b = ((_a = props.value) !== null && _a !== void 0 ? _a : []).map((value) => {
29
+ var _a;
30
+ // return (props.value as any[]).includes(option.value);
31
+ const option = ((_a = props.options) !== null && _a !== void 0 ? _a : []).find(doesOptionMatchValue);
32
+ if (!option) {
33
+ return {
34
+ value,
35
+ label: value,
36
+ };
37
+ }
38
+ return option;
39
+ })) !== null && _b !== void 0 ? _b : null;
30
40
  }
31
- let disabled = (_c = props.disabled) !== null && _c !== void 0 ? _c : false;
32
- const accessLevel = (_d = props.accessLevel) !== null && _d !== void 0 ? _d : 'Full';
41
+ else {
42
+ selectedOption = (_d = ((_c = props.options) !== null && _c !== void 0 ? _c : []).find(doesOptionMatchValue)) !== null && _d !== void 0 ? _d : null;
43
+ if (!selectedOption && props.value !== undefined && props.value !== null) {
44
+ selectedOption = {
45
+ value: props.value,
46
+ label: props.value,
47
+ };
48
+ }
49
+ }
50
+ let disabled = (_e = props.disabled) !== null && _e !== void 0 ? _e : false;
51
+ const accessLevel = (_f = props.accessLevel) !== null && _f !== void 0 ? _f : 'Full';
33
52
  if (accessLevel === 'Hidden') {
34
53
  return null;
35
54
  }
@@ -52,7 +71,7 @@ const Select = function (props) {
52
71
  };
53
72
  }, []);
54
73
  const SelectComponent = props.isCreatable ? creatable_1.default : react_select_1.default;
55
- return (React.createElement(SelectComponent, { onInputChange: props.onInputChange, onFocus: props.onFocus, isLoading: props.isLoding, options: props.options, className: props.className, isDisabled: disabled, isMulti: props.isMulti, value: selectedOption, menuPosition: (_e = props.menuPosition) !== null && _e !== void 0 ? _e : 'fixed', isClearable: props.isClearable, onChange: (option) => {
74
+ return (React.createElement(SelectComponent, { onInputChange: props.onInputChange, onFocus: props.onFocus, isLoading: props.isLoding, options: props.options, className: props.className, isDisabled: disabled, isMulti: props.isMulti, value: selectedOption, menuPosition: (_g = props.menuPosition) !== null && _g !== void 0 ? _g : 'fixed', isClearable: props.isClearable, onChange: (option) => {
56
75
  if (props.isMulti) {
57
76
  props.onChange(option.map((x) => x === null || x === void 0 ? void 0 : x.value));
58
77
  }
@@ -85,25 +104,25 @@ const Select = function (props) {
85
104
  },
86
105
  // @ts-ignore
87
106
  menu: (baseStyle, state) => {
88
- return Object.assign(Object.assign(Object.assign({}, baseStyle), { zIndex: 999999, boxShadow: 'var(--ab-cmp-dropdownbutton-list__box-shadow)', minWidth: 160 }), commonStyles(state));
107
+ return Object.assign(Object.assign(Object.assign({}, baseStyle), { zIndex: 999999, boxShadow: 'var(--ab-cmp-select-menu__box-shadow)', minWidth: 160 }), commonStyles(state));
89
108
  },
90
109
  // @ts-ignore
91
110
  option: (baseStyle, state) => {
92
111
  const style = Object.assign(Object.assign(Object.assign({}, baseStyle), commonStyles(state)), { '&:active': {
93
- background: 'var(--ab-cmp-dropdownbutton-list-item-hover__background)',
112
+ background: 'var(--ab-cmp-select-option-active__background)',
94
113
  }, opacity: state.isDisabled ? 0.5 : 1 });
95
114
  if (state.isSelected) {
96
- style.background = 'var(--ab-cmp-dropdownbutton-list-item-active__background)';
97
- style.color = 'var(--ab-cmp-dropdownbutton-list-item-active__color)';
115
+ style.background = 'var(--ab-cmp-select-option-active__background)';
116
+ style.color = 'var(--ab-cmp-select-option-active__color)';
98
117
  }
99
118
  if (state.isFocused) {
100
- style.background = 'var(--ab-cmp-dropdownbutton-list-item-hover__background)';
119
+ style.background = 'var(--ab-cmp-select-option-focused__background)';
101
120
  }
102
121
  return style;
103
122
  },
104
123
  // @ts-ignore
105
124
  input: (baseStyle, state) => {
106
- return Object.assign(Object.assign({}, baseStyle), { padding: props.size === 'small' ? 0 : baseStyle.padding, color: 'var(--ab-cmp-input__color)' });
125
+ return Object.assign(Object.assign({}, baseStyle), { padding: props.size === 'small' ? 0 : baseStyle.padding, color: 'var(--ab-cmp-select__color)' });
107
126
  },
108
127
  valueContainer: (baseStyle) => {
109
128
  return Object.assign(Object.assign({}, baseStyle), { padding: props.size === 'small' ? `0 var(--ab-space-1)` : baseStyle.padding });
@@ -117,10 +136,10 @@ const Select = function (props) {
117
136
  state;
118
137
  return Object.assign(Object.assign(Object.assign({}, baseStyle), commonStyles(state)), {
119
138
  // height: 30,
120
- minHeight: props.size === 'small' ? 0 : 32, boxShadow: state.isFocused ? 'var(--ab-focus__box-shadow)' : 'none', outline: state.isFocused ? 'var(--ab-focus__outline)' : 'none', border: props.variant && props.variant === 'raised'
139
+ minHeight: props.size === 'small' ? 0 : 32, boxShadow: state.isFocused ? 'var(--ab-cmp-select-focused__box-shadow)' : 'none', outline: state.isFocused ? 'var(--ab-cmp-select-focused__outline)' : 'none', border: props.variant && props.variant === 'raised'
121
140
  ? '1px solid transparent'
122
- : 'var(--ab-cmp-input__border)', '&:hover': {
123
- border: 'var(--ab-cmp-input__border)',
141
+ : 'var(--ab-cmp-select__border)', '&:hover': {
142
+ border: 'var(--ab-cmp-select__border)',
124
143
  } });
125
144
  },
126
145
  // @ts-ignore
@@ -131,6 +150,12 @@ const Select = function (props) {
131
150
  clearIndicator: (baseStyle) => {
132
151
  return Object.assign(Object.assign({}, baseStyle), { padding: '2px 3px' });
133
152
  },
153
+ multiValue: (baseStyle) => {
154
+ return Object.assign(Object.assign({}, baseStyle), { color: 'var(--ab-cmp-select__color)', background: 'var(--ab-cmp-select-multi-value__background)', border: 'var(--ab-cmp-select__border)' });
155
+ },
156
+ multiValueLabel: (baseStyle) => {
157
+ return Object.assign(Object.assign({}, baseStyle), { color: 'var(--ab-cmp-select__color)' });
158
+ },
134
159
  } }));
135
160
  };
136
161
  exports.Select = Select;
@@ -3558,6 +3558,11 @@ export declare const ADAPTABLE_METAMODEL: {
3558
3558
  isOpt: boolean;
3559
3559
  }[];
3560
3560
  };
3561
+ GridFilterEditor: {
3562
+ name: string;
3563
+ kind: string;
3564
+ desc: string;
3565
+ };
3561
3566
  GridFilterOptions: {
3562
3567
  name: string;
3563
3568
  kind: string;
@@ -3568,6 +3573,7 @@ export declare const ADAPTABLE_METAMODEL: {
3568
3573
  desc: string;
3569
3574
  isOpt: boolean;
3570
3575
  defVal: string;
3576
+ ref: string;
3571
3577
  gridInfo?: undefined;
3572
3578
  } | {
3573
3579
  name: string;
@@ -3576,6 +3582,7 @@ export declare const ADAPTABLE_METAMODEL: {
3576
3582
  isOpt: boolean;
3577
3583
  gridInfo: string;
3578
3584
  defVal: string;
3585
+ ref?: undefined;
3579
3586
  })[];
3580
3587
  };
3581
3588
  GridRow: {
@@ -4588,7 +4595,7 @@ export declare const ADAPTABLE_METAMODEL: {
4588
4595
  isOpt?: undefined;
4589
4596
  })[];
4590
4597
  };
4591
- Report_2: {
4598
+ Report: {
4592
4599
  name: string;
4593
4600
  kind: string;
4594
4601
  desc: string;
@@ -4819,6 +4826,33 @@ export declare const ADAPTABLE_METAMODEL: {
4819
4826
  desc: string;
4820
4827
  }[];
4821
4828
  };
4829
+ ServerValidationResult: {
4830
+ name: string;
4831
+ kind: string;
4832
+ desc: string;
4833
+ props: ({
4834
+ name: string;
4835
+ kind: string;
4836
+ desc: string;
4837
+ isOpt: boolean;
4838
+ defVal: string;
4839
+ ref: string;
4840
+ } | {
4841
+ name: string;
4842
+ kind: string;
4843
+ desc: string;
4844
+ isOpt: boolean;
4845
+ defVal?: undefined;
4846
+ ref?: undefined;
4847
+ } | {
4848
+ name: string;
4849
+ kind: string;
4850
+ desc: string;
4851
+ isOpt: boolean;
4852
+ defVal: string;
4853
+ ref?: undefined;
4854
+ })[];
4855
+ };
4822
4856
  SetPrimaryKeyValueContext: {
4823
4857
  name: string;
4824
4858
  kind: string;
@@ -5463,33 +5497,6 @@ export declare const ADAPTABLE_METAMODEL: {
5463
5497
  isOpt?: undefined;
5464
5498
  })[];
5465
5499
  };
5466
- ValidationResult: {
5467
- name: string;
5468
- kind: string;
5469
- desc: string;
5470
- props: ({
5471
- name: string;
5472
- kind: string;
5473
- desc: string;
5474
- isOpt: boolean;
5475
- defVal: string;
5476
- ref: string;
5477
- } | {
5478
- name: string;
5479
- kind: string;
5480
- desc: string;
5481
- isOpt: boolean;
5482
- defVal?: undefined;
5483
- ref?: undefined;
5484
- } | {
5485
- name: string;
5486
- kind: string;
5487
- desc: string;
5488
- isOpt: boolean;
5489
- defVal: string;
5490
- ref?: undefined;
5491
- })[];
5492
- };
5493
5500
  ValuationContext: {
5494
5501
  name: string;
5495
5502
  kind: string;