@adaptabletools/adaptable 11.0.0-canary.3 → 11.0.0-canary.4

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 (37) hide show
  1. package/base.css +3 -0
  2. package/bundle.cjs.js +77 -77
  3. package/index.css +4 -0
  4. package/package.json +2 -2
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/Api/GridApi.d.ts +2 -1
  8. package/src/Api/Implementation/GridApiImpl.d.ts +2 -1
  9. package/src/Api/Implementation/InternalApiImpl.js +1 -1
  10. package/src/PredefinedConfig/Common/CellHighlightInfo.d.ts +1 -12
  11. package/src/PredefinedConfig/Common/RowHighlightInfo.d.ts +15 -0
  12. package/src/PredefinedConfig/Common/RowHighlightInfo.js +2 -0
  13. package/src/PredefinedConfig/Common/Types.d.ts +1 -1
  14. package/src/PredefinedConfig/SystemState.d.ts +2 -1
  15. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -5
  16. package/src/Redux/ActionsReducers/SystemRedux.js +13 -13
  17. package/src/Redux/Store/AdaptableStore.js +2 -2
  18. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -2
  19. package/src/View/Components/FilterForm/QuickFilterForm.js +2 -4
  20. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.d.ts +0 -3
  21. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +43 -88
  22. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +10 -0
  23. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +54 -0
  24. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +1 -3
  25. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +5 -13
  26. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +2 -0
  27. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +44 -0
  28. package/src/View/Dashboard/Dashboard.js +1 -2
  29. package/src/View/SpecialColumnSettingsWizardStep.js +1 -2
  30. package/src/agGrid/Adaptable.js +9 -12
  31. package/src/agGrid/agGridHelper.js +1 -2
  32. package/src/agGrid/agGridMenuHelper.js +4 -8
  33. package/src/metamodel/adaptable.metamodel.d.ts +9 -0
  34. package/src/metamodel/adaptable.metamodel.js +7 -0
  35. package/src/types.d.ts +2 -1
  36. package/version.d.ts +1 -1
  37. package/version.js +1 -1
@@ -9,19 +9,12 @@ const icons_1 = require("../../../../components/icons");
9
9
  const join_1 = tslib_1.__importDefault(require("../../../../components/utils/join"));
10
10
  const useGlobalEvent_1 = require("../../../../components/utils/useGlobalEvent");
11
11
  exports.Navigation = (props) => {
12
- var _a;
13
12
  const dispatch = react_redux_1.useDispatch();
14
13
  const handleKeyPress = React.useCallback((event) => {
15
14
  if ((event.ctrlKey || event.metaKey) &&
16
15
  (event.code === 'ArrowUp' || event.code === 'ArrowDown')) {
17
16
  const isKeyUp = event.code === 'ArrowUp';
18
- const currentIndex = props.menuItems.findIndex((item) => {
19
- var _a, _b;
20
- return item !== '-' &&
21
- (item.module === ((_a = props === null || props === void 0 ? void 0 : props.moduleInfo) === null || _a === void 0 ? void 0 : _a.ModuleName) ||
22
- // in case of custom panel
23
- item.label === ((_b = props === null || props === void 0 ? void 0 : props.activeCustomSettingPanel) === null || _b === void 0 ? void 0 : _b.name));
24
- });
17
+ const currentIndex = props.menuItems.findIndex((item) => item !== '-' && (item.module === props.activeItem || item.label === props.activeItem));
25
18
  let nextMenuItem = null;
26
19
  if (isKeyUp) {
27
20
  let candidate = props.menuItems[currentIndex - 1] !== '-'
@@ -39,19 +32,18 @@ exports.Navigation = (props) => {
39
32
  dispatch(nextMenuItem.reduxAction);
40
33
  }
41
34
  }
42
- }, [(_a = props.moduleInfo) === null || _a === void 0 ? void 0 : _a.ModuleName, props.menuItems]);
35
+ }, [props.activeItem, props.menuItems]);
43
36
  useGlobalEvent_1.useGlobalEvent('keydown', handleKeyPress);
