@adaptabletools/adaptable 16.0.3 → 16.0.5-canary.0

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 (56) hide show
  1. package/base.css +3 -0
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +155 -155
  4. package/index.css +5 -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/AdaptableOptions/AdaptableOptions.d.ts +1 -1
  10. package/src/AdaptableOptions/Fdc3Options.d.ts +71 -41
  11. package/src/AdaptableOptions/FilterOptions.d.ts +7 -0
  12. package/src/Api/ConfigApi.d.ts +6 -1
  13. package/src/Api/ExportApi.d.ts +12 -3
  14. package/src/Api/Fdc3Api.d.ts +1 -1
  15. package/src/Api/FilterApi.d.ts +7 -1
  16. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -1
  17. package/src/Api/Implementation/ConfigApiImpl.js +11 -0
  18. package/src/Api/Implementation/ExportApiImpl.d.ts +2 -0
  19. package/src/Api/Implementation/ExportApiImpl.js +6 -0
  20. package/src/Api/Implementation/FilterApiImpl.d.ts +2 -1
  21. package/src/Api/Implementation/FilterApiImpl.js +14 -1
  22. package/src/Api/Implementation/ScheduleApiImpl.js +1 -1
  23. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  24. package/src/PredefinedConfig/Common/AdaptablePredicate.js +7 -0
  25. package/src/PredefinedConfig/Common/ColumnFilter.d.ts +13 -0
  26. package/src/PredefinedConfig/Common/Fdc3Context.d.ts +6 -6
  27. package/src/PredefinedConfig/Common/Fdc3Context.js +6 -6
  28. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +4 -4
  29. package/src/PredefinedConfig/Common/Fdc3Intent.js +4 -4
  30. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +8 -0
  31. package/src/Redux/ActionsReducers/CommentsRedux.js +10 -1
  32. package/src/Strategy/Fdc3Module.js +1 -1
  33. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  34. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  35. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  36. package/src/View/Components/FilterForm/ListBoxFilterForm.js +11 -2
  37. package/src/View/Export/ExportSelector.js +2 -2
  38. package/src/agGrid/Adaptable.js +7 -1
  39. package/src/components/icons/contact.d.ts +3 -0
  40. package/src/components/icons/contact.js +8 -0
  41. package/src/components/icons/index.js +10 -0
  42. package/src/components/icons/interactions.d.ts +3 -0
  43. package/src/components/icons/interactions.js +8 -0
  44. package/src/components/icons/money.d.ts +3 -0
  45. package/src/components/icons/money.js +8 -0
  46. package/src/components/icons/order.d.ts +3 -0
  47. package/src/components/icons/order.js +7 -0
  48. package/src/components/icons/organisation.d.ts +3 -0
  49. package/src/components/icons/organisation.js +8 -0
  50. package/src/metamodel/adaptable.metamodel.d.ts +90 -2
  51. package/src/metamodel/adaptable.metamodel.js +1 -1
  52. package/src/types.d.ts +2 -2
  53. package/themes/dark.css +2 -0
  54. package/themes/dark.css.map +1 -1
  55. package/version.d.ts +1 -1
  56. package/version.js +1 -1
@@ -2,7 +2,7 @@ import { ApiBase } from './ApiBase';
2
2
  import { FilterApi } from '../FilterApi';
3
3
  import { AdaptablePredicateDef, ColumnFilterDef } from '../../PredefinedConfig/Common/AdaptablePredicate';
4
4
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
5
- import { ColumnFilter } from '../../types';
5
+ import { ColumnFilter, ColumnFilterConfig } from '../../types';
6
6
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
7
7
  import { FilterInternalApi } from '../Internal/FilterInternalApi';
