@adaptabletools/adaptable 12.0.0-canary.0 → 12.0.0-canary.1

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 (77) hide show
  1. package/base.css +546 -269
  2. package/bundle.cjs.js +102 -102
  3. package/index.css +616 -266
  4. package/package.json +2 -2
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableOptions/EditOptions.d.ts +4 -5
  8. package/src/AdaptableOptions/ExportOptions.d.ts +4 -7
  9. package/src/AdaptableOptions/GeneralOptions.d.ts +5 -2
  10. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +19 -1
  11. package/src/Api/ColumnApi.d.ts +7 -2
  12. package/src/Api/EventApi.d.ts +11 -0
  13. package/src/Api/Events/SearchChanged.d.ts +1 -1
  14. package/src/Api/ExportApi.d.ts +2 -2
  15. package/src/Api/FilterApi.d.ts +69 -1
  16. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -2
  17. package/src/Api/Implementation/ColumnApiImpl.js +15 -14
  18. package/src/Api/Implementation/ConfigApiImpl.js +1 -1
  19. package/src/Api/Implementation/ExportApiImpl.d.ts +2 -2
  20. package/src/Api/Implementation/FilterApiImpl.d.ts +16 -1
  21. package/src/Api/Implementation/FilterApiImpl.js +141 -0
  22. package/src/Api/Implementation/GridApiImpl.js +7 -3
  23. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -15
  24. package/src/Api/Implementation/LayoutApiImpl.js +0 -152
  25. package/src/Api/Implementation/PredicateApiImpl.d.ts +2 -0
  26. package/src/Api/Implementation/PredicateApiImpl.js +18 -0
  27. package/src/Api/LayoutApi.d.ts +1 -72
  28. package/src/Api/PredicateApi.d.ts +7 -0
  29. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +1 -1
  30. package/src/PredefinedConfig/Common/FormContext.d.ts +8 -0
  31. package/src/PredefinedConfig/Common/FormContext.js +2 -0
  32. package/src/Redux/ActionsReducers/LayoutRedux.js +0 -1
  33. package/src/Redux/ActionsReducers/PopupRedux.d.ts +3 -2
  34. package/src/Strategy/AdaptableModuleBase.js +1 -2
  35. package/src/Strategy/BulkUpdateModule.js +3 -4
  36. package/src/Strategy/CellSummaryModule.js +1 -2
  37. package/src/Strategy/FilterModule.js +15 -18
  38. package/src/Strategy/LayoutModule.js +1 -0
  39. package/src/Strategy/PlusMinusModule.js +1 -4
  40. package/src/Strategy/SmartEditModule.js +2 -2
  41. package/src/Utilities/Constants/GeneralConstants.d.ts +2 -0
  42. package/src/Utilities/Constants/GeneralConstants.js +3 -1
  43. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +2 -0
  44. package/src/Utilities/Services/CalculatedColumnExpressionService.js +6 -7
  45. package/src/Utilities/Services/RowEditService.d.ts +1 -0
  46. package/src/Utilities/Services/RowEditService.js +34 -2
  47. package/src/View/BulkUpdate/BulkUpdatePopup.js +2 -3
  48. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -3
  49. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +4 -5
  50. package/src/View/CellSummary/CellSummaryDetails.js +2 -2
  51. package/src/View/Components/FilterForm/FilterForm.js +1 -1
  52. package/src/View/Components/FilterForm/QuickFilterForm.js +1 -1
  53. package/src/View/Components/PreviewResultsPanel.js +3 -3
  54. package/src/View/Components/WizardSummaryPage.js +2 -2
  55. package/src/View/Filter/ActiveFiltersPanel.js +1 -1
  56. package/src/View/Filter/FilterSummary.js +1 -1
  57. package/src/View/Filter/FilterViewPanel.js +2 -2
  58. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +4 -5
  59. package/src/View/GridInfo/ColumnInfoComponent.js +1 -1
  60. package/src/View/GridInfo/GridInfoPopup.js +1 -1
  61. package/src/View/UIHelper.js +6 -6
  62. package/src/agGrid/Adaptable.js +25 -11
  63. package/src/agGrid/FilterWrapper.js +2 -2
  64. package/src/agGrid/agGridHelper.d.ts +2 -3
  65. package/src/agGrid/agGridHelper.js +37 -33
  66. package/src/agGrid/rowEditIcons.d.ts +1 -0
  67. package/src/agGrid/rowEditIcons.js +2 -1
  68. package/src/components/InfiniteTable/index.js +1 -0
  69. package/src/components/List/GridList/index.js +1 -1
  70. package/src/components/icons/add-row.d.ts +3 -0
  71. package/src/components/icons/add-row.js +7 -0
  72. package/src/components/icons/index.js +2 -0
  73. package/src/metamodel/adaptable.metamodel.d.ts +1 -1
  74. package/src/metamodel/adaptable.metamodel.js +122 -89
  75. package/src/types.d.ts +3 -2
  76. package/version.d.ts +1 -1
  77. package/version.js +1 -1
@@ -3,8 +3,7 @@ import { LayoutApi } from '../LayoutApi';
3
3
  import { LayoutState, Layout } from '../../PredefinedConfig/LayoutState';
