@adaptabletools/adaptable 12.0.0-canary.4 → 12.0.0-canary.7

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 (78) hide show
  1. package/bundle.cjs.js +133 -130
  2. package/package.json +1 -1
  3. package/publishTimestamp.d.ts +1 -1
  4. package/publishTimestamp.js +1 -1
  5. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
  6. package/src/AdaptableOptions/ColumnOptions.d.ts +4 -0
  7. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +2 -0
  8. package/src/AdaptableOptions/EditOptions.d.ts +6 -0
  9. package/src/AdaptableOptions/FinancePluginOptions.d.ts +1 -1
  10. package/src/AdaptableOptions/LayoutOptions.d.ts +11 -6
  11. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +2 -0
  12. package/src/AdaptableOptions/StateOptions.d.ts +10 -0
  13. package/src/Api/Events/ActionRowSubmitted.d.ts +24 -0
  14. package/src/Api/FilterApi.d.ts +7 -0
  15. package/src/Api/Implementation/AlertApiImpl.d.ts +2 -4
  16. package/src/Api/Implementation/AlertApiImpl.js +2 -3
  17. package/src/Api/Implementation/ApiBase.d.ts +12 -1
  18. package/src/Api/Implementation/ApiBase.js +7 -0
  19. package/src/Api/Implementation/ConditionalStyleApiImpl.d.ts +2 -4
  20. package/src/Api/Implementation/ConditionalStyleApiImpl.js +2 -3
  21. package/src/Api/Implementation/CustomSortApiImpl.d.ts +2 -4
  22. package/src/Api/Implementation/CustomSortApiImpl.js +2 -3
  23. package/src/Api/Implementation/FilterApiImpl.d.ts +8 -0
  24. package/src/Api/Implementation/FilterApiImpl.js +25 -0
  25. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +2 -4
  26. package/src/Api/Implementation/FlashingCellApiImpl.js +2 -3
  27. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +2 -4
  28. package/src/Api/Implementation/FormatColumnApiImpl.js +2 -3
  29. package/src/Api/Implementation/InternalApiImpl.d.ts +1 -1
  30. package/src/Api/Implementation/InternalApiImpl.js +5 -4
  31. package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
  32. package/src/Api/Implementation/LayoutApiImpl.js +0 -6
  33. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +2 -4
  34. package/src/Api/Implementation/PlusMinusApiImpl.js +2 -3
  35. package/src/Api/Implementation/PredicateApiImpl.d.ts +1 -0
  36. package/src/Api/Implementation/PredicateApiImpl.js +3 -0
  37. package/src/Api/Implementation/ScheduleApiImpl.d.ts +6 -16
  38. package/src/Api/Implementation/ScheduleApiImpl.js +10 -16
  39. package/src/Api/Implementation/ShortcutApiImpl.d.ts +2 -4
  40. package/src/Api/Implementation/ShortcutApiImpl.js +2 -3
  41. package/src/Api/Implementation/SmartEditApiImpl.d.ts +1 -1
  42. package/src/Api/Implementation/SmartEditApiImpl.js +2 -1
  43. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +4 -0
  44. package/src/Api/Implementation/TeamSharingApiImpl.js +12 -0
  45. package/src/Api/InternalApi.d.ts +1 -1
  46. package/src/Api/LayoutApi.d.ts +1 -6
  47. package/src/Api/PredicateApi.d.ts +6 -0
  48. package/src/Api/SmartEditApi.d.ts +1 -1
  49. package/src/Api/TeamSharingApi.d.ts +15 -0
  50. package/src/PredefinedConfig/Common/AdaptablePredicate.js +5 -5
  51. package/src/Redux/Store/AdaptableStore.js +3 -0
  52. package/src/Strategy/Interface/IModule.d.ts +2 -1
  53. package/src/Strategy/LayoutModule.d.ts +2 -1
  54. package/src/Strategy/LayoutModule.js +51 -1
  55. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  56. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
  57. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +8 -0
  58. package/src/Utilities/Extensions/TypeExtensions.d.ts +30 -0
  59. package/src/Utilities/Helpers/AdaptableHelper.d.ts +1 -3
  60. package/src/Utilities/Helpers/AdaptableHelper.js +2 -13
  61. package/src/Utilities/Helpers/DateHelper.d.ts +27 -0
  62. package/src/Utilities/Helpers/DateHelper.js +33 -1
  63. package/src/Utilities/Services/Interface/IMetamodelService.d.ts +1 -0
  64. package/src/Utilities/Services/MetamodelService.d.ts +7 -1
  65. package/src/Utilities/Services/MetamodelService.js +82 -6
  66. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +10 -8
  67. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  68. package/src/View/Components/FilterForm/QuickFilterForm.js +1 -1
  69. package/src/View/GridInfo/GridInfoPopup.js +3 -1
  70. package/src/View/StatusBar/StatusBarPopup.js +1 -1
  71. package/src/agGrid/Adaptable.js +7 -4
  72. package/src/components/Dashboard/Dashboard.js +2 -1
  73. package/src/metamodel/adaptable-metamodel-model.d.ts +1 -1
  74. package/src/metamodel/adaptable.metamodel.d.ts +91 -13
  75. package/src/metamodel/adaptable.metamodel.js +1 -12981
  76. package/src/types.d.ts +2 -1
  77. package/version.d.ts +1 -1
  78. package/version.js +1 -1
@@ -1,4 +1,4 @@
1
- import { ApiBase } from './ApiBase';
1
+ import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
2
2
  import { ScheduleApi } from '../ScheduleApi';