8
8
  export declare class FilterApiImpl extends ApiBase implements FilterApi {
@@ -34,6 +34,7 @@ export declare class FilterApiImpl extends ApiBase implements FilterApi {
34
34
  * @param filter
35
35
  */
36
36
  isFilterActive(filter: ColumnFilter): boolean;
37
+ setColumnFilterForColumn(columnId: string, columnFilterConfig: ColumnFilterConfig): void;
37
38
  suspendColumnFilter(columnFilter: ColumnFilter): void;
38
39
  unSuspendColumnFilter(columnFilter: ColumnFilter): void;
39
40
  suspendAllColumnFilters(): void;
@@ -14,7 +14,7 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
14
14
  }
15
15
  getFilterPredicateDefsForColumn(column) {
16
16
  const scope = {
17
- ColumnIds: [column.columnId]
17
+ ColumnIds: [column.columnId],
18
18
  };
19
19
  return this.getAdaptableApi()
20
20
  .predicateApi.internalApi.getFilterPredicateDefs(scope)
@@ -138,6 +138,19 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
138
138
  });
139
139
  return allInputsHaveValues;
140
140
  }
141
+ setColumnFilterForColumn(columnId, columnFilterConfig) {
142
+ const columnFilterPredicate = {
143
+ PredicateId: columnFilterConfig.PredicateId,
144
+ };
145
+ if (columnFilterConfig.PredicateInputs) {
146
+ columnFilterPredicate.Inputs = columnFilterConfig.PredicateInputs;
147
+ }
148
+ const columnFilter = {
149
+ ColumnId: columnId,
150
+ Predicate: columnFilterPredicate,
151
+ };
152
+ this.setColumnFilters([columnFilter]);
153
+ }
141
154
  suspendColumnFilter(columnFilter) {
142
155
  this.dispatchAction(LayoutRedux.LayoutColumnFilterSuspend(columnFilter));
143
156
  }
@@ -198,7 +198,7 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
198
198
  }
199
199
  else if (scheduleType == 'Report') {
200
200
  const reportSchedule = schedule;
201
- this.adaptable.api.exportApi.sendReport(reportSchedule.ReportName, reportSchedule.ExportDestination);
201
+ this.adaptable.api.exportApi.runReport(reportSchedule.ReportName, reportSchedule.ExportDestination);
202
202
  }
