@adaptabletools/adaptable 15.0.0-canary.4 → 15.0.0-canary.5

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 (45) hide show
  1. package/base.css +1 -1
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +146 -146
  4. package/index.css +1 -1
  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/AdaptableOptions/FilterOptions.d.ts +5 -1
  10. package/src/AdaptableOptions/TeamSharingOptions.d.ts +31 -5
  11. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +8 -2
  12. package/src/Api/Implementation/TeamSharingApiImpl.js +64 -9
  13. package/src/Api/Internal/FilterInternalApi.d.ts +1 -0
  14. package/src/Api/Internal/FilterInternalApi.js +10 -1
  15. package/src/Api/Internal/TeamSharingInternalApi.d.ts +3 -4
  16. package/src/Api/Internal/TeamSharingInternalApi.js +1 -4
  17. package/src/Api/TeamSharingApi.d.ts +36 -10
  18. package/src/PredefinedConfig/Common/AdaptablePredicate.js +3 -0
  19. package/src/PredefinedConfig/TeamSharingState.d.ts +89 -8
  20. package/src/PredefinedConfig/TeamSharingState.js +5 -0
  21. package/src/Redux/ActionsReducers/TeamSharingRedux.d.ts +13 -7
  22. package/src/Redux/ActionsReducers/TeamSharingRedux.js +8 -1
  23. package/src/Redux/Store/AdaptableStore.js +56 -13
  24. package/src/Strategy/TeamSharingModule.d.ts +3 -3
  25. package/src/Strategy/TeamSharingModule.js +6 -7
  26. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +5 -2
  27. package/src/Utilities/Services/Interface/ITeamSharingService.d.ts +7 -6
  28. package/src/Utilities/Services/TeamSharingService.d.ts +7 -6
  29. package/src/Utilities/Services/TeamSharingService.js +23 -5
  30. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +2 -2
  31. package/src/View/Components/Buttons/ButtonShare.d.ts +2 -2
  32. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +2 -2
  33. package/src/View/Components/ModuleSummary/ModuleDetail.d.ts +2 -2
  34. package/src/View/Components/Popups/AdaptablePopupTeamSharing.d.ts +2 -2
  35. package/src/View/Components/SharedProps/ConfigEntityRowProps.d.ts +2 -2
  36. package/src/View/Components/SharedProps/ModuleSummaryProps.d.ts +2 -2
  37. package/src/View/TeamSharing/SharedEntityDependencies.d.ts +3 -3
  38. package/src/View/TeamSharing/SharedEntityObjectView.d.ts +4 -4
  39. package/src/View/TeamSharing/SharedEntityObjectView.js +5 -6
  40. package/src/View/Theme/ThemePopup.js +2 -3
  41. package/src/metamodel/adaptable.metamodel.d.ts +58 -16
  42. package/src/metamodel/adaptable.metamodel.js +1 -1
  43. package/src/types.d.ts +2 -2
  44. package/version.d.ts +1 -1
  45. package/version.js +1 -1
@@ -14,6 +14,23 @@ class TeamSharingService {
14
14
  }, updateInterval);
15
15
  }
16
16
  }
17
+ buildCustomSharedEntity(Entity, Configuration) {
18
+ var _a;
19
+ const currentTime = Date.now();
20
+ const currentUser = this.adaptableApi.optionsApi.getUserName();
21
+ return {
22
+ EntityType: 'customEntity',
23
+ Entity,
24
+ Uuid: (_a = Configuration.Uuid) !== null && _a !== void 0 ? _a : (0, Uuid_1.createUuid)(),
25
+ Name: Configuration.Name,
26
+ Description: Configuration.Description,
27
+ Tags: Configuration.Tags,
28
+ UserName: currentUser,
29
+ Timestamp: currentTime,
30
+ ChangedBy: currentUser,
31
+ ChangedAt: currentTime,
32
+ };
33
+ }
17
34
  buildSharedEntityWithDependencies(adaptableObject, module, configuration) {
18
35
  const sharingUserName = this.adaptableApi.optionsApi.getUserName();
19
36
  const sharingTimestamp = new Date().getTime();
@@ -74,7 +91,7 @@ class TeamSharingService {
74
91
  return importInfo === null || importInfo === void 0 ? void 0 : importInfo.AddAction(Entity);
75
92
  }
76
93
  };
77
- const existingSharedEntities = this.adaptableApi.teamSharingApi.internalApi.getLocalTeamSharingEntities();
94
+ const existingSharedEntities = this.adaptableApi.teamSharingApi.getLoadedAdaptableSharedEntities();
78
95
  const sharedEntityDependencyTree = this.getSharedEntityDependencyTree(importedSharedEntity, existingSharedEntities);