3
3
  import { BaseSchedule } from '../../PredefinedConfig/Common/Schedule';
4
4
  import { ReportSchedule } from '../../PredefinedConfig/ExportState';
@@ -9,9 +9,7 @@ import { ReminderSchedule, ScheduleState } from '../../PredefinedConfig/Schedule
9
9
  export declare class ScheduleApiImpl extends ApiBase implements ScheduleApi {
10
10
  getScheduleState(): ScheduleState;
11
11
  getAllSchedule(): BaseSchedule[];
12
- getAllReminderSchedule(config?: {
13
- includeLayoutNotAssociatedObjects?: boolean;
14
- }): ReminderSchedule[];
12
+ getAllReminderSchedule(config?: LayoutAssociatedObjectLoadConfig): ReminderSchedule[];
15
13
  getScheduleById(id: BaseSchedule['Uuid']): BaseSchedule;
16
14
  getAllActiveReminderSchedule(): ReminderSchedule[];
17
15
  getAllSuspendedReminderSchedule(): ReminderSchedule[];
@@ -20,9 +18,7 @@ export declare class ScheduleApiImpl extends ApiBase implements ScheduleApi {
20
18
  editReminderSchedule(schedule: ReminderSchedule): ReminderSchedule;
21
19
  suspendReminderSchedule(schedule: ReminderSchedule): ReminderSchedule;
22
20
  unSuspendReminderSchedule(schedule: ReminderSchedule): ReminderSchedule;
23
- getAllReportSchedule(config?: {
24
- includeLayoutNotAssociatedObjects?: boolean;
25
- }): ReportSchedule[];
21
+ getAllReportSchedule(config?: LayoutAssociatedObjectLoadConfig): ReportSchedule[];
26
22
  getAllActiveReportSchedule(): ReportSchedule[];
27
23
  getAllSuspendedReportSchedule(): ReportSchedule[];
28
24
  addReportSchedule(schedule: ReportSchedule): ReportSchedule;
@@ -30,9 +26,7 @@ export declare class ScheduleApiImpl extends ApiBase implements ScheduleApi {
30
26
  deleteReportSchedule(schedule: ReportSchedule): void;
31
27
  suspendReportSchedule(schedule: ReportSchedule): ReportSchedule;
32
28
  unSuspendReportSchedule(schedule: ReportSchedule): ReportSchedule;
33
- getAllIPushPullSchedule(config?: {
34
- includeLayoutNotAssociatedObjects?: boolean;
35
- }): IPushPullSchedule[];
29
+ getAllIPushPullSchedule(config?: LayoutAssociatedObjectLoadConfig): IPushPullSchedule[];
36
30
  getAllActiveIPushPullSchedule(): IPushPullSchedule[];
37
31
  getAllSuspendedIPushPullSchedule(): IPushPullSchedule[];
38
32
  addIPushPullSchedule(schedule: IPushPullSchedule): IPushPullSchedule;
@@ -40,9 +34,7 @@ export declare class ScheduleApiImpl extends ApiBase implements ScheduleApi {
40
34
  deleteIPushPullSchedule(schedule: IPushPullSchedule): void;
41
35
  suspendIPushPullSchedule(schedule: IPushPullSchedule): IPushPullSchedule;
42
36
  unSuspendIPushPullSchedule(schedule: IPushPullSchedule): IPushPullSchedule;
43
- getAllGlue42Schedule(config?: {
44
- includeLayoutNotAssociatedObjects?: boolean;
45
- }): Glue42Schedule[];
37
+ getAllGlue42Schedule(config?: LayoutAssociatedObjectLoadConfig): Glue42Schedule[];
46
38
  getAllActiveGlue42Schedule(): Glue42Schedule[];
47
39
  getAllSuspendedGlue42Schedule(): Glue42Schedule[];
48
40
  addGlue42Schedule(schedule: Glue42Schedule): Glue42Schedule;
@@ -50,9 +42,7 @@ export declare class ScheduleApiImpl extends ApiBase implements ScheduleApi {
50
42
  deleteGlue42Schedule(schedule: Glue42Schedule): void;
51
43
  suspendGlue42Schedule(schedule: Glue42Schedule): Glue42Schedule;
52
44
  unSuspendGlue42Schedule(schedule: Glue42Schedule): Glue42Schedule;
53
- getAllOpenFinSchedule(config?: {
54
- includeLayoutNotAssociatedObjects?: boolean;
55
- }): OpenFinSchedule[];
45
+ getAllOpenFinSchedule(config?: LayoutAssociatedObjectLoadConfig): OpenFinSchedule[];
56
46
  getAllActiveOpenFinSchedule(): OpenFinSchedule[];
57
47
  getAllSuspendedOpenFinSchedule(): OpenFinSchedule[];
58
48
  addOpenFinSchedule(schedule: OpenFinSchedule): OpenFinSchedule;
@@ -19,9 +19,8 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
19
19
  return allSchedules;
20
20
  }
21
21
  getAllReminderSchedule(config) {
22
- var _a, _b;
23
- return ((_b = (_a = this.getScheduleState().Reminders) === null || _a === void 0 ? void 0 : _a.filter((schedule) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
24
- this.adaptable.api.internalApi.isObjectAvailableInLayout(schedule, 'Schedule'))) !== null && _b !== void 0 ? _b : []);
22
+ var _a;
23
+ return ((_a = this.handleLayoutAssociatedObjects(this.getScheduleState().Reminders, 'Schedule', config)) !== null && _a !== void 0 ? _a : []);
25
24
  }
26
25
  getScheduleById(id) {
27
26
  return this.getAllSchedule().find((schedule) => (schedule === null || schedule === void 0 ? void 0 : schedule.Uuid) === id);
@@ -52,10 +51,8 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
52
51
  return this.getScheduleById(schedule.Uuid);
53
52
  }
54
53
  getAllReportSchedule(config) {
55
- var _a, _b;
56
- return ((_b = (_a = this.adaptable.api.exportApi
57
- .getReportSchedules()) === null || _a === void 0 ? void 0 : _a.filter((schedule) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
58
- this.adaptable.api.internalApi.isObjectAvailableInLayout(schedule, 'Schedule'))) !== null && _b !== void 0 ? _b : []);
54
+ var _a;
55
+ return ((_a = this.handleLayoutAssociatedObjects(this.adaptable.api.exportApi.getReportSchedules(), 'Schedule', config)) !== null && _a !== void 0 ? _a : []);
59
56
  }
60
57
  getAllActiveReportSchedule() {
61
58
  return this.getAllReportSchedule().filter((schedule) => !schedule.IsSuspended);
@@ -83,10 +80,9 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
83
80
  return this.getScheduleById(schedule.Uuid);
84
81
  }
85
82
  getAllIPushPullSchedule(config) {
86
- var _a, _b;
83
+ var _a;
87
84
  const ippApi = this.adaptable.api.pluginsApi.getipushpullPluginApi();
88
- return ((_b = (_a = ippApi === null || ippApi === void 0 ? void 0 : ippApi.getIPushPullSchedules()) === null || _a === void 0 ? void 0 : _a.filter((schedule) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
89
- this.adaptable.api.internalApi.isObjectAvailableInLayout(schedule, 'Schedule'))) !== null && _b !== void 0 ? _b : []);
85
+ return ((_a = this.handleLayoutAssociatedObjects(ippApi === null || ippApi === void 0 ? void 0 : ippApi.getIPushPullSchedules(), 'Schedule', config)) !== null && _a !== void 0 ? _a : []);
90
86
  }
91
87
  getAllActiveIPushPullSchedule() {
92
88
  return this.getAllIPushPullSchedule().filter((schedule) => !schedule.IsSuspended);
@@ -114,10 +110,9 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
114
110
  return this.getScheduleById(schedule.Uuid);
115
111
  }
116
112
  getAllGlue42Schedule(config) {
117
- var _a, _b;
113
+ var _a;
118
114
  const glue42Api = this.adaptable.api.pluginsApi.getGlue42PluginApi();
119
- return ((_b = (_a = glue42Api === null || glue42Api === void 0 ? void 0 : glue42Api.getGlue42Schedules()) === null || _a === void 0 ? void 0 : _a.filter((schedule) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
120
- this.adaptable.api.internalApi.isObjectAvailableInLayout(schedule, 'Schedule'))) !== null && _b !== void 0 ? _b : []);
115
+ return ((_a = this.handleLayoutAssociatedObjects(glue42Api === null || glue42Api === void 0 ? void 0 : glue42Api.getGlue42Schedules(), 'Schedule', config)) !== null && _a !== void 0 ? _a : []);
121
116
  }
122
117
  getAllActiveGlue42Schedule() {
123
118
  return this.getAllGlue42Schedule().filter((schedule) => !schedule.IsSuspended);
@@ -145,10 +140,9 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
145
140
  return this.getScheduleById(schedule.Uuid);
146
141
  }
147
142
  getAllOpenFinSchedule(config) {
148
- var _a, _b;
143
+ var _a;
149
144
  const openFinApi = this.adaptable.api.pluginsApi.getOpenFinPluginApi();
150
- return ((_b = (_a = openFinApi === null || openFinApi === void 0 ? void 0 : openFinApi.getOpenFinSchedules()) === null || _a === void 0 ? void 0 : _a.filter((schedule) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
151
- this.adaptable.api.internalApi.isObjectAvailableInLayout(schedule, 'Schedule'))) !== null && _b !== void 0 ? _b : []);
145
+ return ((_a = this.handleLayoutAssociatedObjects(openFinApi === null || openFinApi === void 0 ? void 0 : openFinApi.getOpenFinSchedules(), 'Schedule', config)) !== null && _a !== void 0 ? _a : []);
152
146
  }
153
147
  getAllActiveOpenFinSchedule() {
154
148
  return this.getAllOpenFinSchedule().filter((schedule) => !schedule.IsSuspended);
@@ -1,11 +1,9 @@
1
- import { ApiBase } from './ApiBase';
1
+ import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
2
2
  import { ShortcutApi } from '../ShortcutApi';
3
3
  import { ShortcutState, Shortcut } from '../../PredefinedConfig/ShortcutState';
4
4
  export declare class ShortcutApiImpl extends ApiBase implements ShortcutApi {
5
5
  getShortcutState(): ShortcutState;
6
- getAllShortcut(config?: {
7
- includeLayoutNotAssociatedObjects?: boolean;
8
- }): Shortcut[];
6
+ getAllShortcut(config?: LayoutAssociatedObjectLoadConfig): Shortcut[];
9
7
  getShortcutById(id: Shortcut['Uuid']): Shortcut;
10
8
  getAllActiveShortcut(): Shortcut[];
11
9
  getAllSuspendedShortcut(): Shortcut[];
@@ -10,9 +10,8 @@ class ShortcutApiImpl extends ApiBase_1.ApiBase {
10
10
  return this.getAdaptableState().Shortcut;
11
11
  }
12
12
  getAllShortcut(config) {
13
- var _a, _b;
14
- return ((_b = (_a = this.getShortcutState().Shortcuts) === null || _a === void 0 ? void 0 : _a.filter((shortcut) => (config === null || config === void 0 ? void 0 : config.includeLayoutNotAssociatedObjects) ||
15
- this.adaptable.api.internalApi.isObjectAvailableInLayout(shortcut, 'Shortcut'))) !== null && _b !== void 0 ? _b : []);
13
+ var _a;
14
+ return ((_a = this.handleLayoutAssociatedObjects(this.getShortcutState().Shortcuts, 'Shortcut', config)) !== null && _a !== void 0 ? _a : []);
16
15
  }
17
16
  getShortcutById(id) {
18
17
  return this.getAllShortcut().find((shortcut) => (shortcut === null || shortcut === void 0 ? void 0 : shortcut.Uuid) === id);
@@ -10,6 +10,6 @@ export declare class SmartEditApiImpl extends ApiBase implements SmartEditApi {
10
10
  getSmartEditValue(): number;
11
11
  showSmartEditPopup(): void;
12
12
  applySmartEdit(gridCells: GridCell[]): void;
13
- getSmartEditCustomOperations(): SmartEditCustomOperation[] | undefined;
13
+ getSmartEditCustomOperations(): SmartEditCustomOperation[];
14
14
  setCustomSmartEditOperation(customOperationName: string): void;
15
15
  }
@@ -26,7 +26,8 @@ class SmartEditApiImpl extends ApiBase_1.ApiBase {
26
26
  this.dispatchAction(SmartEditRedux.SmartEditApply(gridCells));
27
27
  }
28
28
  getSmartEditCustomOperations() {
29
- return this.getEditOptions().smartEditCustomOperations;
29
+ var _a;
30
+ return (_a = this.getEditOptions().smartEditCustomOperations) !== null && _a !== void 0 ? _a : [];
30
31
  }
31
32
  setCustomSmartEditOperation(customOperationName) {
32
33
  const customOperation = this.getSmartEditCustomOperations().find((so) => so.name == customOperationName);
@@ -12,4 +12,8 @@ export declare class TeamSharingApiImpl extends ApiBase implements TeamSharingAp
12
12
  fireTeamSharingEntityChangedEvent(sharedEntity: SharedEntity): void;
13
13
  shareEntity(entity: AdaptableObject, module: AdaptableModule, sharedEntityConfig: SharedEntityConfig): void;
14
14
  unshareEntity(entityId: string): void;
15
+ importSharedEntry(sharedEntity: SharedEntity): void;
16
+ private getTeamSharingState;
17
+ getLoadedSharedEntities(): SharedEntity[];
18
+ triggerLoadingTeamSharingEntries(): void;
15
19
  }
@@ -69,5 +69,17 @@ class TeamSharingApiImpl extends ApiBase_1.ApiBase {
69
69
  }
70
70
  this.dispatchAction(TeamSharingRedux.TeamSharingRemoveItem(entityId));
71
71
  }
72
+ importSharedEntry(sharedEntity) {
73
+ this.adaptable.api.internalApi.dispatchReduxAction(TeamSharingRedux.TeamSharingImportItem(sharedEntity));
74
+ }
75
+ getTeamSharingState() {
76
+ return this.getAdaptableState().TeamSharing;
77
+ }
78
+ getLoadedSharedEntities() {
79
+ return this.getTeamSharingState().SharedEntities;
80
+ }
81
+ triggerLoadingTeamSharingEntries() {
82
+ this.adaptable.api.internalApi.dispatchReduxAction(TeamSharingRedux.TeamSharingGet());
83
+ }
72
84
  }
73
85
  exports.TeamSharingApiImpl = TeamSharingApiImpl;
@@ -126,7 +126,7 @@ export interface InternalApi {
126
126
  initializeDataChangeHistory(): void;
127
127
  isTextComparisonCaseSensitive(): boolean;
128
128
  hasLayoutSpecificObjects(): boolean;
129
- isObjectAvailableInLayout(object: LayoutAssociatedObject, module: AdaptableModule): boolean;
129
+ isObjectAvailableInLayout(object: LayoutAssociatedObject, module: AdaptableModule, layout: Layout): boolean;
130
130
  showLayoutNotAssociatedObjects(): boolean;
131
131
  executeWithProgressIndicator(label: string, executeFn: () => unknown): void;
132
132
  hideProgressIndicator(): void;
@@ -1,4 +1,4 @@
1
- import { AdaptableColumn, ColumnSort, LayoutAssociatedObject } from '../../types';
1
+ import { AdaptableColumn, ColumnSort } from '../../types';
2
2
  import { LayoutState, Layout } from '../PredefinedConfig/LayoutState';
3
3
  /**
4
4
  * Provides run-time access to the Layout Module and associated state
@@ -182,11 +182,6 @@ export interface LayoutApi {
182
182
  * Returns true if Layouts will contain Expanded Row Groups information
183
183
  */
184
184
  areExpandedRowGroupsSavedInLayouts(): boolean;
185
- /**
186
- * Does an object's Tags include the Current Layout
187
- * @param adaptableObject object to check
188
- */
189
- isObjectAvailableInCurrentLayout(adaptableObject: LayoutAssociatedObject): boolean;
190
185
  /**
191
186
  * Removes a Column from the Current Layout
192
187
  * @param columnId Column to remove
@@ -59,4 +59,10 @@ export interface PredicateApi {
59
59
  * @param dataType DataType of Column
60
60
  */
61
61
  getEqualityPredicateForDataType(dataType: AdaptableColumnDataType): SystemFilterPredicateId;
62
+ /**
63
+ * Returns true if the predicate has a dropdown.
64
+ *
65
+ * @param predicate
66
+ */
67
+ hasPredicateValues(predicate: AdaptablePredicate): boolean;
62
68
  }
@@ -41,5 +41,5 @@ export interface SmartEditApi {
41
41
  /**
42
42
  * Retrieves an Smart Edit Custom Operations (provided in Edit Options)
43
43
  */
44
- getSmartEditCustomOperations(): SmartEditCustomOperation[] | undefined;
44
+ getSmartEditCustomOperations(): SmartEditCustomOperation[];
45
45
  }
@@ -54,4 +54,19 @@ export interface TeamSharingApi {
54
54
  * @param entityId the ID of the AdaptableObject to be removed from Team Share
55
55
  */
56
56
  unshareEntity(entityId: string): void;
57
+ /**
58
+ * Import shared entry.
59
+ *
60
+ * @param sharedEntity shared entry to import
61
+ */
62
+ importSharedEntry(sharedEntity: SharedEntity): void;
63
+ /**
64
+ * Retrieves already loaded shared entries.
65
+ */
66
+ getLoadedSharedEntities(): SharedEntity[];
67
+ /**
68
+ * Trigger loading of shared entries.
69
+ * By default shared entries are loaded when the Team Sharing popup is visible.
70
+ */
71
+ triggerLoadingTeamSharingEntries(): void;
57
72
  }
@@ -389,7 +389,7 @@ exports.SystemPredicateDefs = [
389
389
  columnScope: { DataTypes: ['Date'] },
390
390
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
391
391
  inputs: [{ type: 'date' }],
392
- handler: ({ value, inputs }) => isAfter_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
392
+ handler: ({ value, inputs }) => isAfter_1.default(DateHelper_1.parseFilterValueDate(value), DateHelper_1.parseFilterInputDate(inputs[0])),
393
393
  toString: ({ inputs }) => `> ${inputs[0]}`,
394
394
  },
395
395
  {
@@ -399,7 +399,7 @@ exports.SystemPredicateDefs = [
399
399
  columnScope: { DataTypes: ['Date'] },
400
400
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
401
401
  inputs: [{ type: 'date' }],
402
- handler: ({ value, inputs }) => isBefore_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
402
+ handler: ({ value, inputs }) => isBefore_1.default(DateHelper_1.parseFilterValueDate(value), DateHelper_1.parseFilterInputDate(inputs[0])),
403
403
  toString: ({ inputs }) => `< ${inputs[0]}`,
404
404
  },
405
405
  {
@@ -409,7 +409,7 @@ exports.SystemPredicateDefs = [
409
409
  columnScope: { DataTypes: ['Date'] },
410
410
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
411
411
  inputs: [{ type: 'date' }],
412
- handler: ({ value, inputs }) => isSameDay_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
412
+ handler: ({ value, inputs }) => isSameDay_1.default(DateHelper_1.parseFilterValueDate(value), DateHelper_1.parseFilterInputDate(inputs[0])),
413
413
  toString: ({ inputs }) => `= ${inputs[0]}`,
414
414
  },
415
415
  {
@@ -419,7 +419,7 @@ exports.SystemPredicateDefs = [
419
419
  columnScope: { DataTypes: ['Date'] },
420
420
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
421
421
  inputs: [{ type: 'date' }],
422
- handler: ({ value, inputs }) => !isSameDay_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
422
+ handler: ({ value, inputs }) => !isSameDay_1.default(DateHelper_1.parseFilterValueDate(value), DateHelper_1.parseFilterInputDate(inputs[0])),
423
423
  toString: ({ inputs }) => `!= ${inputs[0]}`,
424
424
  },
425
425
  {
@@ -428,7 +428,7 @@ exports.SystemPredicateDefs = [
428
428
  icon: { name: 'calendar' },
429
429
  columnScope: { DataTypes: ['Date'] },
430
430
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
431
- handler: ({ value, api }) => isSameDay_1.default(DateHelper_1.parseDateValue(value), CalendarHelper_1.default.getNextWorkingDay()),
431
+ handler: ({ value, api }) => isSameDay_1.default(DateHelper_1.parseFilterValueDate(value), CalendarHelper_1.default.getNextWorkingDay()),
432
432
  },
433
433
  {
434
434
  id: 'LastWorkDay',
@@ -215,6 +215,9 @@ class AdaptableStore {
215
215
  const composeEnhancers = (x) => x;
216
216
  const persistedReducer = (state, action) => {
217
217
  var _a, _b;
218
+ if (adaptable.isDestroyed) {
219
+ return state;
220
+ }
218
221
  const init = state === undefined;
219
222
  const newState = rootReducer(state, action);
220
223
  // ideally the reducer should be pure,
@@ -11,6 +11,7 @@ import { AdaptableOnePageWizardProps } from '../../View/Wizard/Interface/IAdapta
11
11
  import * as Redux from 'redux';
12
12
  import { SuspendableObject } from '../../../types';
13
13
  import { StatusBarPanelProps } from '../../View/StatusBar/StatusBarPanel';
14
+ import { StrictExtract } from '../../Utilities/Extensions/TypeExtensions';
14
15
  export interface ModuleInfo {
15
16
  ModuleName: AdaptableModule;
16
17
  FriendlyName: string;
@@ -21,7 +22,7 @@ export interface ModuleInfo {
21
22
  }
22
23
  export declare type TeamSharingReferences = TeamSharingReference[];
23
24
  export declare type TeamSharingReference = {
24
- Module: Extract<AdaptableModule, 'CalculatedColumn' | 'FreeTextColumn' | 'Query'>;
25
+ Module: StrictExtract<AdaptableModule, 'CalculatedColumn' | 'FreeTextColumn' | 'Query' | 'Alert' | 'ConditionalStyle' | 'CustomSort' | 'FlashingCell' | 'FormatColumn' | 'PlusMinus' | 'Shortcut' | 'Schedule'>;
25
26
  Reference: AdaptableObject;
26
27
  };
27
28
  export interface AdaptableObjectItemView {
@@ -4,13 +4,14 @@ import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Commo
4
4
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
5
5
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
6
6
  import { AdaptableApi } from '../Api/AdaptableApi';
7
- import { AdaptableModuleView, IModule } from './Interface/IModule';
7
+ import { AdaptableModuleView, IModule, TeamSharingReferences } from './Interface/IModule';
8
8
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  export declare class LayoutModule extends AdaptableModuleBase implements IModule {
10
10
  protected LayoutState: LayoutState;
11
11
  constructor(api: AdaptableApi);
12
12
  getModuleAdaptableObjects(): AdaptableObject[];
13
13
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
14
+ getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
14
15
  hasNamedQueryReferences(): boolean;
15
16
  handleAdaptableReady(): void;
16
17
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
@@ -43,7 +43,6 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
43
43
  }
44
44
  */
45
45
  getModuleAdaptableObjects() {
46
- // ignore - triggering build
47
46
  return this.api.layoutApi.getAllLayout();
48
47
  }
49
48
  getExplicitlyReferencedColumnIds(layout) {
@@ -60,6 +59,57 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
60
59
  }
61
60
  return Array.from(new Set(columnIds));
62
61
  }
62
+ getTeamSharingReferences(adaptableObject) {
63
+ const teamSharingReferences = super.getTeamSharingReferences(adaptableObject);
64
+ const layoutName = adaptableObject.Name;
65
+ if (this.api.internalApi.hasLayoutSpecificObjects() && !!layoutName) {
66
+ const layoutAssociatedObjectReferences = [];
67
+ const loadConfig = {
68
+ associatedWithLayout: layoutName,
69
+ };
70
+ // we ensured that there are layout specific objects, so all the "getAll*()" api methods will return only the objects available in the current layout
71
+ this.api.alertApi.getAlertDefinitions(loadConfig).forEach((alertDefinition) => layoutAssociatedObjectReferences.push({
72
+ Reference: alertDefinition,
73
+ Module: 'Alert',
74
+ }));
75
+ this.api.conditionalStyleApi.getAllConditionalStyle(loadConfig).forEach((conditionalStyle) => layoutAssociatedObjectReferences.push({
76
+ Reference: conditionalStyle,
77
+ Module: 'ConditionalStyle',
78
+ }));
79
+ this.api.customSortApi.getAllCustomSort(loadConfig).forEach((customSort) => layoutAssociatedObjectReferences.push({
80
+ Reference: customSort,
81
+ Module: 'CustomSort',
82
+ }));
83
+ this.api.flashingCellApi.getFlashingCellDefinitions(loadConfig).forEach((flashingCell) => layoutAssociatedObjectReferences.push({
84
+ Reference: flashingCell,
85
+ Module: 'FlashingCell',
86
+ }));
87
+ this.api.formatColumnApi.getAllFormatColumn(loadConfig).forEach((formatColumn) => layoutAssociatedObjectReferences.push({
88
+ Reference: formatColumn,
89
+ Module: 'FormatColumn',
90
+ }));
91
+ this.api.plusMinusApi.getAllPlusMinus(loadConfig).forEach((plusMinusNudge) => layoutAssociatedObjectReferences.push({
92
+ Reference: plusMinusNudge,
93
+ Module: 'PlusMinus',
94
+ }));
95
+ this.api.shortcutApi.getAllShortcut(loadConfig).forEach((shortcut) => layoutAssociatedObjectReferences.push({
96
+ Reference: shortcut,
97
+ Module: 'Shortcut',
98
+ }));
99
+ [
100
+ ...this.api.scheduleApi.getAllReportSchedule(loadConfig),
101
+ ...this.api.scheduleApi.getAllReminderSchedule(loadConfig),
102
+ ...this.api.scheduleApi.getAllGlue42Schedule(loadConfig),
103
+ ...this.api.scheduleApi.getAllIPushPullSchedule(loadConfig),
104
+ ...this.api.scheduleApi.getAllOpenFinSchedule(loadConfig),
105
+ ].forEach((schedule) => layoutAssociatedObjectReferences.push({
106
+ Reference: schedule,
107
+ Module: 'Schedule',
108
+ }));
109
+ teamSharingReferences.push(...layoutAssociatedObjectReferences);
110
+ }
111
+ return teamSharingReferences;
112
+ }
63
113
  hasNamedQueryReferences() {
64
114
  return false;
65
115
  }
@@ -8,3 +8,4 @@ export declare const AggregatedScalarQueryDocsLink: string;
8
8
  export declare const PredicateDocsLink: string;
9
9
  export declare const PrimaryKeyDocsLink: string;
10
10
  export declare const LicenseDocsLink: string;
11
+ export declare const AdaptableOptionsDocsLink: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
3
+ exports.AdaptableOptionsDocsLink = exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
4
4
  exports.HOST_URL_DOCS = 'https://docs.adaptabletools.com';
5
5
  //export const HOST_URL_DOCS = 'http://localhost:3000';
6
6
  exports.ExpressionEditorDocsLink = `${exports.HOST_URL_DOCS}/guide/ui-expression-editor`;
@@ -12,3 +12,4 @@ exports.AggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptabl
12
12
  exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-predicate`;
13
13
  exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/guide/dev-guide-tutorial-primary-key`;
14
14
  exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/guide/licensing`;
15
+ exports.AdaptableOptionsDocsLink = `${exports.HOST_URL_DOCS}/guide/reference-options-overview`;
@@ -12,6 +12,7 @@ const aggregatedBooleanExpressionFunctions_1 = require("../ExpressionFunctions/a
12
12
  const AdaptablePredicate_1 = require("../../PredefinedConfig/Common/AdaptablePredicate");
13
13
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
14
14
  const aggregatedScalarExpressionFunctions_1 = require("../ExpressionFunctions/aggregatedScalarExpressionFunctions");
15
+ // change type to DeepRequired<AdaptableOptions> to check which properties have no default values defined
15
16
  exports.DefaultAdaptableOptions = {
16
17
  adaptableId: GeneralConstants.ADAPTABLE_ID,
17
18
  adaptableStateKey: undefined,
@@ -28,6 +29,7 @@ exports.DefaultAdaptableOptions = {
28
29
  statusbarHighlightDuration: 2000,
29
30
  dataChangeDetectionPolicy: 'rawValue',
30
31
  actionHandlers: undefined,
32
+ alertMessageText: undefined,
31
33
  },
32
34
  notificationsOptions: {
33
35
  maxNotifications: 3,
@@ -80,6 +82,7 @@ exports.DefaultAdaptableOptions = {
80
82
  alertContainer: undefined,
81
83
  },
82
84
  columnOptions: {
85
+ columnFriendlyName: undefined,
83
86
  columnTypes: GeneralConstants_1.EMPTY_ARRAY,
84
87
  showMissingColumnsWarning: true,
85
88
  autoOrderGroupedColumns: true,
@@ -110,6 +113,7 @@ exports.DefaultAdaptableOptions = {
110
113
  validateOnServer: undefined,
111
114
  displayServerValidationMessages: true,
112
115
  isCellEditable: undefined,
116
+ smartEditCustomOperations: undefined,
113
117
  },
114
118
  entitlementOptions: {
115
119
  defaultAccessLevel: 'Full',
@@ -157,6 +161,8 @@ exports.DefaultAdaptableOptions = {
157
161
  maxColumnsToDisplay: 10,
158
162
  },
159
163
  layoutTagOptions: {
164
+ autoGenerateTagsForLayouts: false,
165
+ isObjectAvailableInLayout: undefined,
160
166
  autoCheckTagsForLayouts: false,
161
167
  },
162
168
  },
@@ -211,6 +217,7 @@ exports.DefaultAdaptableOptions = {
211
217
  saveState: (state) => state,
212
218
  loadState: undefined,
213
219
  persistState: undefined,
220
+ clearState: undefined,
214
221
  },
215
222
  teamSharingOptions: {
216
223
  enableTeamSharing: false,
@@ -249,6 +256,7 @@ exports.DefaultAdaptableOptions = {
249
256
  dataChangeHistoryOptions: {
250
257
  activeByDefault: false,
251
258
  showDataChange: undefined,
259
+ changeHistoryButton: undefined,
252
260
  },
253
261
  settingsPanelOptions: {
254
262
  popupType: 'window',
@@ -43,4 +43,34 @@ export declare type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<
43
43
  }[Keys];
44
44
  /** Similar to the builtin Extract, but checks the filter strictly */
45
45
  export declare type StrictExtract<T, U extends Partial<T>> = Extract<T, U>;
46
+ /**
47
+ * DeepRequired
48
+ *
49
+ * from https://github.com/piotrwitek/utility-types
50
+ *
51
+ * @desc Required that works for deeply nested structure
52
+ * @example
53
+ * // Expect: {
54
+ * // first: {
55
+ * // second: {
56
+ * // name: string;
57
+ * // };
58
+ * // };
59
+ * // }
60
+ * type NestedProps = {
61
+ * first?: {
62
+ * second?: {
63
+ * name?: string;
64
+ * };
65
+ * };
66
+ * };
67
+ * type RequiredNestedProps = DeepRequired<NestedProps>;
68
+ */
69
+ export declare type DeepRequired<T> = T extends (...args: any[]) => any ? T : T extends any[] ? _DeepRequiredArray<T[number]> : T extends object ? _DeepRequiredObject<T> : T;
70
+ export interface _DeepRequiredArray<T> extends Array<DeepRequired<NonUndefined<T>>> {
71
+ }
72
+ export declare type _DeepRequiredObject<T> = {
73
+ [P in keyof T]-?: DeepRequired<NonUndefined<T[P]>>;
74
+ };
75
+ export declare type NonUndefined<A> = A extends undefined ? never : A;
46
76
  export {};
@@ -9,15 +9,13 @@ export declare function initPredefinedConfigWithUuids(predefinedConfig: Predefin
9
9
  export declare function checkValidPrimaryKey(adaptable: IAdaptable): boolean;
10
10
  export declare function AdaptableObjectExistsInState(array: AdaptableObject[], itemToCheck: AdaptableObject): boolean;
11
11
  export declare function getAppropriateAccessLevel(adaptableObject: AdaptableObject, moduleAccessLevel: AccessLevel): AccessLevel;
12
- export declare function checkAdaptableOptions(adaptableOptions: AdaptableOptions): void;
13
12
  export declare function runAdaptableComparerFunction(columnId: string, columnValues: any[], adaptable: IAdaptable): AdaptableComparerFunction;
14
13
  export declare function addAdaptableObjectUuidAndSource(adaptableObject: AdaptableObject): AdaptableObject;
15
14
  export declare const AdaptableHelper: {
16
- assignadaptableOptions: typeof assignAdaptableOptions;
15
+ assignAdaptableOptions: typeof assignAdaptableOptions;
17
16
  initPredefinedConfigWithUuids: typeof initPredefinedConfigWithUuids;
18
17
  checkValidPrimaryKey: typeof checkValidPrimaryKey;
19
18
  AdaptableObjectExistsInState: typeof AdaptableObjectExistsInState;
20
- checkAdaptableOptions: typeof checkAdaptableOptions;
21
19
  runAdaptableComparerFunction: typeof runAdaptableComparerFunction;
22
20
  getAppropriateAccessLevel: typeof getAppropriateAccessLevel;
23
21
  addUuidAndSource: typeof addAdaptableObjectUuidAndSource;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptableHelper = exports.addAdaptableObjectUuidAndSource = exports.runAdaptableComparerFunction = exports.checkAdaptableOptions = exports.getAppropriateAccessLevel = exports.AdaptableObjectExistsInState = exports.checkValidPrimaryKey = exports.initPredefinedConfigWithUuids = exports.assignAdaptableOptions = void 0;
3
+ exports.AdaptableHelper = exports.addAdaptableObjectUuidAndSource = exports.runAdaptableComparerFunction = exports.getAppropriateAccessLevel = exports.AdaptableObjectExistsInState = exports.checkValidPrimaryKey = exports.initPredefinedConfigWithUuids = exports.assignAdaptableOptions = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cloneDeepWith_1 = tslib_1.__importDefault(require("lodash/cloneDeepWith"));
6
6
  const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
@@ -98,16 +98,6 @@ function getAppropriateAccessLevel(adaptableObject, moduleAccessLevel) {
98
98
  return moduleAccessLevel;
99
99
  }
100
100
  exports.getAppropriateAccessLevel = getAppropriateAccessLevel;
101
- // perform any checks that are necessary here
102
- // for now just adaptableId
103
- function checkAdaptableOptions(adaptableOptions) {
104
- if (adaptableOptions.adaptableId) {
105
- if (adaptableOptions.adaptableId.includes('.')) {
106
- LoggingHelper_1.ConsoleLogWarning("The 'adaptableId' property in adaptableOptions should not include a '.'. We strongly recommend that you remove this.");
107
- }
108
- }
109
- }
110
- exports.checkAdaptableOptions = checkAdaptableOptions;
111
101
  function runAdaptableComparerFunction(columnId, columnValues, adaptable) {
112
102
  return function compareItemsOfCustomSort(valueA, valueB, nodeA, nodeB) {
113
103
  let firstElementValueString = nodeA
@@ -149,11 +139,10 @@ function addAdaptableObjectUuidAndSource(adaptableObject) {
149
139
  }
150
140
  exports.addAdaptableObjectUuidAndSource = addAdaptableObjectUuidAndSource;
151
141
  exports.AdaptableHelper = {
152
- assignadaptableOptions: assignAdaptableOptions,
142
+ assignAdaptableOptions,
153
143
  initPredefinedConfigWithUuids,
154
144
  checkValidPrimaryKey,
155
145
  AdaptableObjectExistsInState,
156
- checkAdaptableOptions,
157
146
  runAdaptableComparerFunction,
158
147
  getAppropriateAccessLevel,
159
148
  addUuidAndSource: addAdaptableObjectUuidAndSource,
@@ -8,3 +8,30 @@ export declare const isValueValidDate: (data: any) => boolean;
8
8
  export declare const dateToISO: (date: Date | number | string) => string;
9
9
  export declare const parseToISO: (date: string | Date | number, dateFormat?: string) => string;
10
10
  export declare const parseDateValue: (dateValue: string | Date | number, dateFormat?: string) => Date | undefined;
11
+ /**
12
+ * Creates a date with the same day/month/year/hour with the current timezone.
13
+ * '2022-06-01T17:00:00.000Z' => '2022-06-01T17:00:00.000+03:00' // RO time
14
+ *
15
+ * new Date() always creates the date using the current timezone.
16
+ * To compare two dates, they need to be in the same timezone.
17
+ *
18
+ * @param date Date
19
+ */
20
+ export declare const utcDateToSameDateInLocale: (date: Date) => Date;
21
+ /**
22
+ * To make sure selected/input date is correct and in the current time-zone.
23
+
24
+ *
25
+ * '2022-06-14' is considered to be '2022-06-13 00:00:00.
26
+ * And when date object is created it uses the current timezone.
27
+ *
28
+ * '2022-06-14' => Mon Jun 13 2022 20:00:00 GMT-0400 (Eastern Daylight Time)
29
+ *
30
+ * @param stringDate date string
31
+ */
32
+ export declare const parseFilterInputDate: (stringDate: string) => Date;
33
+ /**
34
+ * Used to parse the date from rowDate inside date predicates.
35
+ * The date is parsed in moved to local timezone.
36
+ */
37
+ export declare const parseFilterValueDate: (value: any) => Date;