4
4
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
5
5
  import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
6
- import { ColumnFilter, LayoutAssociatedObject } from '../../types';
7
- import { RowNode } from '@ag-grid-community/all-modules';
6
+ import { LayoutAssociatedObject } from '../../types';
8
7
  export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
9
8
  getLayoutState(): LayoutState;
10
9
  shouldAutoSaveLayout: (layout?: Layout) => boolean;
@@ -43,19 +42,6 @@ export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
43
42
  isCurrentLayoutDefault(): boolean;
44
43
  areExpandedRowGroupsSavedInLayouts(): boolean;
45
44
  isObjectAvailableInCurrentLayout(adaptableObject: LayoutAssociatedObject): boolean;
46
- getAllColumnFilter(): ColumnFilter[];
47
- getColumnFilterById(id: ColumnFilter['Uuid']): ColumnFilter;
48
- setColumnFilter(columnFilters: ColumnFilter[]): ColumnFilter[] | null;
49
- clearColumnFilter(columnFilter: ColumnFilter): void;
50
- clearColumnFilterByColumns(columns: string[]): void;
51
- clearColumnFilterByColumn(column: string): void;
52
- clearAllColumnFilter(): void;
53
- clearAndSetColumnFilter(columnFilters: ColumnFilter[]): void;
54
- getAllColumnFilterForColumn(column: string): ColumnFilter[];
55
- createColumnFilterForCell(columnId: string, primarykeyValues: any[]): ColumnFilter | null;
56
- columnFilterToString(columnFilter: ColumnFilter): string;
57
- columnFiltersToString(columnFilters: ColumnFilter[]): string;
58
- evaluateColumnFilter(columnFilter: ColumnFilter, node: RowNode): boolean;
59
45
  removeColumnFromCurrentLayout(columnId: string): void;
60
46
  removeColumnFromAllLayouts(columnId: string): void;
61
47
  removeColumnFromLayout(columnId: string, layoutName: string): void;
@@ -321,158 +321,6 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
321
321
  ? true
322
322
  : (_a = adaptableObject.Tags) === null || _a === void 0 ? void 0 : _a.map((tag) => tag).includes(this.getCurrentLayoutName());
323
323
  }