79
96
  const importSteps = sharedEntityDependencyTree.map((sharedEntity) => ({
80
97
  sharedEntity,
@@ -89,7 +106,7 @@ class TeamSharingService {
89
106
  return [localRevision, remoteRevision];
90
107
  }
91
108
  getStaleActiveSharedEntities() {
92
- const sharedEntities = this.adaptableApi.teamSharingApi.internalApi.getLocalTeamSharingEntities();
109
+ const sharedEntities = this.adaptableApi.teamSharingApi.getLoadedAdaptableSharedEntities();
93
110
  const activeEntities = this.adaptableApi.internalApi.getState().TeamSharing.ActiveSharedEntityMap;
94
111
  const result = {};
95
112
  sharedEntities
@@ -131,6 +148,7 @@ class TeamSharingService {
131
148
  createSharedEntity(adaptableObject, module, configuration, sharingUserName, sharingTimestamp, createdSharedEntities) {
132
149
  // create main shared entity
133
150
  const mainSharedEntity = {
151
+ EntityType: 'adaptableEntity',
134
152
  Uuid: (0, Uuid_1.createUuid)(),
135
153
  Entity: adaptableObject,
136
154
  EntityDependencyIds: [],
@@ -175,10 +193,10 @@ class TeamSharingService {
175
193
  return Array.from(result.values());
176
194
  }
177
195
  getTeamSharingReferences(adaptableObject, module) {
178
- return this.adaptableApi.internalApi
196
+ var _a, _b;
197
+ return ((_b = (_a = this.adaptableApi.internalApi
179
198
  .getModuleService()
180
- .getModuleById(module)
181
- .getTeamSharingReferences(adaptableObject);
199
+ .getModuleById(module)) === null || _a === void 0 ? void 0 : _a.getTeamSharingReferences(adaptableObject)) !== null && _b !== void 0 ? _b : []);
182
200
  }
183
201
  getSharedEntityDependencies(input, allSharedEntities) {
184
202
  return input.EntityDependencyIds.map((dependencyId) => allSharedEntities.find((sharedEntity) => sharedEntity.Uuid === dependencyId)).filter((dependencyEntity) => !!dependencyEntity);
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { Action } from 'redux';
3
3
  import { AdaptableObject } from '../../../PredefinedConfig/Common/AdaptableObject';
4
4
  import { AdaptableObjectItemView, AdaptableObjectView, IModule } from '../../../Strategy/Interface/IModule';
5
- import { AccessLevel, SharedEntityConfig } from '../../../types';
5
+ import { AccessLevel, AdaptableSharedEntityConfig } from '../../../types';
6
6
  export declare const AdaptableObjectListItemView: React.FunctionComponent<{
7
7
  abObject: AdaptableObject;
8
8
  accessLevel?: AccessLevel;
@@ -16,7 +16,7 @@ export declare const AdaptableObjectListItemView: React.FunctionComponent<{
16
16
  entityType: string;
17
17
  handleOnEdit?: (tagName?: string) => void;
18
18
  items: AdaptableObjectItemView[];
19
- onShare?: (config: SharedEntityConfig) => void;
19
+ onShare?: (config: AdaptableSharedEntityConfig) => void;
20
20
  onSuspend?: () => void;
21
21
  onUnSuspend?: () => void;
22
22
  showActions?: boolean;
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { SimpleButtonProps } from '../../../components/SimpleButton';
3
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
3
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
4
4
  interface ButtonShareProps extends SimpleButtonProps {
5
- onShare: (config: SharedEntityConfig) => void;
5
+ onShare: (config: AdaptableSharedEntityConfig) => void;
6
6
  Header: string;
7
7
  }
8
8
  interface ButtonShareState {
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import * as Redux from 'redux';
3
3
  import { AccessLevel } from '../../../PredefinedConfig/Common/Entitlement';
4
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
4
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
5
5
  import { AdaptableObject } from '../../../PredefinedConfig/Common/AdaptableObject';
6
6
  import { SuspendableObject } from '../../../PredefinedConfig/Common/SuspendableObject';
7
7
  export interface EntityListActionButtonsProps extends React.ClassAttributes<EntityListActionButtons> {
8
8
  editClick?: () => void;
9
9
  cloneClick?: () => void;
10
- shareClick?: (config: SharedEntityConfig) => void;
10
+ shareClick?: (config: AdaptableSharedEntityConfig) => void;
11
11
  showEdit?: boolean;
12
12
  showClone?: boolean;
13
13
  showDelete?: boolean;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import * as Redux from 'redux';
3
3
  import { AdaptableObject } from '../../../PredefinedConfig/Common/AdaptableObject';
4
4
  import { ModuleInfo } from '../../../Strategy/Interface/IModule';
5
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
5
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
6
6
  import { AccessLevel } from '../../../PredefinedConfig/Common/Entitlement';
7
7
  export interface ModuleDetailProps extends React.ClassAttributes<ModuleDetail> {
8
8
  key: string;
@@ -12,7 +12,7 @@ export interface ModuleDetailProps extends React.ClassAttributes<ModuleDetail> {
12
12
  moduleInfo: ModuleInfo;
13
13
  accessLevel: AccessLevel;
14
14
  onEdit: () => void;
15
- onShare: (config: SharedEntityConfig) => void;
15
+ onShare: (config: AdaptableSharedEntityConfig) => void;
16
16
  onDelete: Redux.Action;
17
17
  showBold?: boolean;
18
18
  showEdit?: boolean;
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
2
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
3
3
  export interface AdaptablePopupTeamSharingProps {
4
4
  showPopup: boolean;
5
5
  header: string;
6
6
  onClose: () => void;
7
- onConfirm: (config: SharedEntityConfig) => void;
7
+ onConfirm: (config: AdaptableSharedEntityConfig) => void;
8
8
  }
9
9
  export declare const AdaptablePopupTeamSharing: (props: AdaptablePopupTeamSharingProps) => JSX.Element;
@@ -5,7 +5,7 @@ import { IColItem } from '../../UIInterfaces';
5
5
  import { AdaptableApi } from '../../../Api/AdaptableApi';
6
6
  import { ModuleInfo } from '../../../Strategy/Interface/IModule';
7
7
  import { AccessLevel } from '../../../PredefinedConfig/Common/Entitlement';
8
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
8
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
9
9
  export interface BaseRowProps<View> extends React.ClassAttributes<View> {
10
10
  colItems: IColItem[];
11
11
  api: AdaptableApi;
@@ -18,7 +18,7 @@ export interface BaseEntityRowProps<View> extends BaseRowProps<View> {
18
18
  moduleInfo: ModuleInfo;
19
19
  }
20
20
  export interface SharedEntityRowProps<View> extends BaseEntityRowProps<View> {
21
- onShare: (config: SharedEntityConfig) => void;
21
+ onShare: (config: AdaptableSharedEntityConfig) => void;
22
22
  teamSharingActivated: boolean;
23
23
  accessLevel: AccessLevel;
24
24
  onSuspend?: (adaptableObject: AdaptableObject) => void;
@@ -2,8 +2,8 @@ import { AdaptableColumn } from '../../../PredefinedConfig/Common/AdaptableColum
2
2
  import { ModuleViewPopupProps } from './ModuleViewPopupProps';
3
3
  import * as TeamSharingRedux from '../../../Redux/ActionsReducers/TeamSharingRedux';
4
4
  import { AdaptableObject } from '../../../PredefinedConfig/Common/AdaptableObject';
5
- import { SharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
5
+ import { AdaptableSharedEntityConfig } from '../../../PredefinedConfig/TeamSharingState';
6
6
  export interface ModuleSummaryProps<View> extends ModuleViewPopupProps<View> {
7
7
  summarisedColumn: AdaptableColumn;
8
- onShare: (entity: AdaptableObject, config: SharedEntityConfig) => TeamSharingRedux.TeamSharingShareAction;
8
+ onShare: (entity: AdaptableObject, config: AdaptableSharedEntityConfig) => TeamSharingRedux.TeamSharingShareAction;
9
9
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- import { SharedEntity } from '../../../types';
2
+ import { AdaptableSharedEntity } from '../../../types';
3
3
  export declare const Dependencies: React.FunctionComponent<{
4
- sharedEntity: SharedEntity;
4
+ sharedEntity: AdaptableSharedEntity;
5
5
  }>;
6
6
  export declare const SharedEntityDependencies: React.FunctionComponent<{
7
- data: SharedEntity;
7
+ data: AdaptableSharedEntity;
8
8
  }>;
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
- import { SharedEntity } from '../../../types';
2
+ import { AdaptableSharedEntity } from '../../../types';
3
3
  export declare const SharedEntityTypeItemView: React.FunctionComponent<{
4
- data: SharedEntity;
4
+ data: AdaptableSharedEntity;
5
5
  }>;
6
6
  export declare const getSharedEntityActiveStatusObjectView: (isDependency: boolean) => (props: {
7
- data: SharedEntity;
7
+ data: AdaptableSharedEntity;
8
8
  }) => JSX.Element;
9
- export declare const getSharedEntityStaleDepsItemView: (staleDependencies: SharedEntity[]) => () => JSX.Element;
9
+ export declare const getSharedEntityStaleDepsItemView: (staleDependencies: AdaptableSharedEntity[]) => () => JSX.Element;
@@ -14,13 +14,13 @@ const SharedEntityTypeItemView = (props) => {
14
14
  const moduleName = props.data.Module;
15
15
  const module = adaptable.ModuleService.getModuleById(moduleName);
16
16
  const sharedObject = props.data.Entity;
17
- const item = module.toView(sharedObject);
17
+ const item = module === null || module === void 0 ? void 0 : module.toView(sharedObject);
18
18
  return (React.createElement(React.Fragment, null,
19
19
  React.createElement(rebass_1.Flex, { mb: 2, mt: 2 },
20
20
  React.createElement(rebass_1.Flex, { mr: 2, alignItems: "center" },
21
21
  React.createElement(Tag_1.Tag, { style: { margin: 0 } }, props.data.Module)),
22
- isExpanded ? (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-collapse-button", onClick: () => setIsExpanded(false), icon: "arrow-up" }, "Collapse")) : (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-epxand-button", onClick: () => setIsExpanded(true), icon: "arrow-down" }, "Expand"))),
23
- isExpanded && (React.createElement(rebass_1.Box, { as: "ul", padding: 0, className: "ab-Shared-Entity-Shared-Object" },
22
+ item ? (isExpanded ? (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-collapse-button", onClick: () => setIsExpanded(false), icon: "arrow-up" }, "Collapse")) : (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-expand-button", onClick: () => setIsExpanded(true), icon: "arrow-down" }, "Expand"))) : null),
23
+ isExpanded && item && (React.createElement(rebass_1.Box, { as: "ul", padding: 0, className: "ab-Shared-Entity-Shared-Object" },
24
24
  React.createElement(AdaptableObjectList_1.AdaptableObjectListItem, { hideControls: true, data: item, module: module })))));
25
25
  };
26
26
  exports.SharedEntityTypeItemView = SharedEntityTypeItemView;
@@ -31,9 +31,8 @@ const getSharedEntityActiveStatusObjectView = (isDependency) => (props) => {
31
31
  const sharedEntity = props.data;
32
32
  const isAdaptableObjectPresentInLocalState = !!adaptable.api.internalApi
33
33
  .getModuleService()
34
- .getModuleById(sharedEntity.Module)
35
- .getModuleAdaptableObjects()
36
- .find((adaptableObject) => adaptableObject.Uuid === sharedEntity.Entity.Uuid);
34
+ .getModuleById('TeamSharing')
35
+ .isAdaptableObjectPresentInLocalState(sharedEntity);
37
36
  const isUpToDateAndActive = isAdaptableObjectPresentInLocalState &&
38
37
  sharedEntity.Type === 'Active' &&
39
38
  ((_a = activeEntries[sharedEntity.Entity.Uuid]) === null || _a === void 0 ? void 0 : _a.Revision) === sharedEntity.Revision;
@@ -49,11 +49,10 @@ class ThemePopupComponent extends React.Component {
49
49
  const isCustomTheme = this.props.api.themeApi
50
50
  .getUserThemes()
51
51
  .some((theme) => theme.Name === this.props.CurrentTheme);
52
- return (React.createElement(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed() },
52
+ return (React.createElement(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), button: React.createElement(ButtonNew_1.ButtonNew, { ml: 2, onClick: this.handleCreateNewTheme, accessLevel: this.props.accessLevel }) },
53
53
  React.createElement(FormLayout_1.default, null,
54
54
  React.createElement(FormLayout_1.FormRow, { label: "Current Theme:" },
55
- React.createElement(DropdownButton_1.default, { "data-name": "select-theme-dropdown", columns: ['label'], style: { width: '50%', minWidth: 200 }, placeholder: "Select theme", value: this.props.CurrentTheme, items: optionThemes, accessLevel: this.props.accessLevel }, currentThemeDescription),
56
- React.createElement(ButtonNew_1.ButtonNew, { ml: 2, onClick: this.handleCreateNewTheme, accessLevel: this.props.accessLevel }))),
55
+ React.createElement(DropdownButton_1.default, { "data-name": "select-theme-dropdown", columns: ['label'], style: { width: '50%', minWidth: 200 }, placeholder: "Select theme", value: this.props.CurrentTheme, items: optionThemes, accessLevel: this.props.accessLevel }, currentThemeDescription))),
57
56
  isCustomTheme && (React.createElement(rebass_1.Box, { mt: 3 },
58
57
  React.createElement(ThemeEditor_1.ThemeEditor, { accessLevel: this.props.accessLevel, theme: this.props.CurrentTheme })))));
59
58
  }
@@ -820,6 +820,27 @@ export declare const ADAPTABLE_METAMODEL: {
820
820
  kind: string;
821
821
  desc: string;
822
822
  };
823
+ AdaptableSharedEntity: {
824
+ name: string;
825
+ kind: string;
826
+ desc: string;
827
+ props: ({
828
+ name: string;
829
+ kind: string;
830
+ desc: string;
831
+ ref?: undefined;
832
+ } | {
833
+ name: string;
834
+ kind: string;
835
+ desc: string;
836
+ ref: string;
837
+ })[];
838
+ };
839
+ AdaptableSharedEntityConfig: {
840
+ name: string;
841
+ kind: string;
842
+ desc: string;
843
+ };
823
844
  AdaptableState: {
824
845
  name: string;
825
846
  kind: string;
@@ -1783,6 +1804,22 @@ export declare const ADAPTABLE_METAMODEL: {
1783
1804
  ref?: undefined;
1784
1805
  })[];
1785
1806
  };
1807
+ CustomSharedEntityConfig: {
1808
+ name: string;
1809
+ kind: string;
1810
+ desc: string;
1811
+ props: ({
1812
+ name: string;
1813
+ kind: string;
1814
+ desc: string;
1815
+ isOpt?: undefined;
1816
+ } | {
1817
+ name: string;
1818
+ kind: string;
1819
+ desc: string;
1820
+ isOpt: boolean;
1821
+ })[];
1822
+ };
1786
1823
  CustomSort: {
1787
1824
  name: string;
1788
1825
  kind: string;
@@ -2438,6 +2475,15 @@ export declare const ADAPTABLE_METAMODEL: {
2438
2475
  gridInfo?: undefined;
2439
2476
  noCode?: undefined;
2440
2477
  ref?: undefined;
2478
+ } | {
2479
+ name: string;
2480
+ kind: string;
2481
+ desc: string;
2482
+ isOpt: boolean;
2483
+ gridInfo?: undefined;
2484
+ noCode?: undefined;
2485
+ defVal?: undefined;
2486
+ ref?: undefined;
2441
2487
  } | {
2442
2488
  name: string;
2443
2489
  kind: string;
@@ -3797,23 +3843,17 @@ export declare const ADAPTABLE_METAMODEL: {
3797
3843
  desc: string;
3798
3844
  }[];
3799
3845
  };
3800
- SharedEntity: {
3846
+ SharedEntitiesContext: {
3801
3847
  name: string;
3802
3848
  kind: string;
3803
3849
  desc: string;
3804
- props: ({
3805
- name: string;
3806
- kind: string;
3807
- desc: string;
3808
- ref?: undefined;
3809
- } | {
3850
+ props: {
3810
3851
  name: string;
3811
3852
  kind: string;
3812
3853
  desc: string;
3813
- ref: string;
3814
- })[];
3854
+ }[];
3815
3855
  };
3816
- SharedEntityConfig: {
3856
+ SharedEntity: {
3817
3857
  name: string;
3818
3858
  kind: string;
3819
3859
  desc: string;
@@ -4090,16 +4130,18 @@ export declare const ADAPTABLE_METAMODEL: {
4090
4130
  isOpt?: undefined;
4091
4131
  })[];
4092
4132
  };
4093
- TeamSharingImportInfo: {
4094
- name: string;
4095
- kind: string;
4096
- desc: string;
4097
- };
4098
4133
  TeamSharingOptions: {
4099
4134
  name: string;
4100
4135
  kind: string;
4101
4136
  desc: string;
4102
4137
  props: ({
4138
+ name: string;
4139
+ kind: string;
4140
+ desc: string;
4141
+ isOpt: boolean;
4142
+ gridInfo?: undefined;
4143
+ defVal?: undefined;
4144
+ } | {
4103
4145
  name: string;
4104
4146
  kind: string;
4105
4147
  desc: string;
@@ -4111,8 +4153,8 @@ export declare const ADAPTABLE_METAMODEL: {
4111
4153
  kind: string;
4112
4154
  desc: string;
4113
4155
  defVal: string;
4114
- gridInfo?: undefined;
4115
4156
  isOpt?: undefined;
4157
+ gridInfo?: undefined;
4116
4158
  } | {
4117
4159
  name: string;
4118
4160
  kind: string;