@adaptabletools/adaptable 18.0.0-canary.15 → 18.0.0-canary.17
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/AdaptableInterfaces/IAdaptable.d.ts +0 -2
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +7 -0
- package/src/AdaptableOptions/MenuOptions.d.ts +5 -1
- package/src/AdaptableOptions/MenuOptions.js +71 -70
- package/src/Api/GridApi.d.ts +1 -1
- package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
- package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
- package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
- package/src/Api/Implementation/GridApiImpl.js +1 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
- package/src/Api/Internal/AdaptableInternalApi.js +0 -3
- package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
- package/src/PredefinedConfig/Common/Enums.js +1 -0
- package/src/PredefinedConfig/Common/Menu.d.ts +10 -1
- package/src/PredefinedConfig/Common/Menu.js +71 -1
- package/src/PredefinedConfig/Common/RowSummary.d.ts +3 -1
- package/src/PredefinedConfig/Common/RowSummary.js +16 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
- package/src/Strategy/AdaptableModuleBase.d.ts +6 -5
- package/src/Strategy/AdaptableModuleBase.js +9 -8
- package/src/Strategy/AlertModule.js +1 -1
- package/src/Strategy/BulkUpdateModule.js +1 -1
- package/src/Strategy/CalculatedColumnModule.js +1 -1
- package/src/Strategy/CellSummaryModule.d.ts +7 -6
- package/src/Strategy/CellSummaryModule.js +37 -12
- package/src/Strategy/ColumnFilterModule.js +8 -7
- package/src/Strategy/ColumnInfoModule.js +2 -0
- package/src/Strategy/CommentModule.js +2 -2
- package/src/Strategy/CustomSortModule.js +2 -1
- package/src/Strategy/DashboardModule.js +8 -7
- package/src/Strategy/DataImportModule.d.ts +1 -1
- package/src/Strategy/DataImportModule.js +5 -5
- package/src/Strategy/ExportModule.d.ts +1 -0
- package/src/Strategy/ExportModule.js +17 -2
- package/src/Strategy/Fdc3Module.js +3 -0
- package/src/Strategy/FlashingCellModule.js +4 -4
- package/src/Strategy/FormatColumnModule.js +6 -4
- package/src/Strategy/FreeTextColumnModule.js +1 -1
- package/src/Strategy/GridInfoModule.js +2 -0
- package/src/Strategy/LayoutModule.js +32 -23
- package/src/Strategy/NoteModule.js +2 -2
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/SettingsPanelModule.js +3 -3
- package/src/Strategy/SmartEditModule.js +1 -1
- package/src/Strategy/StyledColumnModule.d.ts +1 -0
- package/src/Strategy/StyledColumnModule.js +23 -5
- package/src/Strategy/SystemStatusModule.js +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +124 -3
- package/src/Utilities/MenuItem.d.ts +7 -4
- package/src/Utilities/MenuItem.js +6 -3
- 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/AdaptableObjectList/AdaptableObjectList.js +5 -2
- package/src/View/Components/FilterForm/FilterForm.js +20 -12
- package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
- package/src/View/Components/ValueSelector/index.js +1 -1
- package/src/View/GridFilter/GridFilterViewPanel.js +2 -2
- package/src/View/Layout/Wizard/LayoutWizard.js +26 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +1 -0
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +26 -2
- package/src/agGrid/AdaptableAgGrid.d.ts +0 -2
- package/src/agGrid/AdaptableAgGrid.js +14 -14
- package/src/agGrid/AgGridMenuAdapter.js +7 -5
- package/src/agGrid/defaultAdaptableOptions.js +1 -0
- package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
- package/src/agGrid/weightedAverage.d.ts +0 -2
- package/src/agGrid/weightedAverage.js +0 -54
- package/src/components/Datepicker/index.js +10 -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/src/metamodel/adaptable.metamodel.d.ts +6 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/ISummaryService.d.ts +0 -17
- package/src/Utilities/Services/Interface/ISummaryService.js +0 -12
- package/src/Utilities/Services/SummaryService.d.ts +0 -10
- package/src/Utilities/Services/SummaryService.js +0 -17
|
@@ -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, key: index, 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,
|
|
@@ -62,7 +62,7 @@ export function ValueSelector(props) {
|
|
|
62
62
|
const label = !allowReorder ? preparedToLabel(option) : null;
|
|
63
63
|
const reorderable = typeof allowReorder === 'function' ? allowReorder(option) : allowReorder;
|
|
64
64
|
const renderNode = (props, dragHandleProps) => {
|
|
65
|
-
return (React.createElement(Flex, Object.assign({ className: `${baseClassName}__option`, alignItems: "center", mt: index ? 1 : 0, key: identifier, backgroundColor: 'primary', padding: 2, "data-index": index, "data-id": identifier, "data-name": "option" }, props),
|
|
65
|
+
return (React.createElement(Flex, Object.assign({ className: `${baseClassName}__option`, alignItems: "center", mt: index ? 1 : 0, key: identifier !== null && identifier !== void 0 ? identifier : index, backgroundColor: 'primary', padding: 2, "data-index": index, "data-id": identifier, "data-name": "option" }, props),
|
|
66
66
|
React.createElement(Flex, { flex: 1, flexDirection: "row", alignItems: "center" },
|
|
67
67
|
reorderable ? (React.createElement(Box, Object.assign({ mr: 3 }, dragHandleProps),
|
|
68
68
|
React.createElement(Icon, { name: "drag", style: { cursor: 'grab' } }))) : null,
|
|
@@ -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 }));
|
|
@@ -14,7 +14,8 @@ import { AggregationsSection, AggregationsSectionSummary, isAggregationsSectionV
|
|
|
14
14
|
import { SortSection, SortSectionSummary } from './sections/SortSection';
|
|
15
15
|
import { FilterSection, FilterSectionSummary, isColumnFiltersValid, } from './sections/FilterSection';
|
|
16
16
|
import { GridFilterSection, GridFilterSectionSummary, isGridFiltersValid, } from './sections/GridFilterSection';
|
|
17
|
-
import { RowSummarySection } from './sections/RowSummarySection';
|
|
17
|
+
import { areSummaryRowsValid, RowSummarySection } from './sections/RowSummarySection';
|
|
18
|
+
import { WEIGHTED_AVERAGE_AGGREATED_FUNCTION } from '../../../PredefinedConfig/Common/RowSummary';
|
|
18
19
|
export const LayoutWizard = (props) => {
|
|
19
20
|
var _a, _b;
|
|
20
21
|
const dispatch = useDispatch();
|
|
@@ -103,6 +104,7 @@ export const LayoutWizard = (props) => {
|
|
|
103
104
|
{
|
|
104
105
|
title: 'Row Groups',
|
|
105
106
|
isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
|
|
107
|
+
isValid: areSummaryRowsValid,
|
|
106
108
|
details: 'Configure Row Grouping',
|
|
107
109
|
renderSummary: () => React.createElement(RowGroupingSectionSummary, null),
|
|
108
110
|
render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
|
|
@@ -115,7 +117,29 @@ export const LayoutWizard = (props) => {
|
|
|
115
117
|
renderSummary: () => React.createElement(AggregationsSectionSummary, null),
|
|
116
118
|
isValid: (data) => isAggregationsSectionValid(data),
|
|
117
119
|
render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
|
|
118
|
-
React.createElement(AggregationsSection, { onChange:
|
|
120
|
+
React.createElement(AggregationsSection, { onChange: (layout) => {
|
|
121
|
+
let newLayout = cloneObject(layout);
|
|
122
|
+
// if we do not have an weighted avg col, we need to clear the row summary if one exists
|
|
123
|
+
if (newLayout.RowSummaries) {
|
|
124
|
+
newLayout.RowSummaries = newLayout.RowSummaries.map((rowSummary) => {
|
|
125
|
+
return Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.entries(rowSummary.ColumnsMap).reduce((acc, [columnId, aggFunc]) => {
|
|
126
|
+
if (
|
|
127
|
+
// see if it is weighted avg
|
|
128
|
+
aggFunc === WEIGHTED_AVERAGE_AGGREATED_FUNCTION &&
|
|
129
|
+
// see if we have a weight in the agg columns
|
|
130
|
+
newLayout.AggregationColumns[columnId] &&
|
|
131
|
+
(typeof newLayout.AggregationColumns[columnId] !== 'object' ||
|
|
132
|
+
newLayout.AggregationColumns[columnId].weightColumnId)) {
|
|
133
|
+
// need to remove the row summary
|
|
134
|
+
return acc;
|
|
135
|
+
}
|
|
136
|
+
acc[columnId] = aggFunc;
|
|
137
|
+
return acc;
|
|
138
|
+
}, {}) });
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
setLayout(newLayout);
|
|
142
|
+
} }))),
|
|
119
143
|
},
|
|
120
144
|
{
|
|
121
145
|
title: 'Row Summaries',
|
|
@@ -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" },
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Layout } from '../../../../../types';
|
|
3
|
+
export declare const areSummaryRowsValid: (layout: Layout) => true | string;
|
|
3
4
|
export declare const RowGroupingSectionSummary: React.FunctionComponent;
|
|
4
5
|
interface RowSummarySectionProps {
|
|
5
6
|
onChange: (data: Layout) => void;
|
|
@@ -6,14 +6,30 @@ import { Select } from '../../../../components/Select';
|
|
|
6
6
|
import SimpleButton from '../../../../components/SimpleButton';
|
|
7
7
|
import { Tabs } from '../../../../components/Tabs';
|
|
8
8
|
import { Tag } from '../../../../components/Tag';
|
|
9
|
+
import { summarySupportedExpressions, WEIGHTED_AVERAGE_AGGREATED_FUNCTION, } from '../../../../PredefinedConfig/Common/RowSummary';
|
|
9
10
|
import { mapColumnDataTypeToExpressionFunctionType } from '../../../../Utilities/adaptableQlUtils';
|
|
10
11
|
import { LayoutModuleId } from '../../../../Utilities/Constants/ModuleConstants';
|
|
11
|
-
import { summarySupportedExpressions } from '../../../../Utilities/Services/Interface/ISummaryService';
|
|
12
12
|
import { sortWithOrderArray } from '../../../../Utilities/sortWithOrder';
|
|
13
13
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
14
14
|
import { ValueSelector } from '../../../Components/ValueSelector';
|
|
15
15
|
import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
|
|
16
16
|
import { columnFilter } from './Utilities';
|
|
17
|
+
export const areSummaryRowsValid = (layout) => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (!layout.RowSummaries)
|
|
20
|
+
return true;
|
|
21
|
+
let valid = true;
|
|
22
|
+
(_a = layout.RowSummaries) === null || _a === void 0 ? void 0 : _a.find((rowSummary) => {
|
|
23
|
+
var _a;
|
|
24
|
+
for (const [_, fn] of Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})) {
|
|
25
|
+
if (!fn) {
|
|
26
|
+
valid = 'All row summary columns must have an aggregation function.';
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return valid;
|
|
32
|
+
};
|
|
17
33
|
const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
|
|
18
34
|
const inputType = mapColumnDataTypeToExpressionFunctionType(columnType);
|
|
19
35
|
return Object.entries(availableScalarExpressions !== null && availableScalarExpressions !== void 0 ? availableScalarExpressions : {})
|
|
@@ -53,7 +69,7 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
53
69
|
.getColumns()
|
|
54
70
|
.filter((column) => {
|
|
55
71
|
var _a, _b;
|
|
56
|
-
if (!['Number', 'String'].includes(column.dataType))
|
|
72
|
+
if (!['Number', 'String', 'Date'].includes(column.dataType))
|
|
57
73
|
return false;
|
|
58
74
|
return (_b = (_a = layout.Columns) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, column.columnId);
|
|
59
75
|
})
|
|
@@ -96,6 +112,14 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
96
112
|
label: expression,
|
|
97
113
|
value: expression,
|
|
98
114
|
}));
|
|
115
|
+
// check out if this layout has a aggregation with wighted column
|
|
116
|
+
const aggregation = layout.AggregationColumns[column.columnId];
|
|
117
|
+
if (aggregation && typeof aggregation === 'object' && aggregation.weightedColumnId) {
|
|
118
|
+
expressionOptions.push({
|
|
119
|
+
label: 'WEIGHTERD_AVG',
|
|
120
|
+
value: WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
99
123
|
const expression = rowSummary.ColumnsMap[column.columnId];
|
|
100
124
|
return (React.createElement(Flex, null,
|
|
101
125
|
React.createElement(Flex, { mr: 2, alignItems: 'center' }, label),
|
|
@@ -26,7 +26,6 @@ import { RenderReactRootFn } from '../renderReactRoot';
|
|
|
26
26
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
27
27
|
import { AgGridColumnAdapter } from './AgGridColumnAdapter';
|
|
28
28
|
import { RowEditService } from '../Utilities/Services/RowEditService';
|
|
29
|
-
import { ISummaryService } from '../Utilities/Services/Interface/ISummaryService';
|
|
30
29
|
export type AdaptableVariant = 'vanilla' | 'react' | 'angular';
|
|
31
30
|
export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'available' | 'ready' | 'preDestroyed';
|
|
32
31
|
type RenderAgGridFrameworkComponentResult = false | GridApi;
|
|
@@ -82,7 +81,6 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
82
81
|
RowEditService: RowEditService;
|
|
83
82
|
Fdc3Service: Fdc3Service;
|
|
84
83
|
CellPopupService: CellPopupService;
|
|
85
|
-
SummaryService: ISummaryService;
|
|
86
84
|
private LicenseService;
|
|
87
85
|
private ChartingService;
|
|
88
86
|
private ThemeService;
|
|
@@ -95,7 +95,6 @@ import { AdaptableUpgradeHelper } from '../migration/AdaptableUpgradeHelper';
|
|
|
95
95
|
import { ensurePortalElement } from '../components/Modal';
|
|
96
96
|
import { AdaptableLoadingScreen } from '../View/Components/Popups/AdaptableLoadingScreen';
|
|
97
97
|
import { createElement } from 'react';
|
|
98
|
-
import { SummaryService } from '../Utilities/Services/SummaryService';
|
|
99
98
|
import { removeUuidAndSource } from '../Utilities/Helpers/AdaptableHelper';
|
|
100
99
|
const RowNodeProto = RowNode.prototype;
|
|
101
100
|
const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
|
|
@@ -898,7 +897,7 @@ export class AdaptableAgGrid {
|
|
|
898
897
|
*/
|
|
899
898
|
// this will have to go/be heavily extended with https://github.com/AdaptableTools/adaptable/issues/2230
|
|
900
899
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'columnTypes', (original_columnTypes) => {
|
|
901
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
900
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
902
901
|
const providedColumnTypes = original_columnTypes || {};
|
|
903
902
|
const gridOptionsColumnTypes = gridOptions.columnTypes || {};
|
|
904
903
|
const patchedColumnTypes = Object.assign(providedColumnTypes, {
|
|
@@ -915,6 +914,12 @@ export class AdaptableAgGrid {
|
|
|
915
914
|
abColDefTupleNumberArray: (_j = gridOptionsColumnTypes.abColDefTupleNumberArray) !== null && _j !== void 0 ? _j : {},
|
|
916
915
|
abColDefObjectNumberArray: (_k = gridOptionsColumnTypes.abColDefObjectNumberArray) !== null && _k !== void 0 ? _k : {},
|
|
917
916
|
});
|
|
917
|
+
const customColumnTypes = (_l = this.api.columnApi.getColumnTypes()) !== null && _l !== void 0 ? _l : [];
|
|
918
|
+
for (const customColumnType of customColumnTypes) {
|
|
919
|
+
if (!patchedColumnTypes[customColumnType]) {
|
|
920
|
+
patchedColumnTypes[customColumnType] = {};
|
|
921
|
+
}
|
|
922
|
+
}
|
|
918
923
|
if (patchedColumnTypes.abColDefNumber.cellEditor == undefined) {
|
|
919
924
|
patchedColumnTypes.abColDefNumber.cellEditor =
|
|
920
925
|
this.variant === 'react' ? ReactAdaptableNumberEditor : AdaptableNumberEditor;
|
|
@@ -1137,6 +1142,13 @@ export class AdaptableAgGrid {
|
|
|
1137
1142
|
const currentLayout = removeUuidAndSource(_currentLayout);
|
|
1138
1143
|
const allAgGridFlattenedColDefs = this.agGridAdapter.getFlattenedColDefs(agGridColDefs);
|
|
1139
1144
|
const allAgGridColDefIds = allAgGridFlattenedColDefs.map((colDef) => colDef.colId);
|
|
1145
|
+
const { columnApi } = this.api;
|
|
1146
|
+
// also add the row group columns, if they are specified in the layout
|
|
1147
|
+
currentLayout.Columns.forEach((colId) => {
|
|
1148
|
+
if (columnApi.isAutoRowGroupColumn(colId)) {
|
|
1149
|
+
allAgGridColDefIds.push(colId);
|
|
1150
|
+
}
|
|
1151
|
+
});
|
|
1140
1152
|
const getColDef = (colId) => allAgGridFlattenedColDefs.find((colDef) => colDef.colId === colId);
|
|
1141
1153
|
agGridState.columnVisibility = {
|
|
1142
1154
|
hiddenColIds: allAgGridFlattenedColDefs
|
|
@@ -1562,7 +1574,6 @@ export class AdaptableAgGrid {
|
|
|
1562
1574
|
this.AlertService = new AlertService(this.api);
|
|
1563
1575
|
this.TeamSharingService = new TeamSharingService(this.api);
|
|
1564
1576
|
this.Fdc3Service = new Fdc3Service(this.api);
|
|
1565
|
-
this.SummaryService = new SummaryService(this.api);
|
|
1566
1577
|
this.CellPopupService = new CellPopupService(this.api);
|
|
1567
1578
|
this.RowEditService = new RowEditService(this.api);
|
|
1568
1579
|
this.MetamodelService = new MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
|
|
@@ -2210,17 +2221,6 @@ export class AdaptableAgGrid {
|
|
|
2210
2221
|
const colId2 = colState2.colId;
|
|
2211
2222
|
const originalIndex1 = columnsStateIndexes[colId1];
|
|
2212
2223
|
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
2224
|
if (newVisibleColumnsMap[colId1] != null && newVisibleColumnsMap[colId2] == null) {
|
|
2225
2225
|
return -1;
|
|
2226
2226
|
}
|
|
@@ -206,11 +206,13 @@ export class AgGridMenuAdapter {
|
|
|
206
206
|
if (submenuItems.length === 1) {
|
|
207
207
|
return submenuItems[0];
|
|
208
208
|
}
|
|
209
|
-
return
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
return [
|
|
210
|
+
{
|
|
211
|
+
label: moduleOrGroup.title,
|
|
212
|
+
icon: moduleOrGroup.icon,
|
|
213
|
+
subItems: submenuItems,
|
|
214
|
+
},
|
|
215
|
+
];
|
|
214
216
|
}
|
|
215
217
|
else {
|
|
216
218
|
return adaptableMenuItems.filter((menuItem) => menuItem.module === moduleOrGroup);
|
|
@@ -213,6 +213,7 @@ const DefaultAdaptableOptions = {
|
|
|
213
213
|
enableFilterOnSpecialColumns: true,
|
|
214
214
|
showClearFilterButton: false,
|
|
215
215
|
showSuspendFilterButton: false,
|
|
216
|
+
showDatePicker: true,
|
|
216
217
|
},
|
|
217
218
|
gridFilterOptions: {
|
|
218
219
|
availableFilterEditors: ['ExpressionEditor', 'QueryBuilder'],
|
|
@@ -6,12 +6,12 @@ import { ICellEditorComp, ICellEditorParams } from '@ag-grid-community/core';
|
|
|
6
6
|
interface AdaptableNumberCellEditorParams extends ICellEditorParams {
|
|
7
7
|
/**
|
|
8
8
|
* Whether to show the clear button. If `true`, it works together with `cellEditorParams.emptyValue`
|
|
9
|
-
* @
|
|
9
|
+
* @defaultValue true
|
|
10
10
|
*/
|
|
11
11
|
showClearButton: boolean;
|
|
12
12
|
/**
|
|
13
13
|
* Value to set for the cell, when the clear button is pressed
|
|
14
|
-
* @
|
|
14
|
+
* @defaultValue '' (empty string)
|
|
15
15
|
*/
|
|
16
16
|
emptyValue: string;
|
|
17
17
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { IAggFuncParams } from '@ag-grid-community/core';
|
|
2
|
-
import { CellSummaryOperationContext } from '../types';
|
|
3
2
|
export declare const getNumericValue: (input: unknown) => number | null;
|
|
4
3
|
export declare const weightedAverage: (params: IAggFuncParams, columnId: string, weightColumnId: string) => {
|
|
5
4
|
[x: string]: number | (() => number | "");
|
|
6
5
|
toString: () => number | "";
|
|
7
6
|
valueOf: () => number;
|
|
8
7
|
};
|
|
9
|
-
export declare const cellSummaryWeightedAverage: ({ numericColumns, selectedCellInfo, adaptableApi, }: CellSummaryOperationContext) => any;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import FormatHelper from '../Utilities/Helpers/FormatHelper';
|
|
2
1
|
import toNumber from 'lodash/toNumber';
|
|
3
2
|
export const getNumericValue = (input) => {
|
|
4
3
|
if (typeof input === 'number') {
|
|
@@ -46,56 +45,3 @@ export const weightedAverage = (params, columnId, weightColumnId) => {
|
|
|
46
45
|
[weightColumnId]: weightedColumnValueSum,
|
|
47
46
|
};
|
|
48
47
|
};
|
|
49
|
-
export const cellSummaryWeightedAverage = ({ numericColumns, selectedCellInfo, adaptableApi, }) => {
|
|
50
|
-
if ((numericColumns === null || numericColumns === void 0 ? void 0 : numericColumns.length) != 1) {
|
|
51
|
-
return '';
|
|
52
|
-
}
|
|
53
|
-
const columnId = numericColumns[0];
|
|
54
|
-
const currentLayout = adaptableApi.layoutApi.getCurrentLayout();
|
|
55
|
-
const selectedColumnAgg = currentLayout.AggregationColumns[columnId];
|
|
56
|
-
if (!selectedColumnAgg ||
|
|
57
|
-
typeof selectedColumnAgg !== 'object' ||
|
|
58
|
-
selectedColumnAgg.type !== 'weightedAverage') {
|
|
59
|
-
return '';
|
|
60
|
-
}
|
|
61
|
-
const weightedColumnId = selectedColumnAgg.weightedColumnId;
|
|
62
|
-
if (weightedColumnId) {
|
|
63
|
-
let sumWeightedValue = 0;
|
|
64
|
-
let sumPrimaryValues = 0;
|
|
65
|
-
let isValid = true;
|
|
66
|
-
selectedCellInfo.gridCells.forEach((gridCell) => {
|
|
67
|
-
if (adaptableApi.gridApi.isGroupRowNode(gridCell.rowNode)) {
|
|
68
|
-
isValid = false;
|
|
69
|
-
}
|
|
70
|
-
if (isValid) {
|
|
71
|
-
const weightedGridCell = adaptableApi.gridApi.getGridCellFromRowNode(gridCell.rowNode, weightedColumnId);
|
|
72
|
-
sumWeightedValue += weightedGridCell.rawValue;
|
|
73
|
-
sumPrimaryValues += weightedGridCell.rawValue * gridCell.normalisedValue;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
if (!isValid) {
|
|
77
|
-
return '';
|
|
78
|
-
}
|
|
79
|
-
const abColumn = adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
80
|
-
if (!abColumn) {
|
|
81
|
-
return '';
|
|
82
|
-
}
|
|
83
|
-
const activeFormatColumnsWithDisplayFormat = adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
|
|
84
|
-
if (activeFormatColumnsWithDisplayFormat.length === 1 &&
|
|
85
|
-
activeFormatColumnsWithDisplayFormat[0].DisplayFormat.Formatter === 'NumberFormatter') {
|
|
86
|
-
// there only one FormatColumn on this column, so we will use it to format the aggregated value
|
|
87
|
-
const [singleActiveFormatColumnsWithDisplayFormat] = activeFormatColumnsWithDisplayFormat;
|
|
88
|
-
const options = singleActiveFormatColumnsWithDisplayFormat
|
|
89
|
-
.DisplayFormat.Options;
|
|
90
|
-
if (options) {
|
|
91
|
-
return FormatHelper.NumberFormatter(sumPrimaryValues / sumWeightedValue, options);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// there are multiple (possibly conflicting) FormatColumns for this column, we cannot know which to use
|
|
96
|
-
return FormatHelper.NumberFormatter(sumPrimaryValues / sumWeightedValue, {
|
|
97
|
-
FractionDigits: 2,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import OverlayTrigger from '../OverlayTrigger';
|
|
4
|
-
import Input from '../Input';
|
|
5
4
|
import { useState } from 'react';
|
|
6
5
|
import useProperty from '../utils/useProperty';
|
|
7
6
|
import FieldWrap from '../FieldWrap';
|
|
@@ -14,6 +13,8 @@ import { useDatepickerContext } from './DatepickerContext';
|
|
|
14
13
|
import addDays from 'date-fns/addDays';
|
|
15
14
|
import addBusinessDays from 'date-fns/addBusinessDays';
|
|
16
15
|
import { DayPicker, useInput } from 'react-day-picker';
|
|
16
|
+
import { AdaptableDateInlineInput } from '../../View/Components/AdaptableInput/AdaptableDateInlineInput';
|
|
17
|
+
import { isValid } from 'date-fns';
|
|
17
18
|
const DatepickerOverlay = ({ onHide, children, onKeyDown, onMouseDown, }) => {
|
|
18
19
|
const domRef = React.useRef(null);
|
|
19
20
|
React.useEffect(() => {
|
|
@@ -99,7 +100,14 @@ export const Datepicker = React.forwardRef((props, ref) => {
|
|
|
99
100
|
setVisible(true);
|
|
100
101
|
}
|
|
101
102
|
} }),
|
|
102
|
-
React.createElement(
|
|
103
|
+
React.createElement(AdaptableDateInlineInput, { ref: ref, value: inputValue,
|
|
104
|
+
// We do not want to show the format when the date-picker is visible
|
|
105
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : '', onChange: (value) => {
|
|
106
|
+
const date = new Date(value);
|
|
107
|
+
if (isValid(date)) {
|
|
108
|
+
updateValue(date);
|
|
109
|
+
}
|
|
110
|
+
}, style: style, disabled: disabled }),
|
|
103
111
|
!!inputValue ? clearButton : null,
|
|
104
112
|
calendarButton))));
|
|
105
113
|
});
|
|
@@ -3,10 +3,9 @@ import { HTMLProps } from 'react';
|
|
|
3
3
|
import { BoxProps } from 'rebass';
|
|
4
4
|
export declare const baseClassName = "ab-Input";
|
|
5
5
|
export type InputProps = HTMLProps<HTMLInputElement> & {
|
|
6
|
-
placehoder?: string;
|
|
7
6
|
type?: string;
|
|
8
7
|
disabled?: boolean;
|
|
9
8
|
list?: any;
|
|
10
9
|
} & BoxProps;
|
|
11
|
-
declare const Input: React.ForwardRefExoticComponent<Pick<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"
|
|
10
|
+
declare const Input: React.ForwardRefExoticComponent<Pick<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>>;
|
|
12
11
|
export default Input;
|
|
@@ -10,14 +10,14 @@ export declare const baseClassName = "ab-Textarea";
|
|
|
10
10
|
* - when typing, expand to fit content - max x px
|
|
11
11
|
*/
|
|
12
12
|
export type TextareaProps = Omit<HTMLProps<HTMLTextAreaElement>, 'ref'> & {
|
|
13
|
-
|
|
13
|
+
placeholder?: string;
|
|
14
14
|
type?: string;
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
value?: string;
|
|
17
17
|
autoResizeOnFocus?: boolean;
|
|
18
18
|
} & Omit<BoxProps, 'ref'>;
|
|
19
19
|
declare const Textarea: React.ForwardRefExoticComponent<Omit<React.HTMLProps<HTMLTextAreaElement>, "ref"> & {
|
|
20
|
-
|
|
20
|
+
placeholder?: string;
|
|
21
21
|
type?: string;
|
|
22
22
|
disabled?: boolean;
|
|
23
23
|
value?: string;
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "18.0.0-canary.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1711543401633 || Date.now(),
|
|
4
|
+
VERSION: "18.0.0-canary.17" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -563,6 +563,12 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
563
563
|
desc: string;
|
|
564
564
|
isOpt?: undefined;
|
|
565
565
|
ref?: undefined;
|
|
566
|
+
} | {
|
|
567
|
+
name: string;
|
|
568
|
+
kind: string;
|
|
569
|
+
desc: string;
|
|
570
|
+
ref: string;
|
|
571
|
+
isOpt?: undefined;
|
|
566
572
|
} | {
|
|
567
573
|
name: string;
|
|
568
574
|
kind: string;
|