324
- getAllColumnFilter() {
325
- var _a;
326
- const currentLayout = this.getCurrentLayout();
327
- return (_a = currentLayout.ColumnFilters) !== null && _a !== void 0 ? _a : [];
328
- }
329
- getColumnFilterById(id) {
330
- var _a;
331
- return (_a = this.getAllColumnFilter()) === null || _a === void 0 ? void 0 : _a.find((columnFilter) => columnFilter.Uuid === id);
332
- }
333
- setColumnFilter(columnFilters) {
334
- columnFilters.forEach((columnFilter) => {
335
- if (!columnFilter.Predicate) {
336
- LoggingHelper_1.LogAdaptableWarning('Column Filter has no Predicate', columnFilter);
337
- }
338
- else {
339
- const isValidPredicate = this.adaptable.api.predicateApi.isValidPredicate(columnFilter.Predicate);
340
- if (!isValidPredicate) {
341
- LoggingHelper_1.LogAdaptableWarning('Column Filter Predicate is not valid', columnFilter);
342
- }
343
- else {
344
- this.addUidToAdaptableObject(columnFilter);
345
- if (this.getAllColumnFilter().find((cf) => cf.ColumnId == columnFilter.ColumnId)) {
346
- this.dispatchAction(LayoutRedux.LayoutColumnFilterSet(columnFilter));
347
- }
348
- else {
349
- this.dispatchAction(LayoutRedux.LayoutColumnFilterAdd(columnFilter));
350
- }
351
- }
352
- return columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.map((columnFilter) => this.getColumnFilterById(columnFilter.Uuid));
353
- }
354
- });
355
- return null;
356
- }
357
- clearColumnFilter(columnFilter) {
358
- this.dispatchAction(LayoutRedux.LayoutColumnFilterClear(columnFilter));
359
- }
360
- clearColumnFilterByColumns(columns) {
361
- columns.forEach((c) => {
362
- this.clearColumnFilterByColumn(c);
363
- });
364
- }
365
- clearColumnFilterByColumn(column) {
366
- let columnFiltersForColumn = this.getAllColumnFilterForColumn(column);
367
- if (columnFiltersForColumn) {
368
- columnFiltersForColumn.forEach((cf) => {
369
- this.dispatchAction(LayoutRedux.LayoutColumnFilterClear(cf));
370
- });
371
- this.adaptable.clearColumnFiltering([column]);
372
- }
373
- }
374
- clearAllColumnFilter() {
375
- this.dispatchAction(LayoutRedux.LayoutColumnFilterClearAll());
376
- this.adaptable.clearGridFiltering();
377
- }
378
- clearAndSetColumnFilter(columnFilters) {
379
- this.clearAllColumnFilter();
380
- columnFilters.forEach((columnFilter) => {
381
- if (this.getAllColumnFilter().find((cf) => cf.ColumnId == columnFilter.ColumnId)) {
382
- this.dispatchAction(LayoutRedux.LayoutColumnFilterSet(columnFilter));
383
- }
384
- else {
385
- this.dispatchAction(LayoutRedux.LayoutColumnFilterAdd(columnFilter));
386
- }
387
- });
388
- }
389
- getAllColumnFilterForColumn(column) {
390
- let columnFilters = this.getAllColumnFilter();
391
- if (columnFilters) {
392
- return columnFilters.filter((cf) => cf.ColumnId == column);
393
- }
394
- else {
395
- return [];
396
- }
397
- }
398
- createColumnFilterForCell(columnId, primarykeyValues) {
399
- let cellValues = [];
400
- let predicateId;
401
- if (primarykeyValues.length == 1) {
402
- const normalisedValue = this.adaptable.api.gridApi.getCellNormalisedValue(primarykeyValues[0], columnId);
403
- if (normalisedValue) {
404
- cellValues.push(normalisedValue);
405
- const dataType = this.adaptable.api.columnApi.getColumnDataTypeFromColumnId(columnId);
406
- if (dataType) {
407
- if (dataType == 'Number') {
408
- predicateId = 'Equals';
409
- }
410
- else if (dataType == 'Date') {
411
- predicateId = 'On';
412
- }
413
- else if (dataType == 'String') {
414
- predicateId = 'Is';
415
- }
416
- else {
417
- predicateId = 'Equals';
418
- }
419
- }
420
- }
421
- }
422
- else {
423
- primarykeyValues.forEach((pk) => {
424
- const displayValue = this.adaptable.api.gridApi.getCellDisplayValue(pk, columnId);
425
- if (displayValue && !cellValues.includes(displayValue)) {
426
- cellValues.push(displayValue);
427
- }
428
- });
429
- predicateId = 'Values';
430
- }
431
- const filter = {
432
- ColumnId: columnId,
433
- Predicate: {
434
- PredicateId: predicateId,
435
- Inputs: [...new Set(cellValues)],
436
- },
437
- };
438
- const [savedFilter] = this.setColumnFilter([filter]) || [null];
439
- return savedFilter;
440
- }
441
- columnFilterToString(columnFilter) {
442
- const friendlyName = this.adaptable.api.columnApi.getFriendlyNameFromColumnId(columnFilter.ColumnId);
443
- return ('[' +
444
- friendlyName +
445
- '] ' +
446
- this.adaptable.api.predicateApi.predicateToString(columnFilter.Predicate));
447
- }
448
- columnFiltersToString(columnFilters) {
449
- return columnFilters.map((cf) => this.columnFilterToString(cf)).join(', ');
450
- }
451
- evaluateColumnFilter(columnFilter, node) {
452
- var _a;
453
- if (!columnFilter.Predicate) {
454
- return true;
455
- }
456
- if ((_a = columnFilter.Predicate.Inputs) === null || _a === void 0 ? void 0 : _a.some((input) => StringExtensions_1.default.IsNullOrEmpty(input))) {
457
- return true;
458
- }
459
- const column = this.adaptable.api.columnApi.getColumnFromId(columnFilter.ColumnId);
460
- if (!column) {
461
- return true;
462
- }
463
- const gridCell = this.adaptable.api.gridApi.getGridCellFromRowNode(node, columnFilter.ColumnId);
464
- if (!gridCell) {
465
- return true;
466
- }
467
- let value = gridCell.normalisedValue;
468
- return this.adaptable.api.predicateApi.handlePredicate(columnFilter.Predicate, {
469
- value: value,
470
- oldValue: null,
471
- displayValue: gridCell.displayValue,
472
- node,
473
- column,
474
- }, true);
475
- }
476
324
  removeColumnFromCurrentLayout(columnId) {
477
325
  this.removeColumnFromLayout(columnId, this.getCurrentLayoutName());
478
326
  }
@@ -1,6 +1,7 @@
1
1
  import { ApiBase } from './ApiBase';
2
2
  import { PredicateApi } from '../PredicateApi';
3
3
  import { AdaptablePredicateDef, AdaptablePredicate, PredicateDefHandlerParams, ModuleScope } from '../../PredefinedConfig/Common/AdaptablePredicate';
4
+ import { AdaptableColumnDataType, SystemFilterPredicateId } from '../../types';
4
5
  export declare class PredicateApiImpl extends ApiBase implements PredicateApi {
5
6
  getPredicateDefs(): AdaptablePredicateDef[];
6
7
  getSystemPredicateDefs(): AdaptablePredicateDef[];
@@ -12,4 +13,5 @@ export declare class PredicateApiImpl extends ApiBase implements PredicateApi {
12
13
  predicateToString(predicate: AdaptablePredicate): string | undefined;
13
14
  isValidPredicate(predicate: AdaptablePredicate | undefined): boolean;
14
15
  handlePredicate(predicate: AdaptablePredicate | undefined, params: Omit<PredicateDefHandlerParams, 'api' | 'inputs'>, defaultReturn: boolean): boolean;
16
+ getEqualityPredicateForDataType(dataType: AdaptableColumnDataType): SystemFilterPredicateId;
15
17
  }
@@ -78,5 +78,23 @@ class PredicateApiImpl extends ApiBase_1.ApiBase {
78
78
  return false;
79
79
  }
80
80
  }