44
37
  return (React.createElement("nav", { className: "ab-Adaptable-Popup__Navigation" },
45
38
  React.createElement("ul", { className: "ab-Adaptable-Popup__Navigation__List" }, props.menuItems.map((menuItem, index) => {
46
- var _a, _b, _c, _d, _e, _f;
39
+ var _a, _b, _c, _d;
47
40
  const baseClassName = 'ab-Adaptable-Popup__Navigation__List__Item';
48
41
  if (menuItem === '-') {
49
42
  return React.createElement("li", { key: `separator-${index}`, className: `${baseClassName}__Separator` });
50
43
  }
51
- const isActive = ((_a = props === null || props === void 0 ? void 0 : props.moduleInfo) === null || _a === void 0 ? void 0 : _a.ModuleName) === menuItem.module ||
52
- menuItem.label === ((_b = props === null || props === void 0 ? void 0 : props.activeCustomSettingPanel) === null || _b === void 0 ? void 0 : _b.name);
44
+ const isActive = props.activeItem === menuItem.module || menuItem.label === props.activeItem;
53
45
  const className = join_1.default(baseClassName, isActive && `${baseClassName}--active`);
54
- let customIcon = (_f = (_e = (_d = (_c = props.customSettingsPanels) === null || _c === void 0 ? void 0 : _c.find) === null || _d === void 0 ? void 0 : _d.call(_c, (customSettingPanel) => customSettingPanel.name === menuItem.label)) === null || _e === void 0 ? void 0 : _e.icon) !== null && _f !== void 0 ? _f : null;
46
+ let customIcon = (_d = (_c = (_b = (_a = props.customSettingsPanels) === null || _a === void 0 ? void 0 : _a.find) === null || _b === void 0 ? void 0 : _b.call(_a, (customSettingPanel) => customSettingPanel.name === menuItem.label)) === null || _c === void 0 ? void 0 : _c.icon) !== null && _d !== void 0 ? _d : null;
55
47
  return (React.createElement("li", { className: className, key: menuItem.label },
56
48
  React.createElement("button", { type: "button", className: `${baseClassName}__Button`, onClick: () => {
57
49
  dispatch(menuItem.reduxAction);
@@ -0,0 +1,2 @@
1
+ import { AdaptableMenuItem } from '../../../../../types';
2
+ export declare const useMenuItems: () => (AdaptableMenuItem | '-')[];
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMenuItems = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const react_redux_1 = require("react-redux");
7
+ const DefaultSettingsPanel_1 = require("../../../../Utilities/Defaults/DefaultSettingsPanel");
8
+ const AdaptableContext_1 = require("../../../AdaptableContext");
9
+ const PopupRedux = tslib_1.__importStar(require("../../../../Redux/ActionsReducers/PopupRedux"));
10
+ exports.useMenuItems = () => {
11
+ const adaptable = AdaptableContext_1.useAdaptable();
12
+ const settingsPanelOptions = adaptable.adaptableOptions.settingsPanelOptions;
13
+ const allMenuItems = react_redux_1.useSelector((state) => { var _a; return (_a = state === null || state === void 0 ? void 0 : state.Grid) === null || _a === void 0 ? void 0 : _a.ModuleDropdownMenuItems; });
14
+ return React.useMemo(() => {
15
+ var _a;
16
+ let navigationItems = (_a = settingsPanelOptions === null || settingsPanelOptions === void 0 ? void 0 : settingsPanelOptions.navigation) === null || _a === void 0 ? void 0 : _a.items;
17
+ if (!navigationItems) {
18
+ navigationItems = [...DefaultSettingsPanel_1.DEFAULT_NAVIGATION_ITEMS];
19
+ if (settingsPanelOptions.customSettingsPanels) {
20
+ navigationItems.push(...settingsPanelOptions.customSettingsPanels.map((panel) => panel.name));
21
+ }
22
+ }
23
+ const visibleItems = allMenuItems.filter((item) => item.module !== 'General' && !DefaultSettingsPanel_1.ACTION_POPUPS.includes(item.module) && item.isVisible);
24
+ return navigationItems
25
+ .map((moduleName) => {
26
+ var _a, _b;
27
+ if (moduleName === '-') {
28
+ return moduleName;
29
+ }
30
+ const customSettingsPanel = (_b = (_a = settingsPanelOptions === null || settingsPanelOptions === void 0 ? void 0 : settingsPanelOptions.customSettingsPanels) === null || _a === void 0 ? void 0 : _a.find) === null || _b === void 0 ? void 0 : _b.call(_a, (panel) => panel.name === moduleName);
31
+ let customPanelMenuItem = null;
32
+ if (customSettingsPanel) {
33
+ customPanelMenuItem = {
34
+ label: customSettingsPanel.name,
35
+ module: 'CustomSettingsPanelModule',
36
+ isVisible: true,
37
+ reduxAction: PopupRedux.PopupShowScreen('CustomSettingsPanelModule', customSettingsPanel.name),
38
+ };
39
+ }
40
+ return customPanelMenuItem || visibleItems.find((item) => item.module === moduleName);
41
+ })
42
+ .filter(Boolean);
43
+ }, [allMenuItems]);
44
+ };
@@ -69,8 +69,7 @@ const DashboardComponent = (props) => {
69
69
  const renderModuleButtons = () => {
70
70
  let shortcutsArray = props.DashboardState.ModuleButtons;
71
71
  let shortcuts = null;
72
- const alwaysShowInDashboard = props.api.internalApi.getAdaptableOptions().settingsPanelOptions
73
- .alwaysShowInDashboard;
72
+ const alwaysShowInDashboard = props.api.internalApi.getAdaptableOptions().settingsPanelOptions.alwaysShowInDashboard;
74
73
  const shouldAddSettingsPanel = alwaysShowInDashboard &&
75
74
  !props.api.internalApi.getEntitlementService().isModuleHiddenEntitlement('SettingsPanel');
76
75
  if (shouldAddSettingsPanel && !shortcutsArray.includes('SettingsPanel')) {
@@ -12,8 +12,7 @@ const AdaptableContext_1 = require("./AdaptableContext");
12
12
  exports.SpecialColumnSettingsWizardStep = (props) => {
13
13
  var _a, _b;
14
14
  const adaptable = AdaptableContext_1.useAdaptable();
15
- const possibleColumnTypes = adaptable.api.internalApi.getAdaptableOptions().userInterfaceOptions
16
- .columnTypes;
15
+ const possibleColumnTypes = adaptable.api.internalApi.getAdaptableOptions().userInterfaceOptions.columnTypes;
17
16
  const { Filterable, Resizable, Groupable, Sortable, Pivotable, Aggregatable, SuppressMenu, SuppressMovable, } = (_a = props.settings) !== null && _a !== void 0 ? _a : {};
18
17
  const handleColumnTypeChange = (columnType, checked) => {
19
18
  var _a, _b, _c;
@@ -340,7 +340,8 @@ class Adaptable {
340
340
  // TODO: if a custom 'aggFunc' property is defined (see setupColumnAggFunc()), it won't be evaluated
341
341
  if (!this.getDefaultGroupOrderComparator(this.gridOptions) &&
342
342
  this.adaptableOptions.generalOptions.autoOrderGroupedColumns) {
343
- this.gridOptions.defaultGroupOrderComparator = this.agGridHelper.runAdaptableGroupComparerFunction();
343
+ this.gridOptions.defaultGroupOrderComparator =
344
+ this.agGridHelper.runAdaptableGroupComparerFunction();
344
345
  }
345
346
  // we prefer the grid to be NOT instantiated so that we can do it
346
347
  // perhaps in future we will force instantiation only?
@@ -1942,10 +1943,8 @@ class Adaptable {
1942
1943
  ];
1943
1944
  }
1944
1945
  getColDefsForFreeTextColumns() {
1945
- const specialColumnsAreFilterable = this.api.internalApi.getAdaptableOptions().filterOptions
1946
- .enableFilterOnSpecialColumns;
1947
- const defaultFreeTextColumnSettings = ObjectFactory_1.CreateEmptyFreeTextColumn(specialColumnsAreFilterable)
1948
- .FreeTextColumnSettings;
1946
+ const specialColumnsAreFilterable = this.api.internalApi.getAdaptableOptions().filterOptions.enableFilterOnSpecialColumns;
1947
+ const defaultFreeTextColumnSettings = ObjectFactory_1.CreateEmptyFreeTextColumn(specialColumnsAreFilterable).FreeTextColumnSettings;
1949
1948
  return this.api.freeTextColumnApi.getAllFreeTextColumn().map((freeTextColumn) => {
1950
1949
  var _a;
1951
1950
  const freeTextColumnSettings = Object.assign(Object.assign({}, defaultFreeTextColumnSettings), freeTextColumn.FreeTextColumnSettings);
@@ -2089,13 +2088,13 @@ class Adaptable {
2089
2088
  .enableFilterOnSpecialColumns
2090
2089
  ? this.adaptableOptions.filterOptions.enableFilterOnSpecialColumns
2091
2090
  : true;
2092
- const defaultCalculatedColumnSettings = ObjectFactory_1.CreateEmptyCalculatedColumn(specialColumnsAreFilterable)
2093
- .CalculatedColumnSettings;
2091
+ const defaultCalculatedColumnSettings = ObjectFactory_1.CreateEmptyCalculatedColumn(specialColumnsAreFilterable).CalculatedColumnSettings;
2094
2092
  return this.api.calculatedColumnApi.getAllCalculatedColumn().map((calculatedColumn) => {
2095
2093
  var _a;
2096
2094
  const calculatedColumnSettings = Object.assign(Object.assign({}, defaultCalculatedColumnSettings), calculatedColumn.CalculatedColumnSettings);
2097
2095
  if (!calculatedColumnSettings.DataType) {
2098
- calculatedColumnSettings.DataType = this.CalculatedColumnExpressionService.GetCalculatedColumnDataType((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression);
2096
+ calculatedColumnSettings.DataType =
2097
+ this.CalculatedColumnExpressionService.GetCalculatedColumnDataType((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression);
2099
2098
  }
2100
2099
  const columnTypes = [
2101
2100
  GeneralConstants_1.AB_SPECIAL_COLUMN,
@@ -2474,8 +2473,7 @@ class Adaptable {
2474
2473
  this.onSortChanged();
2475
2474
  this.debouncedSetSelectedCells();
2476
2475
  });
2477
- const showGroupingTotalsAsHeader = this.adaptableOptions.generalOptions
2478
- .showGroupingTotalsAsHeader;
2476
+ const showGroupingTotalsAsHeader = this.adaptableOptions.generalOptions.showGroupingTotalsAsHeader;
2479
2477
  /**
2480
2478
  * Use Case: Model has updated
2481
2479
  * Action: If user has set to see grouping totals as header create a pinned row (bit of a hack)
@@ -2909,8 +2907,7 @@ class Adaptable {
2909
2907
  // set the default to the AG Grid provided values
2910
2908
  // from https://github.com/ag-grid/ag-grid/blob/v26.1.0/community-modules/core/src/ts/columns/columnModel.ts#L2515
2911
2909
  let resultHeaderName = userHeaderName !== null && userHeaderName !== void 0 ? userHeaderName : StringExtensions_1.StringExtensions.CamelCaseToHumanText(col.getColDef().field);
2912
- const layoutCustomHeader = (_a = this.api.layoutApi.getCurrentLayout()
2913
- .ColumnHeadersMap) === null || _a === void 0 ? void 0 : _a[col.getColId()];
2910
+ const layoutCustomHeader = (_a = this.api.layoutApi.getCurrentLayout().ColumnHeadersMap) === null || _a === void 0 ? void 0 : _a[col.getColId()];
2914
2911
  if (layoutCustomHeader) {
2915
2912
  resultHeaderName = layoutCustomHeader;
2916
2913
  }
@@ -248,8 +248,7 @@ class agGridHelper {
248
248
  }
249
249
  }
250
250
  // lets set this here one as the function cannot change the result so dont need to run it each time
251
- let excludeColumnFromQuickSearch = this.adaptable.adaptableOptions.searchOptions
252
- .excludeColumnFromQuickSearch;
251
+ let excludeColumnFromQuickSearch = this.adaptable.adaptableOptions.searchOptions.excludeColumnFromQuickSearch;
253
252
  if (excludeColumnFromQuickSearch) {
254
253
  if (excludeColumnFromQuickSearch(abColumn)) {
255
254
  abColumn.isExcludedFromQuickSearch = true;
@@ -21,8 +21,7 @@ class agGridMenuHelper {
21
21
  let userColumnMenuItems = [];
22
22
  //First get Ag Grid Column Items
23
23
  agGridColumnMenuItems.push(...this.createAgGridColumnMenuItems(originalgetMainMenuItems, params));
24
- let showAdaptableColumnMenu = this.adaptable.adaptableOptions.menuOptions
25
- .showAdaptableColumnMenu;
24
+ let showAdaptableColumnMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableColumnMenu;
26
25
  let hasAdaptableColumnMenuItems = showAdaptableColumnMenu == null || showAdaptableColumnMenu !== false;
27
26
  if (hasAdaptableColumnMenuItems) {
28
27
  agGridColumnMenuItems.push('separator');
@@ -56,8 +55,7 @@ class agGridMenuHelper {
56
55
  let agGridContextMenuItems = [];
57
56
  let adaptableContextMenuItems = [];
58
57
  let userContextMenuItems = [];
59
- let showAdaptableContextMenu = this.adaptable.adaptableOptions.menuOptions
60
- .showAdaptableContextMenu;
58
+ let showAdaptableContextMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableContextMenu;
61
59
  let hasAdaptableContextMenuItems = showAdaptableContextMenu == null || showAdaptableContextMenu !== false;
62
60
  let userDefinedContextMenuItems = this.adaptable.adaptableOptions.menuOptions.contextMenuItems;
63
61
  let hasUserDefinedContextMenuItems = ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(userDefinedContextMenuItems);
@@ -285,8 +283,7 @@ class agGridMenuHelper {
285
283
  // here we create agGrid Menu items based on Adaptable Menu Items
286
284
  // user has ability to decide whether to show or not
287
285
  let contextMenuItems = [];
288
- let showAdaptableContextMenu = this.adaptable.adaptableOptions.menuOptions
289
- .showAdaptableContextMenu;
286
+ let showAdaptableContextMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableContextMenu;
290
287
  if (showAdaptableContextMenu == null || showAdaptableContextMenu !== false) {
291
288
  adaptableMenuItems.forEach((adaptableMenuItem) => {
292
289
  if (adaptableMenuItem) {
@@ -321,8 +318,7 @@ class agGridMenuHelper {
321
318
  // method to get all the Adaptable Menu Items - together with running the function where user can choose whether or not to display
322
319
  getAdaptableMenuItemsColumnHeader(adaptableColumn, menuContext) {
323
320
  const adaptableMenuItems = [];
324
- let showAdaptableColumnMenu = this.adaptable.adaptableOptions.menuOptions
325
- .showAdaptableColumnMenu;
321
+ let showAdaptableColumnMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableColumnMenu;
326
322
  let runCheck = showAdaptableColumnMenu == null || showAdaptableColumnMenu !== false;
327
323
  // if (adaptableColumn != null) {
328
324
  this.adaptable.adaptableModules.forEach((s) => {
@@ -873,6 +873,14 @@ export declare const ADAPTABLE_METAMODEL: {
873
873
  kind: string;
874
874
  description: string;
875
875
  uiLabel: string;
876
+ reference?: undefined;
877
+ isOptional?: undefined;
878
+ } | {
879
+ name: string;
880
+ kind: string;
881
+ description: string;
882
+ uiLabel: string;
883
+ reference: string;
876
884
  isOptional?: undefined;
877
885
  } | {
878
886
  name: string;
@@ -880,6 +888,7 @@ export declare const ADAPTABLE_METAMODEL: {
880
888
  description: string;
881
889
  uiLabel: string;
882
890
  isOptional: boolean;
891
+ reference?: undefined;
883
892
  })[];
884
893
  };
885
894
  CellSummaryApi: {
@@ -2245,6 +2245,13 @@ exports.ADAPTABLE_METAMODEL = {
2245
2245
  "description": "Id of Column containing Cell",
2246
2246
  "uiLabel": "Column Id"
2247
2247
  },
2248
+ {
2249
+ "name": "highlightStyle",
2250
+ "kind": "REFERENCE",
2251
+ "description": "Adaptable Style to use in the Cell Highlight",
2252
+ "uiLabel": "Highlight Style",
2253
+ "reference": "AdaptableStyle"
2254
+ },
2248
2255
  {
2249
2256
  "name": "primaryKeyValue",
2250
2257
  "kind": "unknown",
package/src/types.d.ts CHANGED
@@ -107,7 +107,8 @@ export type { FDC3Context, InstrumentContext } from './PredefinedConfig/Common/F
107
107
  export type { AdaptableScope } from './PredefinedConfig/Common/AdaptableScope';
108
108
  export type { AdaptableStyle } from './PredefinedConfig/Common/AdaptableStyle';
109
109
  export type { AdaptableIcon } from './PredefinedConfig/Common/AdaptableIcon';
110
- export type { CellHighlightInfo, RowHighlightInfo, } from './PredefinedConfig/Common/CellHighlightInfo';
110
+ export type { CellHighlightInfo } from './PredefinedConfig/Common/CellHighlightInfo';
111
+ export type { RowHighlightInfo } from './PredefinedConfig/Common/RowHighlightInfo';
111
112
  export type { ColumnSort } from './PredefinedConfig/Common/ColumnSort';
112
113
  export type { DataChangedInfo } from './PredefinedConfig/Common/DataChangedInfo';
113
114
  export type { DataUpdateConfig } from './PredefinedConfig/Common/DataUpdateConfig';
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "11.0.0-canary.3";
1
+ declare const _default: "11.0.0-canary.4";
2
2
  export default _default;
package/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '11.0.0-canary.3'; // PLEASE DONT UPDATE THIS!!! - will be updated at build time with the correct version
3
+ exports.default = '11.0.0-canary.4'; // PLEASE DONT UPDATE THIS!!! - will be updated at build time with the correct version