203
203
  else if (scheduleType == 'ipushpull') {
204
204
  const ippApi = this.adaptable.api.pluginsApi.getipushpullPluginApi();
@@ -54,4 +54,4 @@ export interface AdaptableBaseIcon {
54
54
  /**
55
55
  * All AdapTable System Icon names
56
56
  */
57
- export declare type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'comment' | 'contains' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold';
57
+ export declare type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'comment' | 'contains' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold';
@@ -18,6 +18,7 @@ const isYesterday_1 = tslib_1.__importDefault(require("date-fns/isYesterday"));
18
18
  const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
19
19
  const DateHelper_1 = require("../../Utilities/Helpers/DateHelper");
20
20
  const Helper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/Helper"));
21
+ const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
21
22
  /**
22
23
  * Array of Predicate Defs which are shipped by AdapTable
23
24
  */
@@ -32,6 +33,9 @@ exports.SystemPredicateDefs = [
32
33
  if (inputs.length === 0) {
33
34
  return true;
34
35
  }
36
+ if (inputs.includes(GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE) && Helper_1.default.IsInputNullOrEmpty(value)) {
37
+ return true;
38
+ }
35
39
  if (column.dataType === 'Date') {
36
40
  return inputs.some((input) => {
37
41
  if (adaptableApi.optionsApi.getFilterOptions().filterUsingTime) {
@@ -70,6 +74,9 @@ exports.SystemPredicateDefs = [
70
74
  if (inputs.length === 0) {
71
75
  return true;
72
76
  }
77
+ if (inputs.includes(GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE) && Helper_1.default.IsInputNullOrEmpty(value)) {
78
+ return false;
79
+ }
73
80
  if (column.dataType === 'Date') {
74
81
  if (adaptableApi.optionsApi.getFilterOptions().filterUsingTime) {
75
82
  return inputs.every((input) => {
@@ -1,5 +1,18 @@
1
1
  import { SuspendableObject, AdaptablePredicate } from '../../types';
2
2
  import { TypeHint } from './Types';
3
+ /**
4
+ * Configuration for a Column Filter
5
+ */
6
+ export interface ColumnFilterConfig {
7
+ /**
8
+ * The Predicate ID to use when filtering the column
9
+ */
10
+ PredicateId: TypeHint<string, SystemFilterPredicateId>;
11
+ /**
12
+ * Optional Inputs that might be needed for evaluation
13
+ */
14
+ PredicateInputs?: any[];
15
+ }
3
16
  /**
4
17
  * Defines a Filter applied on a Column using a Predicate
5
18
  */
@@ -96,23 +96,23 @@ export declare const ContextConfiguration: {
96
96
  };
97
97
  readonly "fdc3.instrument": {
98
98
  readonly label: "Instrument";
99
- readonly icon: "fdc3";
99
+ readonly icon: "money";
100
100
  };
101
101
  readonly "fdc3.instrumentList": {
102
102
  readonly label: "InstrumentList";
103
- readonly icon: "fdc3";
103
+ readonly icon: "money";
104
104
  };
105
105
  readonly "fdc3.organization": {
106
106
  readonly label: "Organization";
107
- readonly icon: "fdc3";
107
+ readonly icon: "organisation";
108
108
  };
109
109
  readonly "fdc3.portfolio": {
110
110
  readonly label: "Portfolio";
111
- readonly icon: "fdc3";
111
+ readonly icon: "building";
112
112
  };
113
113
  readonly "fdc3.position": {
114
114
  readonly label: "Position";
115
- readonly icon: "fdc3";
115
+ readonly icon: "building";
116
116
  };
117
117
  readonly "fdc3.timerange": {
118
118
  readonly label: "TimeRange";
@@ -120,7 +120,7 @@ export declare const ContextConfiguration: {
120
120
  };
121
121
  readonly "fdc3.valuation": {
122
122
  readonly label: "Valuation";
123
- readonly icon: "fdc3";
123
+ readonly icon: "equation";
124
124
  };
125
125
  readonly "fdc3.nothing": {
126
126
  readonly label: "Nothing";
@@ -47,23 +47,23 @@ exports.ContextConfiguration = {
47
47
  },
48
48
  [exports.InstrumentContextKey]: {
49
49
  label: 'Instrument',
50
- icon: 'fdc3',
50
+ icon: 'money',
51
51
  },
52
52
  [exports.InstrumentListContextKey]: {
53
53
  label: 'InstrumentList',
54
- icon: 'fdc3',
54
+ icon: 'money',
55
55
  },
56
56
  [exports.OrganizationContextKey]: {
57
57
  label: 'Organization',
58
- icon: 'fdc3',
58
+ icon: 'organisation',
59
59
  },
60
60
  [exports.PortfolioContextKey]: {
61
61
  label: 'Portfolio',
62
- icon: 'fdc3',
62
+ icon: 'building',
63
63
  },
64
64
  [exports.PositionContextKey]: {
65
65
  label: 'Position',
66
- icon: 'fdc3',
66
+ icon: 'building',
67
67
  },
68
68
  [exports.TimeRangeContextKey]: {
69
69
  label: 'TimeRange',
@@ -71,7 +71,7 @@ exports.ContextConfiguration = {
71
71
  },
72
72
  [exports.ValuationContextKey]: {
73
73
  label: 'Valuation',
74
- icon: 'fdc3',
74
+ icon: 'equation',
75
75
  },
76
76
  [exports.NothingContextKey]: {
77
77
  label: 'Nothing',
@@ -39,15 +39,15 @@ export declare const Fdc3IntentConfiguration: {
39
39
  };
40
40
  readonly ViewHoldings: {
41
41
  readonly contexts: readonly ["fdc3.instrument", "fdc3.instrumentList", "fdc3.organization", "fdc3.nothing"];
42
- readonly icon: "fdc3";
42
+ readonly icon: "building";
43
43
  };
44
44
  readonly ViewInstrument: {
45
45
  readonly contexts: readonly ["fdc3.instrument", "fdc3.nothing"];
46
- readonly icon: "fdc3";
46
+ readonly icon: "money";
47
47
  };
48
48
  readonly ViewInteractions: {
49
49
  readonly contexts: readonly ["fdc3.contact", "fdc3.instrumentList", "fdc3.organization", "fdc3.nothing"];
50
- readonly icon: "fdc3";
50
+ readonly icon: "interactions";
51
51
  };
52
52
  readonly ViewNews: {
53
53
  readonly contexts: readonly ["fdc3.country", "fdc3.instrument", "fdc3.instrumentList", "fdc3.organization", "fdc3.portfolio", "fdc3.nothing"];
@@ -55,7 +55,7 @@ export declare const Fdc3IntentConfiguration: {
55
55
  };
56
56
  readonly ViewOrders: {
57
57
  readonly contexts: readonly ["fdc3.contact", "fdc3.instrumentList", "fdc3.organization", "fdc3.nothing"];
58
- readonly icon: "fdc3";
58
+ readonly icon: "order";
59
59
  };
60
60
  readonly ViewProfile: {
61
61
  readonly contexts: readonly ["fdc3.contact", "fdc3.organization", "fdc3.nothing"];
@@ -65,11 +65,11 @@ exports.Fdc3IntentConfiguration = {
65
65
  Fdc3Context_1.OrganizationContextKey,
66
66
  Fdc3Context_1.NothingContextKey,
67
67
  ],
68
- icon: 'fdc3',
68
+ icon: 'building',
69
69
  },
70
70
  [exports.ViewInstrumentIntent]: {
71
71
  contexts: [Fdc3Context_1.InstrumentContextKey, Fdc3Context_1.NothingContextKey],
72
- icon: 'fdc3',
72
+ icon: 'money',
73
73
  },
74
74
  [exports.ViewInteractionsIntent]: {
75
75
  contexts: [
@@ -78,7 +78,7 @@ exports.Fdc3IntentConfiguration = {
78
78
  Fdc3Context_1.OrganizationContextKey,
79
79
  Fdc3Context_1.NothingContextKey,
80
80
  ],
81
- icon: 'fdc3',
81
+ icon: 'interactions',
82
82
  },
83
83
  [exports.ViewNewsIntent]: {
84
84
  contexts: [
@@ -98,7 +98,7 @@ exports.Fdc3IntentConfiguration = {
98
98
  Fdc3Context_1.OrganizationContextKey,
99
99
  Fdc3Context_1.NothingContextKey,
100
100
  ],
101
- icon: 'fdc3',
101
+ icon: 'order',
102
102
  },
103
103
  [exports.ViewProfileIntent]: {
104
104
  contexts: [Fdc3Context_1.ContactContextKey, Fdc3Context_1.OrganizationContextKey, Fdc3Context_1.NothingContextKey],
@@ -12,6 +12,10 @@ export declare const COMMENTS_EDIT = "COMMENTS_EDIT";
12
12
  * @ReduxAction A Comment has been deleted
13
13
  */
14
14
  export declare const COMMENTS_DELETE = "COMMENTS_DELETE";
15
+ /**
16
+ * @ReduxAction Comments Module is ready
17
+ */
18
+ export declare const COMMENTS_READY = "COMMENTS_READY";
15
19
  export interface AdaptableCommentAction extends Redux.Action {
16
20
  adaptableComment: AdaptableComment;
17
21
  }
@@ -21,9 +25,13 @@ export interface AdaptableCommentEditAction extends AdaptableCommentAction {
21
25
  }
22
26
  export interface AdaptableCommentDeleteAction extends AdaptableCommentAction {
23
27
  }
28
+ export interface CommentsReadyAction extends Redux.Action {
29
+ commentsState: CommentsState;
30
+ }
24
31
  export declare const CommentsAdd: (adaptableComment: AdaptableComment) => AdaptableCommentAddAction;
25
32
  export declare const CommentsEdit: (adaptableComment: AdaptableComment) => AdaptableCommentEditAction;
26
33
  export declare const CommentsDelete: (adaptableComment: AdaptableComment) => AdaptableCommentDeleteAction;
34
+ export declare const CommentsReady: (commentsState: CommentsState) => CommentsReadyAction;
27
35
  export declare const GetCommentsSelector: (state: CommentsState, config?: {
28
36
  PrimaryKeyValue: string | number;
29
37
  ColumnId: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommentsReducer = exports.GetCommentsSelector = exports.CommentsDelete = exports.CommentsEdit = exports.CommentsAdd = exports.COMMENTS_DELETE = exports.COMMENTS_EDIT = exports.COMMENTS_ADD = void 0;
3
+ exports.CommentsReducer = exports.GetCommentsSelector = exports.CommentsReady = exports.CommentsDelete = exports.CommentsEdit = exports.CommentsAdd = exports.COMMENTS_READY = exports.COMMENTS_DELETE = exports.COMMENTS_EDIT = exports.COMMENTS_ADD = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
6
6
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
@@ -16,6 +16,10 @@ exports.COMMENTS_EDIT = 'COMMENTS_EDIT';
16
16
  * @ReduxAction A Comment has been deleted
17
17
  */
18
18
  exports.COMMENTS_DELETE = 'COMMENTS_DELETE';
19
+ /**
20
+ * @ReduxAction Comments Module is ready
21
+ */
22
+ exports.COMMENTS_READY = 'COMMENTS_READY';
19
23
  const CommentsAdd = (adaptableComment) => ({
20
24
  type: exports.COMMENTS_ADD,
21
25
  adaptableComment,
@@ -31,6 +35,11 @@ const CommentsDelete = (adaptableComment) => ({
31
35
  adaptableComment,
32
36
  });
33
37
  exports.CommentsDelete = CommentsDelete;
38
+ const CommentsReady = (commentsState) => ({
39
+ type: exports.COMMENTS_READY,
40
+ commentsState,
41
+ });
42
+ exports.CommentsReady = CommentsReady;
34
43
  const GetCommentsSelector = (state, config) => {
35
44
  var _a, _b;
36
45
  if (!config) {
@@ -52,7 +52,7 @@ class Fdc3Module extends AdaptableModuleBase_1.AdaptableModuleBase {
52
52
  };
53
53
  if ((_a = intentConfig.contextMenu) === null || _a === void 0 ? void 0 : _a.icon) {
54
54
  const menuItemIcon = ((_b = intentConfig.contextMenu) === null || _b === void 0 ? void 0 : _b.icon) === '_defaultFdc3'
55
- ? this.getFdc3Api().internalApi.getDefaultIconForContext(contextType)
55
+ ? this.getFdc3Api().internalApi.getDefaultIconForIntent(intentType)
56
56
  : (_c = intentConfig.contextMenu) === null || _c === void 0 ? void 0 : _c.icon;
57
57
  menuItem.icon = menuItemIcon;
58
58
  }
@@ -33,6 +33,7 @@ export declare const ADAPTABLE_ROW_ACTION_BUTTONS = "adaptableRowActionButtons";
33
33
  export declare const ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = "(ActionRowButtons)";
34
34
  export declare const ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = "(FDC3ActionColumn)";
35
35
  export declare const DEFAULT_DATE_FORMAT_PATTERN = "dd-MM-yyyy";
36
+ export declare const BLANK_DISTINCT_COLUMN_VALUE = "[BLANKS]";
36
37
  export declare const SYSTEM_STATUS_DEFAULT_MAX_MESSAGES_IN_STORE: number;
37
38
  export declare const QUICK_SEARCH_DEFAULT_BACK_COLOR: string;
38
39
  export declare const QUICK_SEARCH_DEFAULT_FORE_COLOR: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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.SERVER_VALIDATION_MESSAGE_TYPE = exports.SERVER_VALIDATION_HEADER = 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.DEFAULT_DATE_FORMAT_PATTERN = exports.ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = exports.ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = exports.ADAPTABLE_ROW_ACTION_BUTTONS = exports.AG_GRID_CHART_WINDOW = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.HALF_SECOND = exports.AB_FDC3_COLUMN = exports.AB_ROW_ACTIONS_COLUMN = 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
- 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 = void 0;
3
+ 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.SERVER_VALIDATION_MESSAGE_TYPE = exports.SERVER_VALIDATION_HEADER = 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.BLANK_DISTINCT_COLUMN_VALUE = exports.DEFAULT_DATE_FORMAT_PATTERN = exports.ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = exports.ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = exports.ADAPTABLE_ROW_ACTION_BUTTONS = exports.AG_GRID_CHART_WINDOW = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.HALF_SECOND = exports.AB_FDC3_COLUMN = exports.AB_ROW_ACTIONS_COLUMN = 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
+ 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 = void 0;
5
5
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
6
6
  const UIHelper_1 = require("../../View/UIHelper");
7
7
  exports.AUTOGENERATED_PK_COLUMN = '__ADAPTABLE_PK__';
@@ -36,6 +36,7 @@ exports.ADAPTABLE_ROW_ACTION_BUTTONS = 'adaptableRowActionButtons';
36
36
  exports.ADAPTABLE_ROW_ACTION_BUTTONS_FRIENDLY_NAME = '(ActionRowButtons)';
37
37
  exports.ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = '(FDC3ActionColumn)';
38
38
  exports.DEFAULT_DATE_FORMAT_PATTERN = 'dd-MM-yyyy';
39
+ exports.BLANK_DISTINCT_COLUMN_VALUE = '[BLANKS]';
39
40
  /*
40
41
  Redux / State Defaults
41
42
  Try to put all our Redux / State defaults here and ONLY reference from here - avoid magic numbers / strings.
@@ -221,6 +221,7 @@ exports.DefaultAdaptableOptions = {
221
221
  quickFilterWildcards: {},
222
222
  showValuesCount: undefined,
223
223
  quickFilterValuesWidth: 180,
224
+ includeBlankFilterValues: false,
224
225
  },
225
226
  quickSearchOptions: {
226
227
  excludeColumnFromQuickSearch: undefined,
@@ -12,6 +12,8 @@ const AdaptableFormControlTextClear_1 = require("../Forms/AdaptableFormControlTe
12
12
  const GridList_1 = tslib_1.__importDefault(require("../../../components/List/GridList"));
13
13
  const react_1 = require("react");
14
14
  const Loader_1 = require("../../../components/Loader");
15
+ const isEqual_1 = tslib_1.__importDefault(require("date-fns/isEqual"));
16
+ const DateHelper_1 = require("../../../Utilities/Helpers/DateHelper");
15
17
  const ListBoxFilterForm = (props) => {
16
18
  const [FilterValue, setFilterValue] = (0, react_1.useState)('');
17
19
  const handleFilterValueChange = React.useCallback((newValue) => {
@@ -30,7 +32,10 @@ const ListBoxFilterForm = (props) => {
30
32
  return (React.createElement(CheckBox_1.CheckBox, Object.assign({}, props, { variant: "agGrid", fontSize: 2, marginTop: 1, marginBottom: 1, marginLeft: 1, marginRight: 1, title: typeof props.children === 'string' ? props.children : null })));
31
33
  };
32
34
  const onClickItemColumnValue = (item) => {
33
- const index = UiSelectedColumnValues.indexOf(item);
35
+ let index = UiSelectedColumnValues.indexOf(item);
36
+ if (item instanceof Date) {
37
+ index = UiSelectedColumnValues.findIndex((selectedValue) => (0, isEqual_1.default)((0, DateHelper_1.parseDateValue)(selectedValue), (0, DateHelper_1.parseDateValue)(item)));
38
+ }
34
39
  if (index >= 0) {
35
40
  const newArray = [...UiSelectedColumnValues];
36
41
  newArray.splice(index, 1);
@@ -41,7 +46,11 @@ const ListBoxFilterForm = (props) => {
41
46
  }
42
47
  };
43
48
  const columnValuesItemsElements = props.columnDistinctValues.map((distinctValue, index) => {
44
- const isActive = UiSelectedColumnValues.indexOf(distinctValue.value) >= 0;
49
+ let isActive = UiSelectedColumnValues.indexOf(distinctValue.value) >= 0;
50
+ // special case for date objects, need to check against string values
51
+ if (!isActive && distinctValue.value && distinctValue.value instanceof Date) {
52
+ isActive = UiSelectedColumnValues.some((dateStr) => (0, isEqual_1.default)((0, DateHelper_1.parseDateValue)(dateStr), (0, DateHelper_1.parseDateValue)(distinctValue.value)));
53
+ }
45
54
  const columnLabel = distinctValue.label;
46
55
  if (StringExtensions_1.StringExtensions.IsNullOrEmpty(columnLabel)) {
47
56
  return null;
@@ -63,10 +63,10 @@ const ExportSelector = () => {
63
63
  // export
64
64
  const handleExport = () => {
65
65
  if (isCustomDestination(currentDestination)) {
66
- adaptable.api.exportApi.sendReport(currentReport.Name, currentDestination.name);
66
+ adaptable.api.exportApi.runReport(currentReport.Name, currentDestination.name);
67
67
  }
68
68
  else {
69
- adaptable.api.exportApi.sendReport(currentReport.Name, currentDestination);
69
+ adaptable.api.exportApi.runReport(currentReport.Name, currentDestination);
70
70
  }
71
71
  };
72
72
  return (React.createElement(React.Fragment, null,
@@ -1907,7 +1907,13 @@ class Adaptable {
1907
1907
  else {
1908
1908
  this.gridOptions.api.forEachNode((rowNode) => {
1909
1909
  const gridCell = this.addDistinctColumnValue(rowNode, column.columnId);
1910
- if (gridCell && gridCell.rawValue != undefined && gridCell.rowNode !== skipRowNode) {
1910
+ if (gridCell && gridCell.rowNode !== skipRowNode) {
1911
+ if (gridCell.rawValue == undefined &&
1912
+ this.adaptableOptions.filterOptions.includeBlankFilterValues) {
1913
+ gridCell.rawValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
1914
+ gridCell.displayValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
1915
+ gridCell.normalisedValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
1916
+ }
1911
1917
  returnValues.push(gridCell);
1912
1918
  }
1913
1919
  });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M144-40v-60h672v60H144Zm0-820v-60h672v60H144Zm336 416q50 0 84-34t34-84q0-50-34-84t-84-34q-50 0-84 34t-34 84q0 50 34 84t84 34ZM132-160q-24 0-42-18t-18-42v-520q0-26 18-43t42-17h696q24 0 42 18t18 42v520q0 24-18 42t-42 18H132Zm88-60q51-63 121-94.5T479.5-346q68.5 0 140 31.5T740-220h88v-520H132v520h88Zm94 0h334q-31-30-72.5-48T480-286q-54 0-94.5 18T314-220Zm166.158-284Q456-504 439.5-521T423-562q0-24 16.342-41t40.5-17Q504-620 520.5-603t16.5 41q0 24-16.342 41t-40.5 17ZM480-480Z" }),
8
+ ' '));
@@ -147,7 +147,12 @@ const visibility_1 = tslib_1.__importDefault(require("./visibility"));
147
147
  const visibility_off_1 = tslib_1.__importDefault(require("./visibility-off"));
148
148
  const mail_1 = tslib_1.__importDefault(require("./mail"));
149
149
  const dollar_1 = tslib_1.__importDefault(require("./dollar"));
150
+ const organisation_1 = tslib_1.__importDefault(require("./organisation"));
150
151
  const science_1 = tslib_1.__importDefault(require("./science"));
152
+ const interactions_1 = tslib_1.__importDefault(require("./interactions"));
153
+ const money_1 = tslib_1.__importDefault(require("./money"));
154
+ const order_1 = tslib_1.__importDefault(require("./order"));
155
+ const contact_1 = tslib_1.__importDefault(require("./contact"));
151
156
  const Icon_1 = require("../Icon");
152
157
  const AdaptableLogger_1 = require("../../agGrid/AdaptableLogger");
153
158
  const allIcons = {
@@ -295,7 +300,12 @@ const allIcons = {
295
300
  fdc3: fdc3_1.default,
296
301
  mail: mail_1.default,
297
302
  dollar: dollar_1.default,
303
+ organisation: organisation_1.default,
298
304
  science: science_1.default,
305
+ interactions: interactions_1.default,
306
+ money: money_1.default,
307
+ order: order_1.default,
308
+ contact: contact_1.default,
299
309
  };
300
310
  Object.keys(allIcons).forEach((name) => {
301
311
  const ReactCmp = allIcons[name];
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M246-160q-24 0-42-18t-18-42v-406L47-800h773q24 0 42 18t18 42v520q0 24-18 42t-42 18H246Zm0-580v520h574v-520H246Zm284 471 43-43-63-61h206v-60H364l166 164ZM364-527h352L550-690l-43 42 63 61H364v60ZM246-740v520-520Z" }),
8
+ ' '));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M602-319h131q12.75 0 21.375-8.625T763-349v-262q0-12.75-8.625-21.375T733-641H602q-12.75 0-21.375 8.625T572-611v262q0 12.75 8.625 21.375T602-319Zm30-60v-202h71v202h-71Zm-278 60h126q12.75 0 21.375-8.625T510-349v-262q0-12.75-8.625-21.375T480-641H354q-12.75 0-21.375 8.625T324-611v262q0 12.75 8.625 21.375T354-319Zm30-60v-202h66v202h-66Zm-187 60h60v-322h-60v322ZM80-160v-640h800v640H80Zm60-580v520-520Zm0 520h680v-520H140v520Z" }),
8
+ ' '));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "m704-139 139-138-42-42-97 95-39-39-42 43 81 81ZM240-620h480v-60H240v60ZM732.5-41Q655-41 600-96.5T545-228q0-78.435 54.99-133.717Q654.98-417 733-417q77 0 132.5 55.283Q921-306.435 921-228q0 76-55.5 131.5T732.5-41ZM120-81v-699q0-24.75 17.625-42.375T180-840h600q24.75 0 42.375 17.625T840-780v327q-14.169-6.857-29.085-11.429Q796-469 780-472v-308H180v599h310q2.885 18.172 8.942 34.586Q505-130 513-114l-33 33-60-60-60 60-60-60-60 60-60-60-60 60Zm120-199h252.272q3.728-16 8.228-31t12.5-29H240v60Zm0-170h384q22-11 46-17.5t50-8.5v-34H240v60Zm-60 269v-599 599Z" })));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M80-120v-720h390v165h410v555H80Zm60-60h270v-105H140v105Zm0-165h270v-105H140v105Zm0-165h270v-105H140v105Zm0-165h270v-105H140v105Zm330 495h350v-435H470v435Zm80-270v-60h165v60H550Zm0 165v-60h165v60H550Z" }),
8
+ ' '));