81
+ getEqualityPredicateForDataType(dataType) {
82
+ let predicateId;
83
+ switch (dataType) {
84
+ case 'Number':
85
+ predicateId = 'Equals';
86
+ break;
87
+ case 'Date':
88
+ predicateId = 'On';
89
+ break;
90
+ case 'String':
91
+ predicateId = 'Is';
92
+ break;
93
+ default:
94
+ predicateId = 'Equals';
95
+ break;
96
+ }
97
+ return predicateId;
98
+ }
81
99
  }
82
100
  exports.PredicateApiImpl = PredicateApiImpl;
@@ -1,5 +1,4 @@
1
- import { RowNode } from '@ag-grid-community/all-modules';
2
- import { AdaptableColumn, ColumnFilter, ColumnSort, LayoutAssociatedObject } from '../../types';
1
+ import { AdaptableColumn, ColumnSort, LayoutAssociatedObject } from '../../types';
3
2
  import { LayoutState, Layout } from '../PredefinedConfig/LayoutState';
4
3
  /**
5
4
  * Provides run-time access to the Layout Module and associated state
@@ -188,76 +187,6 @@ export interface LayoutApi {
188
187
  * @param adaptableObject object to check
189
188
  */
190
189
  isObjectAvailableInCurrentLayout(adaptableObject: LayoutAssociatedObject): boolean;
191
- /**
192
- * Retrieves all the Column Filters in the Column Filter State (of Predefined Config)
193
- * @returns column filters
194
- */
195
- getAllColumnFilter(): ColumnFilter[];
196
- /**
197
- * Retrieves ColumnFilter by Id
198
- * @param id column filter id
199
- * @returns column filter
200
- */
201
- getColumnFilterById(id: ColumnFilter['Uuid']): ColumnFilter;
202
- /**
203
- * Sets Column Filters - will replace filters for existing column and leave other column filters in place
204
- * @param columnFilters Column Filters to set
205
- * @returns column filters
206
- */
207
- setColumnFilter(columnFilters: ColumnFilter[]): ColumnFilter[] | null;
208
- /**
209
- * Clears given Column Filter
210
- * @param columnFilter Column Filter to clear
211
- */
212
- clearColumnFilter(columnFilter: ColumnFilter): void;
213
- /**
214
- * Clears Column Filter for given Column
215
- * @param columnId Column for which Column Filter should be cleared
216
- */
217
- clearColumnFilterByColumn(columnId: string): void;
218
- /**
219
- * Clears Column Filters for given set of Columns
220
- * @param columns Columns for which Column Filte should be cleared
221
- */
222
- clearColumnFilterByColumns(columns: string[]): void;
223
- /**
224
- * Clears all Column Filters in State
225
- */
226
- clearAllColumnFilter(): void;
227
- /**
228
- * Clears existing Column Filters and then sets the new ones
229
- * @param columnFilters Column Filters to set
230
- */
231
- clearAndSetColumnFilter(columnFilters: ColumnFilter[]): void;
232
- /**
233
- * Retrieves all Column Filters for given Column
234
- * @param columnId column to retrieve Column Filters for
235
- * @returns column filters
236
- */
237
- getAllColumnFilterForColumn(columnId: string): ColumnFilter[];
238
- /**
239
- * Creates new Column Filter on given Column using Primary Key values
240
- * @param columnId ColumnId to use
241
- * @param primarykeyValues Primary Key Values to use
242
- * @returns column filter
243
- */
244
- createColumnFilterForCell(columnId: string, primarykeyValues: any[]): ColumnFilter | null;
245
- /**
246
- * Retrieves description of given Column Filter
247
- * @param columnFilter Column Filter to use
248
- */
249
- columnFilterToString(columnFilter: ColumnFilter): string;
250
- /**
251
- * Retrieves descriptions of given Column Filters
252
- * @param columnFilters Column Filters to use
253
- */
254
- columnFiltersToString(columnFilters: ColumnFilter[]): string;
255
- /**
256
- * Calls AdapTableQL to evaluate Filter for given Row
257
- * @param columnFilter Column Filter to use
258
- * @param node Row Node to evaluate
259
- */
260
- evaluateColumnFilter(columnFilter: ColumnFilter, node: RowNode): boolean;
261
190
  /**
262
191
  * Removes a Column from the Current Layout
263
192
  * @param columnId Column to remove
@@ -1,4 +1,6 @@
1
+ import { AdaptableColumnDataType } from '../../types';
1
2
  import { AdaptablePredicateDef, AdaptablePredicate, PredicateDefHandlerParams, ModuleScope } from '../PredefinedConfig/Common/AdaptablePredicate';
3
+ import { SystemFilterPredicateId } from '../types';
2
4
  /**
3
5
  * Functions which manage the Predicate object in AdapTable
4
6
  */
