@adaptabletools/adaptable 18.0.0-canary.15 → 18.0.0-canary.16
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.
- package/package.json +1 -1
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +6 -0
- package/src/AdaptableOptions/MenuOptions.d.ts +5 -1
- package/src/AdaptableOptions/MenuOptions.js +71 -70
- package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
- package/src/Strategy/DataImportModule.d.ts +1 -1
- package/src/Strategy/DataImportModule.js +4 -4
- package/src/Utilities/Services/LicenseService/index.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
- package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +42 -0
- package/src/View/Components/FilterForm/FilterForm.js +20 -12
- package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
- package/src/View/GridFilter/GridFilterViewPanel.js +2 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
- package/src/agGrid/AdaptableAgGrid.js +7 -11
- package/src/agGrid/AgGridMenuAdapter.js +7 -5
- package/src/agGrid/defaultAdaptableOptions.js +1 -0
- package/src/components/Datepicker/index.js +8 -2
- package/src/components/Input/index.d.ts +1 -2
- package/src/components/Textarea/index.d.ts +2 -2
- package/src/env.js +2 -2
- package/tsconfig.esm.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "18.0.0-canary.
|
|
3
|
+
"version": "18.0.0-canary.16",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -102,6 +102,12 @@ export interface ColumnFilterOptions<TData = any> {
|
|
|
102
102
|
* @noCodeItem
|
|
103
103
|
*/
|
|
104
104
|
showSuspendFilterButton?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Wether to show Date Picker or only Date Input
|
|
107
|
+
*
|
|
108
|
+
* @default true
|
|
109
|
+
*/
|
|
110
|
+
showDatePicker?: boolean;
|
|
105
111
|
}
|
|
106
112
|
/**
|
|
107
113
|
* Options for managing the Filter Bar (aka Quick Filter)
|
|
@@ -177,6 +177,10 @@ type ModuleGroup = {
|
|
|
177
177
|
icon?: AdaptableIcon;
|
|
178
178
|
title: string;
|
|
179
179
|
};
|
|
180
|
-
export declare const DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
|
|
181
180
|
export declare const DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
|
|
181
|
+
/**
|
|
182
|
+
* Defines the order of Menu Items in the CONTEXT Menu
|
|
183
|
+
* The items commented out do not have a Context Menu Option
|
|
184
|
+
*/
|
|
185
|
+
export declare const DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
|
|
182
186
|
export {};
|
|
@@ -1,95 +1,96 @@
|
|
|
1
1
|
import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
|
|
2
|
-
export const
|
|
3
|
-
ModuleConstants.
|
|
2
|
+
export const DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = [
|
|
3
|
+
ModuleConstants.CalculatedColumnModuleId,
|
|
4
|
+
ModuleConstants.CellSummaryModuleId,
|
|
5
|
+
ModuleConstants.ColumnFilterModuleId,
|
|
6
|
+
ModuleConstants.ColumnInfoModuleId,
|
|
7
|
+
ModuleConstants.CustomSortModuleId,
|
|
4
8
|
ModuleConstants.DashboardModuleId,
|
|
5
|
-
ModuleConstants.
|
|
6
|
-
ModuleConstants.StatusBarModuleId,
|
|
7
|
-
ModuleConstants.LayoutModuleId,
|
|
8
|
-
ModuleConstants.FormatColumnModuleId,
|
|
9
|
-
ModuleConstants.StyledColumnModuleId,
|
|
9
|
+
ModuleConstants.DataImportModuleId,
|
|
10
10
|
ModuleConstants.FlashingCellModuleId,
|
|
11
|
-
ModuleConstants.
|
|
12
|
-
ModuleConstants.
|
|
13
|
-
ModuleConstants.Fdc3ModuleId,
|
|
11
|
+
ModuleConstants.FormatColumnModuleId,
|
|
12
|
+
ModuleConstants.FreeTextColumnModuleId,
|
|
14
13
|
ModuleConstants.GridInfoModuleId,
|
|
15
|
-
ModuleConstants.
|
|
14
|
+
ModuleConstants.LayoutModuleId,
|
|
15
|
+
ModuleConstants.PlusMinusModuleId,
|
|
16
|
+
ModuleConstants.SettingsPanelModuleId,
|
|
17
|
+
ModuleConstants.StyledColumnModuleId,
|
|
18
|
+
ModuleConstants.SystemStatusModuleId, // Single Item - Always present
|
|
19
|
+
/*
|
|
20
|
+
// Modules that dont provide a Column Menu
|
|
16
21
|
ModuleConstants.AlertModuleId,
|
|
17
|
-
ModuleConstants.
|
|
18
|
-
ModuleConstants.
|
|
19
|
-
ModuleConstants.
|
|
20
|
-
{
|
|
21
|
-
title: 'Edit',
|
|
22
|
-
icon: {
|
|
23
|
-
name: 'edit',
|
|
24
|
-
},
|
|
25
|
-
modules: [ModuleConstants.SmartEditModuleId, ModuleConstants.BulkUpdateModuleId],
|
|
26
|
-
},
|
|
27
|
-
ModuleConstants.TeamSharingModuleId,
|
|
22
|
+
ModuleConstants.BulkUpdateModuleId,
|
|
23
|
+
ModuleConstants.ChartingModuleId,
|
|
24
|
+
ModuleConstants.CommentModuleId,
|
|
28
25
|
ModuleConstants.DataChangeHistoryModuleId,
|
|
29
26
|
ModuleConstants.DataSetModuleId,
|
|
30
|
-
ModuleConstants.
|
|
27
|
+
ModuleConstants.ExportModuleId,
|
|
28
|
+
ModuleConstants.Fdc3ModuleId,
|
|
29
|
+
ModuleConstants.GridFilterModuleId,
|
|
31
30
|
ModuleConstants.NamedQueryModuleId,
|
|
31
|
+
ModuleConstants.NoteModuleId,
|
|
32
32
|
ModuleConstants.QuickSearchModuleId,
|
|
33
|
-
ModuleConstants.DataSetModuleId,
|
|
34
|
-
ModuleConstants.AlertModuleId,
|
|
35
|
-
ModuleConstants.SystemStatusModuleId,
|
|
36
|
-
ModuleConstants.CalculatedColumnModuleId,
|
|
37
|
-
ModuleConstants.FreeTextColumnModuleId,
|
|
38
|
-
ModuleConstants.ExportModuleId,
|
|
39
|
-
ModuleConstants.DataImportModuleId,
|
|
40
|
-
ModuleConstants.DataChangeHistoryModuleId,
|
|
41
|
-
ModuleConstants.PlusMinusModuleId,
|
|
42
|
-
ModuleConstants.ShortcutModuleId,
|
|
43
|
-
ModuleConstants.TeamSharingModuleId,
|
|
44
33
|
ModuleConstants.ScheduleModuleId,
|
|
34
|
+
ModuleConstants.ShortcutModuleId,
|
|
35
|
+
ModuleConstants.SmartEditModuleId,
|
|
45
36
|
ModuleConstants.StateManagementModuleId,
|
|
37
|
+
ModuleConstants.StatusBarModuleId,
|
|
38
|
+
ModuleConstants.TeamSharingModuleId,
|
|
46
39
|
ModuleConstants.ThemeModuleId,
|
|
47
|
-
ModuleConstants.ChartingModuleId,
|
|
48
|
-
ModuleConstants.NoteModuleId,
|
|
49
|
-
ModuleConstants.CommentModuleId,
|
|
50
|
-
];
|
|
51
|
-
export const DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = [
|
|
52
|
-
ModuleConstants.SettingsPanelModuleId,
|
|
53
|
-
ModuleConstants.DashboardModuleId,
|
|
54
40
|
ModuleConstants.ToolPanelModuleId,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
ModuleConstants.Fdc3ModuleId,
|
|
63
|
-
ModuleConstants.GridInfoModuleId,
|
|
64
|
-
ModuleConstants.ColumnInfoModuleId,
|
|
41
|
+
*/
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Defines the order of Menu Items in the CONTEXT Menu
|
|
45
|
+
* The items commented out do not have a Context Menu Option
|
|
46
|
+
*/
|
|
47
|
+
export const DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE = [
|
|
65
48
|
ModuleConstants.AlertModuleId,
|
|
49
|
+
ModuleConstants.BulkUpdateModuleId,
|
|
66
50
|
ModuleConstants.CalculatedColumnModuleId,
|
|
67
|
-
ModuleConstants.
|
|
51
|
+
ModuleConstants.CellSummaryModuleId,
|
|
68
52
|
ModuleConstants.ColumnFilterModuleId,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
ModuleConstants.
|
|
53
|
+
ModuleConstants.ColumnInfoModuleId,
|
|
54
|
+
ModuleConstants.CommentModuleId,
|
|
55
|
+
ModuleConstants.DashboardModuleId,
|
|
56
|
+
ModuleConstants.DataImportModuleId,
|
|
57
|
+
ModuleConstants.ExportModuleId,
|
|
58
|
+
ModuleConstants.Fdc3ModuleId,
|
|
59
|
+
ModuleConstants.FlashingCellModuleId,
|
|
60
|
+
ModuleConstants.GridInfoModuleId,
|
|
61
|
+
ModuleConstants.LayoutModuleId,
|
|
62
|
+
ModuleConstants.NoteModuleId,
|
|
63
|
+
ModuleConstants.SettingsPanelModuleId,
|
|
64
|
+
ModuleConstants.SmartEditModuleId,
|
|
65
|
+
ModuleConstants.SystemStatusModuleId, // Single Item - Always present
|
|
66
|
+
// this currently doesnt work
|
|
67
|
+
// {
|
|
68
|
+
// title: 'Edit',
|
|
69
|
+
// icon: {
|
|
70
|
+
// name: 'edit',
|
|
71
|
+
// },
|
|
72
|
+
// modules: [ModuleConstants.SmartEditModuleId, ModuleConstants.BulkUpdateModuleId],
|
|
73
|
+
// },
|
|
74
|
+
/*
|
|
75
|
+
// Modules that dont provide a Context Menu
|
|
76
|
+
ModuleConstants.ChartingModuleId,
|
|
77
|
+
ModuleConstants.CustomSortModuleId,
|
|
74
78
|
ModuleConstants.DataChangeHistoryModuleId,
|
|
75
79
|
ModuleConstants.DataSetModuleId,
|
|
80
|
+
ModuleConstants.FormatColumnModuleId,
|
|
76
81
|
ModuleConstants.FreeTextColumnModuleId,
|
|
82
|
+
ModuleConstants.GridFilterModuleId,
|
|
77
83
|
ModuleConstants.NamedQueryModuleId,
|
|
78
|
-
ModuleConstants.QuickSearchModuleId,
|
|
79
|
-
ModuleConstants.DataSetModuleId,
|
|
80
|
-
ModuleConstants.AlertModuleId,
|
|
81
|
-
ModuleConstants.SystemStatusModuleId,
|
|
82
|
-
ModuleConstants.CalculatedColumnModuleId,
|
|
83
|
-
ModuleConstants.FreeTextColumnModuleId,
|
|
84
|
-
ModuleConstants.ExportModuleId,
|
|
85
|
-
ModuleConstants.DataImportModuleId,
|
|
86
|
-
ModuleConstants.DataChangeHistoryModuleId,
|
|
87
84
|
ModuleConstants.PlusMinusModuleId,
|
|
88
|
-
ModuleConstants.
|
|
89
|
-
ModuleConstants.TeamSharingModuleId,
|
|
85
|
+
ModuleConstants.QuickSearchModuleId,
|
|
90
86
|
ModuleConstants.ScheduleModuleId,
|
|
87
|
+
ModuleConstants.ShortcutModuleId,
|
|
91
88
|
ModuleConstants.StateManagementModuleId,
|
|
89
|
+
ModuleConstants.StatusBarModuleId,
|
|
90
|
+
ModuleConstants.StyledColumnModuleId,
|
|
91
|
+
ModuleConstants.TeamSharingModuleId,
|
|
92
92
|
ModuleConstants.ThemeModuleId,
|
|
93
|
-
ModuleConstants.
|
|
94
|
-
|
|
93
|
+
ModuleConstants.ToolPanelModuleId,
|
|
94
|
+
|
|
95
|
+
*/
|
|
95
96
|
];
|
|
@@ -269,8 +269,10 @@ export const LayoutReducer = (state = initialState, action) => {
|
|
|
269
269
|
return Object.assign(Object.assign({}, state), { Layouts });
|
|
270
270
|
}
|
|
271
271
|
case LAYOUT_COLUMN_FILTER_ADD: {
|
|
272
|
-
let columnFilters = [...((_b = currentLayout.ColumnFilters) !== null && _b !== void 0 ? _b : [])];
|
|
273
272
|
const columnFilterAction = action.columnFilter;
|
|
273
|
+
let columnFilters = ((_b = currentLayout.ColumnFilters) !== null && _b !== void 0 ? _b : []).filter(
|
|
274
|
+
// make sure we are not adding a filter that already exists
|
|
275
|
+
(cf) => cf.ColumnId !== columnFilterAction.ColumnId);
|
|
274
276
|
AdaptableHelper.addUuidAndSource(columnFilterAction);
|
|
275
277
|
columnFilters.push(columnFilterAction);
|
|
276
278
|
const Layouts = state.Layouts.map((layout) => {
|
|
@@ -283,10 +285,13 @@ export const LayoutReducer = (state = initialState, action) => {
|
|
|
283
285
|
}
|
|
284
286
|
case LAYOUT_COLUMN_FILTER_EDIT: {
|
|
285
287
|
const columnFilterAction = action.columnFilter;
|
|
286
|
-
|
|
288
|
+
// it is safer to change the col id, we cannot have multiple filter on the same id
|
|
289
|
+
// first we filter out other filters with the same colId, to ensure we have only one
|
|
290
|
+
const cleanColumnFilters = ((_c = currentLayout.ColumnFilters) !== null && _c !== void 0 ? _c : []).filter((cf) => cf.ColumnId !== columnFilterAction.ColumnId);
|
|
291
|
+
cleanColumnFilters.push(columnFilterAction);
|
|
287
292
|
const Layouts = state.Layouts.map((layout) => {
|
|
288
293
|
if (layout.Name === currentLayout.Name) {
|
|
289
|
-
return Object.assign(Object.assign({}, layout), { ColumnFilters:
|
|
294
|
+
return Object.assign(Object.assign({}, layout), { ColumnFilters: cleanColumnFilters });
|
|
290
295
|
}
|
|
291
296
|
return layout;
|
|
292
297
|
});
|
|
@@ -302,14 +307,11 @@ export const LayoutReducer = (state = initialState, action) => {
|
|
|
302
307
|
return Object.assign(Object.assign({}, state), { Layouts });
|
|
303
308
|
}
|
|
304
309
|
case LAYOUT_COLUMN_FILTER_CLEAR: {
|
|
305
|
-
let columnFilters = [...((_d = currentLayout.ColumnFilters) !== null && _d !== void 0 ? _d : [])];
|
|
306
310
|
const actionTypedDelete = action;
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
columnFilters.splice(index, 1);
|
|
312
|
-
}
|
|
311
|
+
const columnFilters = ((_d = currentLayout.ColumnFilters) !== null && _d !== void 0 ? _d : []).filter((cf) => {
|
|
312
|
+
// make sure we are deleting all filters on the same column
|
|
313
|
+
return cf.ColumnId !== actionTypedDelete.columnFilter.ColumnId;
|
|
314
|
+
});
|
|
313
315
|
const Layouts = state.Layouts.map((layout) => {
|
|
314
316
|
if (layout.Name === currentLayout.Name) {
|
|
315
317
|
return Object.assign(Object.assign({}, layout), { ColumnFilters: columnFilters });
|
|
@@ -7,5 +7,5 @@ export declare class DataImportModule extends AdaptableModuleBase implements IMo
|
|
|
7
7
|
addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
|
|
8
8
|
addContextMenuItems(): AdaptableMenuItem[] | undefined;
|
|
9
9
|
addColumnMenuItems(): AdaptableMenuItem[] | undefined;
|
|
10
|
-
private
|
|
10
|
+
private createDataImportMenuItem;
|
|
11
11
|
}
|
|
@@ -6,21 +6,21 @@ export class DataImportModule extends AdaptableModuleBase {
|
|
|
6
6
|
}
|
|
7
7
|
addModuleMenuItem(source) {
|
|
8
8
|
if (this.isModuleAvailable()) {
|
|
9
|
-
return this.
|
|
9
|
+
return this.createDataImportMenuItem(source);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
addContextMenuItems() {
|
|
13
13
|
if (this.isModuleAvailable()) {
|
|
14
|
-
return [this.
|
|
14
|
+
return [this.createDataImportMenuItem('ContextMenu')];
|
|
15
15
|
}
|
|
16
16
|
return undefined;
|
|
17
17
|
}
|
|
18
18
|
addColumnMenuItems() {
|
|
19
19
|
if (this.isModuleAvailable()) {
|
|
20
|
-
return [this.
|
|
20
|
+
return [this.createDataImportMenuItem('ColumnMenu')];
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
createDataImportMenuItem(source) {
|
|
24
24
|
const moduleParams = {
|
|
25
25
|
action: 'New',
|
|
26
26
|
source: source,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SystemLicenseDisablePersistence as e,SystemLicenseShowWatermark as a}from"../../../Redux/ActionsReducers/SystemRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import
|
|
1
|
+
import{SystemLicenseDisablePersistence as e,SystemLicenseShowWatermark as a}from"../../../Redux/ActionsReducers/SystemRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import s from"../../ObjectFactory";import i from"lodash/clamp";import{LicenseDocsLink as o}from"../../Constants/DocumentationLinkConstants";import{decode as n,GENERIC_APP_NAME as r}from"../../license/decode";import{shouldLogThankYouMessage as l}from"./shouldLogThankYouMessage";const c="sales@adaptabletools.com",d=10,p=864e5;export var LicenseValidityType;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(LicenseValidityType||(LicenseValidityType={}));const h=/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g,E=/(https):\/\/\S+(\.csb\.app)/g,I=/(https):\/\/\S+(\.adaptabletools\.com)/g,_=()=>"undefined"!=typeof window?window.location.origin:"",O=()=>{const e=_();console.log("isInsideSandpack",e);const[a,t,s]=Array.from(h.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===s},A=()=>{const e=_();console.log("isInsideSandbox",e);const[a,t,s]=Array.from(E.exec(e)||[]);return"https"===t&&".csb.app"===s},L=()=>{const e=_();console.log("isDemoApp",e);const[a,t,s]=Array.from(I.exec(e)||[]);return"https"===t&&".adaptabletools.com"===s};export class LicenseService{constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",(()=>{requestAnimationFrame((()=>{this.init()}))}))}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}O()||A()||L()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return LicenseValidityType.NO_LICENSE;if(e instanceof Error)return LicenseValidityType.INVALID_LICENSE;const t=new Date(a.publishedAt),s=new Date(e.end),i=s<new Date,o=e.trial;let n=null;return n=i?s>t?o?LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE:o?LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?LicenseValidityType.NON_PRODUCTION_VALID:LicenseValidityType.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){var t;const s=new Date;s.setHours(0,0,0,0);let n=0;e instanceof Error||!(null==e?void 0:e.end)||(n=Math.floor(((null===(t=null==e?void 0:e.end)||void 0===t?void 0:t.getTime())-s.getTime())/p),n=i(n,0,1/0));let h="",E="";!e||e instanceof Error||!e.appName||e.appName==r||(h=e.appName,E=" for application [APP_NAME]");const I=(e,a=o,t=c,s=n,i=h)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",i).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(I("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(I("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(I("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(I("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(n<=d)this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{l()&&this.adaptable.logger.consoleLogByMessageType(I(`Thank you for using a valid AdapTable license${E}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction(t({alertType:"generic",header:"License Error",message:e,alertDefinition:s.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction(a(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction(e())}destroy(){}}
|
|
@@ -83,7 +83,7 @@ export const UIOptionsStatusbarForm = (props) => {
|
|
|
83
83
|
React.createElement(Box, { as: "b" }, "Create Adaptable Statusbar Panel"),
|
|
84
84
|
React.createElement(FormLayout, { mt: 2 },
|
|
85
85
|
React.createElement(FormRow, { label: "Panel Name" },
|
|
86
|
-
React.createElement(Input, { value: adaptablePanelTitle,
|
|
86
|
+
React.createElement(Input, { value: adaptablePanelTitle, placeholder: 'Adaptable Panel Name', onChange: (event) => setAdaptablePanelTitle(event.target.value) })),
|
|
87
87
|
React.createElement(FormRow, { label: "Align" },
|
|
88
88
|
React.createElement(DropdownButton, { columns: ['label'], items: alignOptions }, (_d = alignOptions.find((option) => option.value === adaptablePanelAlign)) === null || _d === void 0 ? void 0 : _d.label)),
|
|
89
89
|
React.createElement(FormRow, { label: "" },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AdaptableInputProps } from '../AdaptableInput';
|
|
3
3
|
export type AdaptableDateInputProps = AdaptableInputProps;
|
|
4
|
-
declare const AdaptableDateInput: React.ForwardRefExoticComponent<Pick<import("../../../components/Input").InputProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode"
|
|
4
|
+
declare const AdaptableDateInput: React.ForwardRefExoticComponent<Pick<import("../../../components/Input").InputProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode"> & React.RefAttributes<HTMLInputElement>>;
|
|
5
5
|
export default AdaptableDateInput;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const AdaptableDateInlineInput: React.ForwardRefExoticComponent<Pick<Omit<import("../../../components/Input").InputProps, "onChange" | "value"> & {
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
value: string;
|
|
5
|
+
}, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { isValid, parse } from 'date-fns';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import Input from '../../../components/Input';
|
|
5
|
+
import { useAdaptable } from '../../AdaptableContext';
|
|
6
|
+
export const AdaptableDateInlineInput = React.forwardRef((props, ref) => {
|
|
7
|
+
var _a;
|
|
8
|
+
const [hasFocus, setHasFocus] = useState(false);
|
|
9
|
+
const dateInputOptions = useAdaptable().adaptableOptions.userInterfaceOptions.dateInputOptions;
|
|
10
|
+
const dateProps = {
|
|
11
|
+
format: dateInputOptions.dateFormat,
|
|
12
|
+
locale: dateInputOptions.locale,
|
|
13
|
+
};
|
|
14
|
+
const [inputValue, setInputValue] = useState(() => {
|
|
15
|
+
return props.value;
|
|
16
|
+
});
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (hasFocus) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
setInputValue(props.value);
|
|
22
|
+
}, [props.value]);
|
|
23
|
+
const handleInputChange = (e) => {
|
|
24
|
+
setInputValue(e.currentTarget.value);
|
|
25
|
+
const date = parse(e.currentTarget.value, dateProps.format, new Date());
|
|
26
|
+
if (isValid(date)) {
|
|
27
|
+
props.onChange(e.currentTarget.value);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
props.onChange(undefined);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return (React.createElement(Input, Object.assign({}, props, { onFocus: (event) => {
|
|
34
|
+
var _a;
|
|
35
|
+
(_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, event);
|
|
36
|
+
setHasFocus(true);
|
|
37
|
+
}, onBlur: (event) => {
|
|
38
|
+
var _a;
|
|
39
|
+
(_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
|
|
40
|
+
setHasFocus(false);
|
|
41
|
+
}, ref: ref, value: inputValue, onChange: (e) => handleInputChange(e), placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : dateProps.format, style: props.style, disabled: props.disabled })));
|
|
42
|
+
});
|
|
@@ -14,12 +14,13 @@ import { ObjectFactory } from '../../../Utilities/ObjectFactory';
|
|
|
14
14
|
import HelpBlock from '../../../components/HelpBlock';
|
|
15
15
|
import { Flex } from 'rebass';
|
|
16
16
|
import Radio from '../../../components/Radio';
|
|
17
|
-
import Helper from '../../../Utilities/Helpers/Helper';
|
|
17
|
+
import Helper, { cloneObject } from '../../../Utilities/Helpers/Helper';
|
|
18
18
|
import AdaptableInput from '../AdaptableInput';
|
|
19
19
|
import { renderWithAdaptableContext } from '../../renderWithAdaptableContext';
|
|
20
20
|
import { CheckBox } from '../../../components/CheckBox';
|
|
21
21
|
import { runIfNotResolvedIn } from '../../../Utilities/runIfNotResolvedIn';
|
|
22
22
|
import { getDefaultColumnFilterPredicate } from './getDefaultColumnFilterPredicate';
|
|
23
|
+
import { AdaptableDateInlineInput } from '../AdaptableInput/AdaptableDateInlineInput';
|
|
23
24
|
const panelStyle = {
|
|
24
25
|
width: '100%',
|
|
25
26
|
minWidth: 150,
|
|
@@ -174,13 +175,20 @@ class FilterFormComponent extends React.Component {
|
|
|
174
175
|
this.changeColumnPredicateInput(newCheckedValue, 0);
|
|
175
176
|
} })));
|
|
176
177
|
}
|
|
177
|
-
return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) =>
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
178
|
+
return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
|
|
179
|
+
var _a, _b;
|
|
180
|
+
const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
|
|
181
|
+
if (predicateInput.type === 'date' && !showDatePicker) {
|
|
182
|
+
return (React.createElement(AdaptableDateInlineInput, { value: filter.Predicate.Inputs[index], onChange: (value) => this.changeColumnPredicateInput(value, index) }));
|
|
183
|
+
}
|
|
184
|
+
return (React.createElement(Flex, { key: index, flexDirection: "row" },
|
|
185
|
+
React.createElement(AdaptableInput, { onMouseDown: (event) => {
|
|
186
|
+
if (predicateInput.type === 'date') {
|
|
187
|
+
// This prevents the ag-grid dropdown closing when a date is selected
|
|
188
|
+
event.stopPropagation();
|
|
189
|
+
}
|
|
190
|
+
}, disabled: this.isFilterDisabled(), type: predicateInput.type, autoFocus: index === 0, value: filter.Predicate.Inputs[index], onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), mb: 1, flex: 1, fontSize: 2 })));
|
|
191
|
+
});
|
|
184
192
|
}
|
|
185
193
|
isFilterDisabled() {
|
|
186
194
|
var _a;
|
|
@@ -255,12 +263,12 @@ class FilterFormComponent extends React.Component {
|
|
|
255
263
|
}
|
|
256
264
|
changeColumnPredicateInput(value, index) {
|
|
257
265
|
const { editedColumnFilter } = this.state;
|
|
258
|
-
|
|
259
|
-
|
|
266
|
+
const newEditedColumnFilter = cloneObject(editedColumnFilter);
|
|
267
|
+
newEditedColumnFilter.Predicate.Inputs[index] = value;
|
|
268
|
+
this.setState({ editedColumnFilter: newEditedColumnFilter });
|
|
260
269
|
if (this.props.api.optionsApi.getColumnFilterOptions().autoApplyFilter) {
|
|
261
|
-
this.props.onSetColumnFilter(
|
|
270
|
+
this.props.onSetColumnFilter(newEditedColumnFilter);
|
|
262
271
|
}
|
|
263
|
-
// this.props.onSetColumnFilter(editedColumnFilter);
|
|
264
272
|
}
|
|
265
273
|
}
|
|
266
274
|
function mapStateToProps(state, ownProps) {
|
|
@@ -15,6 +15,7 @@ import { getDefaultColumnFilterPredicate } from './getDefaultColumnFilterPredica
|
|
|
15
15
|
import { isAdaptableIcon } from '../../../components/Icon';
|
|
16
16
|
import { QuickFilterValues } from './QuickFilterValues';
|
|
17
17
|
import { AdaptableIconComponent } from '../AdaptableIconComponent';
|
|
18
|
+
import { AdaptableDateInlineInput } from '../AdaptableInput/AdaptableDateInlineInput';
|
|
18
19
|
class QuickFilterFormComponent extends React.Component {
|
|
19
20
|
constructor(props) {
|
|
20
21
|
super(props);
|
|
@@ -136,17 +137,23 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
136
137
|
} })));
|
|
137
138
|
}
|
|
138
139
|
return (_a = predicateDef === null || predicateDef === void 0 ? void 0 : predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
|
|
139
|
-
var _a, _b;
|
|
140
|
+
var _a, _b, _c, _d, _e, _f;
|
|
141
|
+
const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
|
|
142
|
+
const value = (_d = (_c = filter.Predicate.Inputs) === null || _c === void 0 ? void 0 : _c[index]) !== null && _d !== void 0 ? _d : '';
|
|
143
|
+
const onKeyDownCapture = (e) => {
|
|
144
|
+
if (e.nativeEvent.key === 'Escape') {
|
|
145
|
+
e.nativeEvent.preventDefault();
|
|
146
|
+
e.nativeEvent.stopPropagation();
|
|
147
|
+
this.clearFilter();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
if (predicateInput.type === 'date' && !showDatePicker) {
|
|
151
|
+
return (React.createElement(AdaptableDateInlineInput, { value: value, onKeyDownCapture: onKeyDownCapture, onChange: (value) => this.changeColumnPredicateInput(value, index) }));
|
|
152
|
+
}
|
|
140
153
|
return (React.createElement(AdaptableInput, { disabled: this.isFilterDisabled(), key: index, type: predicateInput.type === 'number' ? 'text' : predicateInput.type,
|
|
141
154
|
// autoFocus has to be FALSE because if the input receives focus in the init phase,
|
|
142
155
|
// it may scroll the AG Grid header viewport into view and de-synchronize it (relative to the content viewport)
|
|
143
|
-
autoFocus: false, value: (
|
|
144
|
-
if (e.nativeEvent.key === 'Escape') {
|
|
145
|
-
e.nativeEvent.preventDefault();
|
|
146
|
-
e.nativeEvent.stopPropagation();
|
|
147
|
-
this.clearFilter();
|
|
148
|
-
}
|
|
149
|
-
}, style: {
|
|
156
|
+
autoFocus: false, value: (_f = (_e = filter.Predicate.Inputs) === null || _e === void 0 ? void 0 : _e[index]) !== null && _f !== void 0 ? _f : '', onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), onKeyDownCapture: onKeyDownCapture, style: {
|
|
150
157
|
width: '100%',
|
|
151
158
|
padding: 'var(--ab-space-1)',
|
|
152
159
|
borderRadius: 0,
|
|
@@ -49,7 +49,7 @@ const QueryViewPanelComponent = (props) => {
|
|
|
49
49
|
paddingTop: 6,
|
|
50
50
|
overflow: 'hidden',
|
|
51
51
|
zIndex: 100,
|
|
52
|
-
},
|
|
52
|
+
}, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
|
|
53
53
|
isExpressionValid && (React.createElement(ButtonPlay, { onClick: () => runQuery(), tooltip: '', accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", disabled: disabled || expression == '' || expression == (gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression), marginRight: 1 })),
|
|
54
54
|
gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", marginRight: 1 })),
|
|
55
55
|
' ',
|
|
@@ -75,7 +75,7 @@ const QueryViewPanelComponent = (props) => {
|
|
|
75
75
|
zIndex: 100,
|
|
76
76
|
height: '100%',
|
|
77
77
|
overflow: 'hidden',
|
|
78
|
-
},
|
|
78
|
+
}, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
|
|
79
79
|
};
|
|
80
80
|
const saveButton = (React.createElement(ButtonSave, { onClick: () => saveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryModuleAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression == '', variant: "text", tone: "neutral", marginRight: 1 }));
|
|
81
81
|
const suspendButton = (React.createElement(ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
|
|
@@ -170,7 +170,7 @@ const ColumnRow = (props) => {
|
|
|
170
170
|
React.createElement(FormRow, { label: "ColumnId" },
|
|
171
171
|
React.createElement(Tag, null, props.column.columnId)),
|
|
172
172
|
React.createElement(FormRow, { label: "Header" },
|
|
173
|
-
React.createElement(Input, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input",
|
|
173
|
+
React.createElement(Input, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placeholder: "Custom name (optional)", onChange: () => {
|
|
174
174
|
props.onColumnNameChange(props.column.columnId, event.target.value);
|
|
175
175
|
}, value: customHeader })),
|
|
176
176
|
React.createElement(FormRow, { label: "Width" },
|
|
@@ -1137,6 +1137,13 @@ export class AdaptableAgGrid {
|
|
|
1137
1137
|
const currentLayout = removeUuidAndSource(_currentLayout);
|
|
1138
1138
|
const allAgGridFlattenedColDefs = this.agGridAdapter.getFlattenedColDefs(agGridColDefs);
|
|
1139
1139
|
const allAgGridColDefIds = allAgGridFlattenedColDefs.map((colDef) => colDef.colId);
|
|
1140
|
+
const { columnApi } = this.api;
|
|
1141
|
+
// also add the row group columns, if they are specified in the layout
|
|
1142
|
+
currentLayout.Columns.forEach((colId) => {
|
|
1143
|
+
if (columnApi.isAutoRowGroupColumn(colId)) {
|
|
1144
|
+
allAgGridColDefIds.push(colId);
|
|
1145
|
+
}
|
|
1146
|
+
});
|
|
1140
1147
|
const getColDef = (colId) => allAgGridFlattenedColDefs.find((colDef) => colDef.colId === colId);
|
|
1141
1148
|
agGridState.columnVisibility = {
|
|
1142
1149
|
hiddenColIds: allAgGridFlattenedColDefs
|
|
@@ -2210,17 +2217,6 @@ export class AdaptableAgGrid {
|
|
|
2210
2217
|
const colId2 = colState2.colId;
|
|
2211
2218
|
const originalIndex1 = columnsStateIndexes[colId1];
|
|
2212
2219
|
const originalIndex2 = columnsStateIndexes[colId2];
|
|
2213
|
-
const isRowGroup1 = this.api.columnApi.isAutoRowGroupColumn(colId1);
|
|
2214
|
-
const isRowGroup2 = this.api.columnApi.isAutoRowGroupColumn(colId2);
|
|
2215
|
-
if (isRowGroup1 && isRowGroup2) {
|
|
2216
|
-
return 1;
|
|
2217
|
-
}
|
|
2218
|
-
if (isRowGroup1) {
|
|
2219
|
-
return -1;
|
|
2220
|
-
}
|
|
2221
|
-
if (isRowGroup2) {
|
|
2222
|
-
return 1;
|
|
2223
|
-
}
|
|
2224
2220
|
if (newVisibleColumnsMap[colId1] != null && newVisibleColumnsMap[colId2] == null) {
|
|
2225
2221
|
return -1;
|
|
2226
2222
|
}
|