@@ -52,4 +54,9 @@ export interface PredicateApi {
52
54
  * @param defaultReturn Whether to return the default
53
55
  */
54
56
  handlePredicate(predicate: AdaptablePredicate | undefined, params: Omit<PredicateDefHandlerParams, 'api' | 'inputs'>, defaultReturn: boolean): boolean;
57
+ /**
58
+ * Gets the correct Equality-type System Predicate for a particular DataType
59
+ * @param dataType DataType of Column
60
+ */
61
+ getEqualityPredicateForDataType(dataType: AdaptableColumnDataType): SystemFilterPredicateId;
55
62
  }
@@ -1,6 +1,6 @@
1
1
  import { AdaptableObject } from './AdaptableObject';
2
2
  /**
3
- * The type of the column data
3
+ * Type of data stored in an Adaptable Column
4
4
  */
5
5
  export declare type AdaptableColumnDataType = 'String' | 'Number' | 'Boolean' | 'Date' | 'Object' | 'Unknown';
6
6
  /**
@@ -0,0 +1,8 @@
1
+ import { AdaptableFormData } from '../../types';
2
+ import { BaseContext } from './BaseContext';
3
+ export interface FormContext extends BaseContext {
4
+ /**
5
+ * Adaptable Form Data
6
+ */
7
+ formData: AdaptableFormData;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -168,7 +168,6 @@ exports.LayoutReducer = (state = initialState, action) => {
168
168
  layoutToUpdate.Columns = layoutToUpdate.Columns.filter((col) => {
169
169
  return col !== colToRemove;
170
170
  });
171
- console.log('updating', layoutToUpdate);
172
171
  return Object.assign(Object.assign({}, state), { Layouts: state.Layouts.map((abObject) => abObject.Uuid === layoutToUpdate.Uuid ? layoutToUpdate : abObject) });
173
172
  }
174
173
  return state;
@@ -5,6 +5,7 @@ import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupP
5
5
  import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
6
6
  import { AdaptableAlert } from '../../PredefinedConfig/Common/AdaptableAlert';
7
7
  import { AdaptableForm, BaseContext } from '../../types';
8
+ import { FormContext } from '../../PredefinedConfig/Common/FormContext';
8
9
  export declare const POPUP_SHOW_SCREEN = "POPUP_SHOW_SCREEN";
9
10
  export declare const POPUP_HIDE_SCREEN = "POPUP_HIDE_SCREEN";
10
11
  export declare const POPUP_SHOW_LOADING = "POPUP_SHOW_LOADING";
@@ -89,9 +90,9 @@ export declare const PopupShowWindow: (config: {
89
90
  export declare const PopupHideWindow: (id: string) => PopupHideWindowAction;
90
91
  export declare const PopupShowForm: (config: {
91
92
  Id: string;
92
- Form: AdaptableForm<BaseContext>;
93
+ Form: AdaptableForm<FormContext>;
93
94
  FormProps?: any;
94
- prepareContext?: (context: BaseContext) => Promise<BaseContext> | BaseContext;
95
+ prepareContext?: (context: FormContext) => Promise<FormContext> | FormContext;
95
96
  }) => PopupShowFormAction;
96
97
  export declare const PopupHideForm: (id: string) => PopupHideFormAction;
97
98
  export declare const PopupShowAlert: (alert: AdaptableAlert) => PopupShowAlertAction;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableModuleBase = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const Enums_1 = require("../PredefinedConfig/Common/Enums");
6
5
  const StringExtensions_1 = require("../Utilities/Extensions/StringExtensions");
7
6
  const MenuItem_1 = require("../Utilities/MenuItem");
8
7
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions"));
@@ -128,7 +127,7 @@ class AdaptableModuleBase {
128
127
  return !column.isSparkline;
129
128
  }
130
129
  else if (functionType == 'numeric') {
131
- return column.dataType == Enums_1.DataType.Number;
130
+ return column.dataType == 'Number';
132
131
  }
133
132
  else if (functionType == 'filter') {
134
133
  return column.filterable;
@@ -4,7 +4,6 @@ exports.BulkUpdateModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
6
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
- const Enums_1 = require("../PredefinedConfig/Common/Enums");
8
7
  const PreviewHelper_1 = require("../Utilities/Helpers/PreviewHelper");
9
8
  const StringExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/StringExtensions"));
10
9
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions"));
@@ -110,13 +109,13 @@ class BulkUpdateModule extends AdaptableModuleBase_1.AdaptableModuleBase {
110
109
  column = this.api.columnApi.getColumnFromId(selectedCellInfo.columns[0].columnId);
111
110
  let typedBulkUpdateValue;
112
111
  switch (column.dataType) {
113
- case Enums_1.DataType.Number:
112
+ case 'Number':
114
113
  typedBulkUpdateValue = Number(bulkUpdateValue);
115
114
  break;
116
- case Enums_1.DataType.String:
115
+ case 'String':
117
116
  typedBulkUpdateValue = bulkUpdateValue;
118
117
  break;
119
- case Enums_1.DataType.Date:
118
+ case 'Date':
120
119
  typedBulkUpdateValue = new Date(bulkUpdateValue);
121
120
  break;
122
121
  }
@@ -4,7 +4,6 @@ exports.CellSummaryModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
6
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
- const Enums_1 = require("../PredefinedConfig/Common/Enums");
8
7
  const ArrayExtensions_1 = require("../Utilities/Extensions/ArrayExtensions");
9
8
  const Helper_1 = require("../Utilities/Helpers/Helper");
10
9
  const CellSummaryStatusPanel_1 = require("../View/CellSummary/CellSummaryStatusPanel");
@@ -53,7 +52,7 @@ class CellSummaryModule extends AdaptableModuleBase_1.AdaptableModuleBase {
53
52
  let allValues = [];
54
53
  let numericColumns = [];
55
54
  selectedCellInfo.columns.map((c) => {
56
- if (c && c.dataType == Enums_1.DataType.Number) {
55
+ if (c && c.dataType == 'Number') {
57
56
  numericColumns.push(c.columnId);
58
57
  }
59
58
  });
@@ -14,7 +14,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
14
14
  super(ModuleConstants.FilterModuleId, 'Filter', 'column-filter', 'FilterPopup', 'Advanced filtering capability allows users to see precisely the data they want', api);
15
15
  }
16
16
  getModuleAdaptableObjects() {
17
- return this.api.layoutApi.getAllColumnFilter();
17
+ return this.api.filterApi.getColumnFilters();
18
18
  }
19
19
  getExplicitlyReferencedColumnIds(columnFilter) {
20
20
  return [columnFilter.ColumnId];
@@ -26,7 +26,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
26
26
  if (this.api.internalApi.getAdaptableOptions().filterOptions.showQuickFilter == false) {
27
27
  this.api.filterApi.hideQuickFilterBar();
28
28
  }
29
- const columnFilters = this.api.layoutApi.getAllColumnFilter();
29
+ const columnFilters = this.api.filterApi.getColumnFilters();
30
30
  columnFilters.forEach((cf) => {
31
31
  if (!this.api.columnApi.doesColumnExist(cf.ColumnId)) {
32
32
  LoggingHelper_1.LogAdaptableError('Column Filter contains missing column: ' + cf.ColumnId);
@@ -41,14 +41,13 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
41
41
  menuContext.isSingleSelectedColumn &&
42
42
  menuContext.gridCell != null) {
43
43
  let isMultiple = menuContext.selectedCellInfo.gridCells.length > 1;
44
- let pkValues = isMultiple
45
- ? this.api.gridApi.getSelectedCellInfo().gridCells.map((gc) => {
46
- return gc.primaryKeyValue;
47
- })
48
- : [menuContext.gridCell.primaryKeyValue];
49
- let clickFunction = () => {
50
- this.api.layoutApi.createColumnFilterForCell(menuContext.adaptableColumn.columnId, pkValues);
51
- };
44
+ let clickFunction = isMultiple
45
+ ? () => {
46
+ this.api.filterApi.createValuesColumnFilterForCells(menuContext.selectedCellInfo.gridCells);
47
+ }
48
+ : () => {
49
+ this.api.filterApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
50
+ };
52
51
  menuItemClickFunction = this.createColumnMenuItemClickFunction(isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction);
53
52
  }
54
53
  }
@@ -65,8 +64,8 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
65
64
  }
66
65
  }
67
66
  if (column && this.canCreateColumnMenuItem(column, 'ReadOnly', 'filter')) {
68
- let existingColumnFilter = this.api.layoutApi
69
- .getAllColumnFilter()
67
+ let existingColumnFilter = this.api.filterApi
68
+ .getColumnFilters()
70
69
  .find((x) => x.ColumnId == column.columnId);
71
70
  if (existingColumnFilter) {
72
71
  baseMenuItems.push(this.createColumnMenuItemReduxAction('Clear Filter', this.moduleInfo.Glyph, LayoutRedux.LayoutColumnFilterClear(existingColumnFilter)));
@@ -78,7 +77,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
78
77
  }
79
78
  getTeamSharingAction() {
80
79
  return {
81
- ModuleEntities: this.api.layoutApi.getAllColumnFilter(),
80
+ ModuleEntities: this.api.filterApi.getColumnFilters(),
82
81
  AddAction: LayoutRedux.LayoutColumnFilterAdd,
83
82
  EditAction: LayoutRedux.LayoutColumnFilterEdit,
84
83
  };
@@ -86,9 +85,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
86
85
  toViewCompact(filter) {
87
86
  return {
88
87
  item: {
89
- // we dont really need the name here - is there way to return a single vlaue that takes up the whole line?
90
- // name: this.api.columnApi.getFriendlyNameFromColumnId(filter.ColumnId),
91
- values: [this.api.layoutApi.columnFilterToString(filter)],
88
+ values: [this.api.filterApi.columnFilterToString(filter)],
92
89
  },
93
90
  abObject: filter,
94
91
  };
@@ -102,7 +99,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
102
99
  },
103
100
  {
104
101
  name: 'Filter',
105
- values: [this.api.layoutApi.columnFilterToString(filter)],
102
+ values: [this.api.filterApi.columnFilterToString(filter)],
106
103
  },
107
104
  ],
108
105
  abObject: filter,
@@ -124,7 +121,7 @@ class FilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
124
121
  `,
125
122
  getStatusBarPanelProps() {
126
123
  let text;
127
- const filters = api.layoutApi.getAllColumnFilter();
124
+ const filters = api.filterApi.getColumnFilters();
128
125
  if (filters.length === 0) {
129
126
  text = '0 Filters';
130
127
  }
@@ -42,6 +42,7 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
42
42
  }
43
43
  */
44
44
  getModuleAdaptableObjects() {
45
+ // ignore - triggering build
45
46
  return this.api.layoutApi.getAllLayout();
46
47
  }
47
48
  getExplicitlyReferencedColumnIds(layout) {
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlusMinusModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const Enums_1 = require("../PredefinedConfig/Common/Enums");
6
5
  const PlusMinusRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/PlusMinusRedux"));
7
6
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
8
7
  const ArrayExtensions_1 = require("../Utilities/Extensions/ArrayExtensions");
@@ -91,9 +90,7 @@ class PlusMinusModule extends AdaptableModuleBase_1.AdaptableModuleBase {
91
90
  let failedPreventEdits = [];
92
91
  let side = direction == 'up' ? 1 : -1;
93
92
  cellsToUpdate.forEach((gridCell) => {
94
- if (gridCell.column &&
95
- gridCell.column.dataType == Enums_1.DataType.Number &&
96
- !gridCell.column.readOnly) {
93
+ if (gridCell.column && gridCell.column.dataType == 'Number' && !gridCell.column.readOnly) {
97
94
  let foundRule;
98
95
  let replacementGridCell;
99
96
  plusMinusNudges.forEach((pmr) => {
@@ -23,7 +23,7 @@ class SmartEditModule extends AdaptableModuleBase_1.AdaptableModuleBase {
23
23
  let menuItemShowPopup = undefined;
24
24
  if (!menuContext.isRowGroupColumn && this.isModuleEditable()) {
25
25
  if (menuContext.adaptableColumn &&
26
- menuContext.adaptableColumn.dataType == Enums_1.DataType.Number &&
26
+ menuContext.adaptableColumn.dataType == 'Number' &&
27
27
  !menuContext.adaptableColumn.readOnly &&
28
28
  menuContext.isSelectedCell &&
29
29
  menuContext.isSingleSelectedColumn &&
@@ -78,7 +78,7 @@ class SmartEditModule extends AdaptableModuleBase_1.AdaptableModuleBase {
78
78
  }
79
79
  let column = selectedCellInfo.columns[0];
80
80
  if (column) {
81
- if (column.dataType != Enums_1.DataType.Number) {
81
+ if (column.dataType != 'Number') {
82
82
  return {
83
83
  Alert: {
84
84
  alertType: 'generic',
@@ -26,6 +26,8 @@ export declare const AB_SPECIAL_COLUMN: AdaptableColumnType;
26
26
  export declare const HALF_SECOND: number;
27
27
  export declare const AG_GRID_GROUPED_COLUMN: string;
28
28
  export declare const AG_GRID_PIVOT_COLUMN: string;
29
+ export declare const ADAPTABLE_ROW_ACTION_BUTTONS = "adaptableRowActionButtons";
30
+ export declare const ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = "(ActionRowButtons)";
29
31
  export declare const SYSTEM_STATUS_DEFAULT_MAX_MESSAGES_IN_STORE: number;
30
32
  export declare const QUICK_SEARCH_DEFAULT_BACK_COLOR: string;
31
33
  export declare const QUICK_SEARCH_DEFAULT_FORE_COLOR: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.THEME_STYLE = exports.SELECTED_ROWS_REPORT = exports.SELECTED_CELLS_REPORT = exports.CURRENT_DATA_REPORT = exports.ALL_DATA_REPORT = exports.VISUAL_DATA_REPORT = exports.SYSTEM_THEMES = exports.SMART_EDIT_MATH_OPERATION_STATE_PROPERTY = exports.SMART_EDIT_VALUE_STATE_PROPERTY = exports.QUICK_SEARCH_STYLE_STATE_PROPERTY = exports.QUICK_SEARCH_TEXT_STATE_PROPERTY = exports.CURRENT_THEME_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DURATION_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY = exports.CURRENT_REPORT_STATE_PROPERTY = exports.CURRENT_LAYOUT_STATE_PROPERTY = exports.SUMMARY_OPERATION_STATE_PROPERTY = exports.ALERT_DEFAULT_SHOW_POPUP = exports.ALERT_DEFAULT_MESSAGE_TYPE = exports.PLUS_MINUS_DEFAULT_NUDGE_VALUE = exports.DEFAULT_LIVE_REPORT_THROTTLE_TIME = exports.THEME_DEFAULT_CURRENT_THEME = exports.SYSTEM_DEFAULT_SYSTEM_STATUS_TYPE = exports.CELL_SUMMARY_DEFAULT_OPERATION = exports.QUICK_SEARCH_DEBOUNCE_TIME = exports.QUICK_SEARCH_DEFAULT_FORE_COLOR = exports.QUICK_SEARCH_DEFAULT_BACK_COLOR = exports.SYSTEM_STATUS_DEFAULT_MAX_MESSAGES_IN_STORE = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.HALF_SECOND = exports.AB_SPECIAL_COLUMN = exports.EMPTY_ARRAY = exports.EMPTY_STRING = exports.FILTER_THROTTLE = exports.FILTER_NEVER = exports.FILTER_ALWAYS = exports.ALL_COLUMN_VALUES = exports.READ_ONLY_STYLE = exports.MENU_PREFIX = exports.AGGRID_TOOLPANEL_COLUMNS = exports.AGGRID_TOOLPANEL_FILTERS = exports.ADAPTABLE_TOOLPANEL_COMPONENT = exports.ADAPTABLE_TOOLPANEL_ID = exports.ADAPTABLE = exports.ADAPTABLE_ID = exports.USER_NAME = exports.DARK_THEME = exports.LIGHT_THEME = exports.DEFAULT_LAYOUT = exports.MISSING_COLUMN = exports.AUTOGENERATED_PK_COLUMN = void 0;
3
+ exports.THEME_STYLE = exports.SELECTED_ROWS_REPORT = exports.SELECTED_CELLS_REPORT = exports.CURRENT_DATA_REPORT = exports.ALL_DATA_REPORT = exports.VISUAL_DATA_REPORT = exports.SYSTEM_THEMES = exports.SMART_EDIT_MATH_OPERATION_STATE_PROPERTY = exports.SMART_EDIT_VALUE_STATE_PROPERTY = exports.QUICK_SEARCH_STYLE_STATE_PROPERTY = exports.QUICK_SEARCH_TEXT_STATE_PROPERTY = exports.CURRENT_THEME_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DURATION_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY = exports.CURRENT_REPORT_STATE_PROPERTY = exports.CURRENT_LAYOUT_STATE_PROPERTY = exports.SUMMARY_OPERATION_STATE_PROPERTY = exports.ALERT_DEFAULT_SHOW_POPUP = exports.ALERT_DEFAULT_MESSAGE_TYPE = exports.PLUS_MINUS_DEFAULT_NUDGE_VALUE = exports.DEFAULT_LIVE_REPORT_THROTTLE_TIME = exports.THEME_DEFAULT_CURRENT_THEME = exports.SYSTEM_DEFAULT_SYSTEM_STATUS_TYPE = exports.CELL_SUMMARY_DEFAULT_OPERATION = exports.QUICK_SEARCH_DEBOUNCE_TIME = exports.QUICK_SEARCH_DEFAULT_FORE_COLOR = exports.QUICK_SEARCH_DEFAULT_BACK_COLOR = exports.SYSTEM_STATUS_DEFAULT_MAX_MESSAGES_IN_STORE = exports.ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = exports.ADAPTABLE_ROW_ACTION_BUTTONS = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.HALF_SECOND = exports.AB_SPECIAL_COLUMN = exports.EMPTY_ARRAY = exports.EMPTY_STRING = exports.FILTER_THROTTLE = exports.FILTER_NEVER = exports.FILTER_ALWAYS = exports.ALL_COLUMN_VALUES = exports.READ_ONLY_STYLE = exports.MENU_PREFIX = exports.AGGRID_TOOLPANEL_COLUMNS = exports.AGGRID_TOOLPANEL_FILTERS = exports.ADAPTABLE_TOOLPANEL_COMPONENT = exports.ADAPTABLE_TOOLPANEL_ID = exports.ADAPTABLE = exports.ADAPTABLE_ID = exports.USER_NAME = exports.DARK_THEME = exports.LIGHT_THEME = exports.DEFAULT_LAYOUT = exports.MISSING_COLUMN = exports.AUTOGENERATED_PK_COLUMN = void 0;
4
4
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
5
5
  const UIHelper_1 = require("../../View/UIHelper");
6
6
  exports.AUTOGENERATED_PK_COLUMN = '__ADAPTABLE_PK__';
@@ -28,6 +28,8 @@ exports.AB_SPECIAL_COLUMN = 'abSpecialColumn';
28
28
  exports.HALF_SECOND = 500;
29
29
  exports.AG_GRID_GROUPED_COLUMN = 'ag-Grid-AutoColumn';
30
30
  exports.AG_GRID_PIVOT_COLUMN = 'pivot_';
31
+ exports.ADAPTABLE_ROW_ACTION_BUTTONS = 'adaptableRowActionButtons';
32
+ exports.ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = '(ActionRowButtons)';
31
33
  /*
32
34
  Redux / State Defaults
33
35
  Try to put all our Redux / State defaults here and ONLY reference from here - avoid magic numbers / strings.
@@ -227,6 +227,8 @@ exports.DefaultAdaptableOptions = {
227
227
  actionColumns: undefined,
228
228
  actionRowButtons: undefined,
229
229
  actionRowButtonsPosition: 'pinnedLeft',
230
+ autoHandleActionRowButtons: false,
231
+ setPrimaryKeyValue: undefined,
230
232
  },
231
233
  colorPalette: UIHelper_1.default.getDefaultColors(),
232
234
  editableCellStyle: undefined,