@adaptabletools/adaptable-cjs 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 +72 -71
- 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 +72 -0
- package/src/PredefinedConfig/Common/RowSummary.d.ts +3 -1
- package/src/PredefinedConfig/Common/RowSummary.js +17 -1
- 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 +31 -22
- 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 +125 -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 +46 -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 +25 -1
- 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 +29 -4
- 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 +1 -56
- 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.cjs.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/ISummaryService.d.ts +0 -17
- package/src/Utilities/Services/Interface/ISummaryService.js +0 -15
- package/src/Utilities/Services/SummaryService.d.ts +0 -10
- package/src/Utilities/Services/SummaryService.js +0 -21
|
@@ -18,12 +18,13 @@ const ObjectFactory_1 = require("../../../Utilities/ObjectFactory");
|
|
|
18
18
|
const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
|
|
19
19
|
const rebass_1 = require("rebass");
|
|
20
20
|
const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
|
|
21
|
-
const Helper_1 = tslib_1.
|
|
21
|
+
const Helper_1 = tslib_1.__importStar(require("../../../Utilities/Helpers/Helper"));
|
|
22
22
|
const AdaptableInput_1 = tslib_1.__importDefault(require("../AdaptableInput"));
|
|
23
23
|
const renderWithAdaptableContext_1 = require("../../renderWithAdaptableContext");
|
|
24
24
|
const CheckBox_1 = require("../../../components/CheckBox");
|
|
25
25
|
const runIfNotResolvedIn_1 = require("../../../Utilities/runIfNotResolvedIn");
|
|
26
26
|
const getDefaultColumnFilterPredicate_1 = require("./getDefaultColumnFilterPredicate");
|
|
27
|
+
const AdaptableDateInlineInput_1 = require("../AdaptableInput/AdaptableDateInlineInput");
|
|
27
28
|
const panelStyle = {
|
|
28
29
|
width: '100%',
|
|
29
30
|
minWidth: 150,
|
|
@@ -178,13 +179,20 @@ class FilterFormComponent extends React.Component {
|
|
|
178
179
|
this.changeColumnPredicateInput(newCheckedValue, 0);
|
|
179
180
|
} })));
|
|
180
181
|
}
|
|
181
|
-
return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) =>
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
|
|
183
|
+
var _a, _b;
|
|
184
|
+
const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
|
|
185
|
+
if (predicateInput.type === 'date' && !showDatePicker) {
|
|
186
|
+
return (React.createElement(AdaptableDateInlineInput_1.AdaptableDateInlineInput, { value: filter.Predicate.Inputs[index], onChange: (value) => this.changeColumnPredicateInput(value, index) }));
|
|
187
|
+
}
|
|
188
|
+
return (React.createElement(rebass_1.Flex, { key: index, flexDirection: "row" },
|
|
189
|
+
React.createElement(AdaptableInput_1.default, { onMouseDown: (event) => {
|
|
190
|
+
if (predicateInput.type === 'date') {
|
|
191
|
+
// This prevents the ag-grid dropdown closing when a date is selected
|
|
192
|
+
event.stopPropagation();
|
|
193
|
+
}
|
|
194
|
+
}, 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 })));
|
|
195
|
+
});
|
|
188
196
|
}
|
|
189
197
|
isFilterDisabled() {
|
|
190
198
|
var _a;
|
|
@@ -259,12 +267,12 @@ class FilterFormComponent extends React.Component {
|
|
|
259
267
|
}
|
|
260
268
|
changeColumnPredicateInput(value, index) {
|
|
261
269
|
const { editedColumnFilter } = this.state;
|
|
262
|
-
|
|
263
|
-
|
|
270
|
+
const newEditedColumnFilter = (0, Helper_1.cloneObject)(editedColumnFilter);
|
|
271
|
+
newEditedColumnFilter.Predicate.Inputs[index] = value;
|
|
272
|
+
this.setState({ editedColumnFilter: newEditedColumnFilter });
|
|
264
273
|
if (this.props.api.optionsApi.getColumnFilterOptions().autoApplyFilter) {
|
|
265
|
-
this.props.onSetColumnFilter(
|
|
274
|
+
this.props.onSetColumnFilter(newEditedColumnFilter);
|
|
266
275
|
}
|
|
267
|
-
// this.props.onSetColumnFilter(editedColumnFilter);
|
|
268
276
|
}
|
|
269
277
|
}
|
|
270
278
|
function mapStateToProps(state, ownProps) {
|
|
@@ -19,6 +19,7 @@ const getDefaultColumnFilterPredicate_1 = require("./getDefaultColumnFilterPredi
|
|
|
19
19
|
const Icon_1 = require("../../../components/Icon");
|
|
20
20
|
const QuickFilterValues_1 = require("./QuickFilterValues");
|
|
21
21
|
const AdaptableIconComponent_1 = require("../AdaptableIconComponent");
|
|
22
|
+
const AdaptableDateInlineInput_1 = require("../AdaptableInput/AdaptableDateInlineInput");
|
|
22
23
|
class QuickFilterFormComponent extends React.Component {
|
|
23
24
|
constructor(props) {
|
|
24
25
|
super(props);
|
|
@@ -140,17 +141,23 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
140
141
|
} })));
|
|
141
142
|
}
|
|
142
143
|
return (_a = predicateDef === null || predicateDef === void 0 ? void 0 : predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
|
|
143
|
-
var _a, _b;
|
|
144
|
+
var _a, _b, _c, _d, _e, _f;
|
|
145
|
+
const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
|
|
146
|
+
const value = (_d = (_c = filter.Predicate.Inputs) === null || _c === void 0 ? void 0 : _c[index]) !== null && _d !== void 0 ? _d : '';
|
|
147
|
+
const onKeyDownCapture = (e) => {
|
|
148
|
+
if (e.nativeEvent.key === 'Escape') {
|
|
149
|
+
e.nativeEvent.preventDefault();
|
|
150
|
+
e.nativeEvent.stopPropagation();
|
|
151
|
+
this.clearFilter();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
if (predicateInput.type === 'date' && !showDatePicker) {
|
|
155
|
+
return (React.createElement(AdaptableDateInlineInput_1.AdaptableDateInlineInput, { value: value, key: index, onKeyDownCapture: onKeyDownCapture, onChange: (value) => this.changeColumnPredicateInput(value, index) }));
|
|
156
|
+
}
|
|
144
157
|
return (React.createElement(AdaptableInput_1.default, { disabled: this.isFilterDisabled(), key: index, type: predicateInput.type === 'number' ? 'text' : predicateInput.type,
|
|
145
158
|
// autoFocus has to be FALSE because if the input receives focus in the init phase,
|
|
146
159
|
// it may scroll the AG Grid header viewport into view and de-synchronize it (relative to the content viewport)
|
|
147
|
-
autoFocus: false, value: (
|
|
148
|
-
if (e.nativeEvent.key === 'Escape') {
|
|
149
|
-
e.nativeEvent.preventDefault();
|
|
150
|
-
e.nativeEvent.stopPropagation();
|
|
151
|
-
this.clearFilter();
|
|
152
|
-
}
|
|
153
|
-
}, style: {
|
|
160
|
+
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: {
|
|
154
161
|
width: '100%',
|
|
155
162
|
padding: 'var(--ab-space-1)',
|
|
156
163
|
borderRadius: 0,
|
|
@@ -66,7 +66,7 @@ function ValueSelector(props) {
|
|
|
66
66
|
const label = !allowReorder ? preparedToLabel(option) : null;
|
|
67
67
|
const reorderable = typeof allowReorder === 'function' ? allowReorder(option) : allowReorder;
|
|
68
68
|
const renderNode = (props, dragHandleProps) => {
|
|
69
|
-
return (React.createElement(rebass_1.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),
|
|
69
|
+
return (React.createElement(rebass_1.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),
|
|
70
70
|
React.createElement(rebass_1.Flex, { flex: 1, flexDirection: "row", alignItems: "center" },
|
|
71
71
|
reorderable ? (React.createElement(rebass_1.Box, Object.assign({ mr: 3 }, dragHandleProps),
|
|
72
72
|
React.createElement(icons_1.Icon, { name: "drag", style: { cursor: 'grab' } }))) : null,
|
|
@@ -53,7 +53,7 @@ const QueryViewPanelComponent = (props) => {
|
|
|
53
53
|
paddingTop: 6,
|
|
54
54
|
overflow: 'hidden',
|
|
55
55
|
zIndex: 100,
|
|
56
|
-
},
|
|
56
|
+
}, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
|
|
57
57
|
isExpressionValid && (React.createElement(ButtonPlay_1.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 })),
|
|
58
58
|
gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", marginRight: 1 })),
|
|
59
59
|
' ',
|
|
@@ -79,7 +79,7 @@ const QueryViewPanelComponent = (props) => {
|
|
|
79
79
|
zIndex: 100,
|
|
80
80
|
height: '100%',
|
|
81
81
|
overflow: 'hidden',
|
|
82
|
-
},
|
|
82
|
+
}, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
|
|
83
83
|
};
|
|
84
84
|
const saveButton = (React.createElement(ButtonSave_1.ButtonSave, { onClick: () => saveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryModuleAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression == '', variant: "text", tone: "neutral", marginRight: 1 }));
|
|
85
85
|
const suspendButton = (React.createElement(ButtonPause_1.ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
|
|
@@ -19,6 +19,7 @@ const SortSection_1 = require("./sections/SortSection");
|
|
|
19
19
|
const FilterSection_1 = require("./sections/FilterSection");
|
|
20
20
|
const GridFilterSection_1 = require("./sections/GridFilterSection");
|
|
21
21
|
const RowSummarySection_1 = require("./sections/RowSummarySection");
|
|
22
|
+
const RowSummary_1 = require("../../../PredefinedConfig/Common/RowSummary");
|
|
22
23
|
const LayoutWizard = (props) => {
|
|
23
24
|
var _a, _b;
|
|
24
25
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
@@ -107,6 +108,7 @@ const LayoutWizard = (props) => {
|
|
|
107
108
|
{
|
|
108
109
|
title: 'Row Groups',
|
|
109
110
|
isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
|
|
111
|
+
isValid: RowSummarySection_1.areSummaryRowsValid,
|
|
110
112
|
details: 'Configure Row Grouping',
|
|
111
113
|
renderSummary: () => React.createElement(RowGroupingSection_1.RowGroupingSectionSummary, null),
|
|
112
114
|
render: () => (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' } },
|
|
@@ -119,7 +121,29 @@ const LayoutWizard = (props) => {
|
|
|
119
121
|
renderSummary: () => React.createElement(AggregationsSection_1.AggregationsSectionSummary, null),
|
|
120
122
|
isValid: (data) => (0, AggregationsSection_1.isAggregationsSectionValid)(data),
|
|
121
123
|
render: () => (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' } },
|
|
122
|
-
React.createElement(AggregationsSection_1.AggregationsSection, { onChange:
|
|
124
|
+
React.createElement(AggregationsSection_1.AggregationsSection, { onChange: (layout) => {
|
|
125
|
+
let newLayout = (0, Helper_1.cloneObject)(layout);
|
|
126
|
+
// if we do not have an weighted avg col, we need to clear the row summary if one exists
|
|
127
|
+
if (newLayout.RowSummaries) {
|
|
128
|
+
newLayout.RowSummaries = newLayout.RowSummaries.map((rowSummary) => {
|
|
129
|
+
return Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.entries(rowSummary.ColumnsMap).reduce((acc, [columnId, aggFunc]) => {
|
|
130
|
+
if (
|
|
131
|
+
// see if it is weighted avg
|
|
132
|
+
aggFunc === RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION &&
|
|
133
|
+
// see if we have a weight in the agg columns
|
|
134
|
+
newLayout.AggregationColumns[columnId] &&
|
|
135
|
+
(typeof newLayout.AggregationColumns[columnId] !== 'object' ||
|
|
136
|
+
newLayout.AggregationColumns[columnId].weightColumnId)) {
|
|
137
|
+
// need to remove the row summary
|
|
138
|
+
return acc;
|
|
139
|
+
}
|
|
140
|
+
acc[columnId] = aggFunc;
|
|
141
|
+
return acc;
|
|
142
|
+
}, {}) });
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
setLayout(newLayout);
|
|
146
|
+
} }))),
|
|
123
147
|
},
|
|
124
148
|
{
|
|
125
149
|
title: 'Row Summaries',
|
|
@@ -175,7 +175,7 @@ const ColumnRow = (props) => {
|
|
|
175
175
|
React.createElement(FormLayout_1.FormRow, { label: "ColumnId" },
|
|
176
176
|
React.createElement(Tag_1.Tag, null, props.column.columnId)),
|
|
177
177
|
React.createElement(FormLayout_1.FormRow, { label: "Header" },
|
|
178
|
-
React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input",
|
|
178
|
+
React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placeholder: "Custom name (optional)", onChange: () => {
|
|
179
179
|
props.onColumnNameChange(props.column.columnId, event.target.value);
|
|
180
180
|
}, value: customHeader })),
|
|
181
181
|
React.createElement(FormLayout_1.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;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RowSummarySection = exports.RowGroupingSectionSummary = void 0;
|
|
3
|
+
exports.RowSummarySection = exports.RowGroupingSectionSummary = exports.areSummaryRowsValid = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const rebass_1 = require("rebass");
|
|
@@ -10,21 +10,38 @@ const Select_1 = require("../../../../components/Select");
|
|
|
10
10
|
const SimpleButton_1 = tslib_1.__importDefault(require("../../../../components/SimpleButton"));
|
|
11
11
|
const Tabs_1 = require("../../../../components/Tabs");
|
|
12
12
|
const Tag_1 = require("../../../../components/Tag");
|
|
13
|
+
const RowSummary_1 = require("../../../../PredefinedConfig/Common/RowSummary");
|
|
13
14
|
const adaptableQlUtils_1 = require("../../../../Utilities/adaptableQlUtils");
|
|
14
15
|
const ModuleConstants_1 = require("../../../../Utilities/Constants/ModuleConstants");
|
|
15
|
-
const ISummaryService_1 = require("../../../../Utilities/Services/Interface/ISummaryService");
|
|
16
16
|
const sortWithOrder_1 = require("../../../../Utilities/sortWithOrder");
|
|
17
17
|
const AdaptableContext_1 = require("../../../AdaptableContext");
|
|
18
18
|
const ValueSelector_1 = require("../../../Components/ValueSelector");
|
|
19
19
|
const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
|
|
20
20
|
const Utilities_1 = require("./Utilities");
|
|
21
|
+
const areSummaryRowsValid = (layout) => {
|
|
22
|
+
var _a;
|
|
23
|
+
if (!layout.RowSummaries)
|
|
24
|
+
return true;
|
|
25
|
+
let valid = true;
|
|
26
|
+
(_a = layout.RowSummaries) === null || _a === void 0 ? void 0 : _a.find((rowSummary) => {
|
|
27
|
+
var _a;
|
|
28
|
+
for (const [_, fn] of Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})) {
|
|
29
|
+
if (!fn) {
|
|
30
|
+
valid = 'All row summary columns must have an aggregation function.';
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return valid;
|
|
36
|
+
};
|
|
37
|
+
exports.areSummaryRowsValid = areSummaryRowsValid;
|
|
21
38
|
const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
|
|
22
39
|
const inputType = (0, adaptableQlUtils_1.mapColumnDataTypeToExpressionFunctionType)(columnType);
|
|
23
40
|
return Object.entries(availableScalarExpressions !== null && availableScalarExpressions !== void 0 ? availableScalarExpressions : {})
|
|
24
41
|
.map(([expression, expressionDef]) => {
|
|
25
42
|
var _a, _b;
|
|
26
43
|
let firstArg = null;
|
|
27
|
-
if (!
|
|
44
|
+
if (!RowSummary_1.summarySupportedExpressions.includes(expression)) {
|
|
28
45
|
return null;
|
|
29
46
|
}
|
|
30
47
|
if (Array.isArray((_a = expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs) === null || _a === void 0 ? void 0 : _a[0])) {
|
|
@@ -58,7 +75,7 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
58
75
|
.getColumns()
|
|
59
76
|
.filter((column) => {
|
|
60
77
|
var _a, _b;
|
|
61
|
-
if (!['Number', 'String'].includes(column.dataType))
|
|
78
|
+
if (!['Number', 'String', 'Date'].includes(column.dataType))
|
|
62
79
|
return false;
|
|
63
80
|
return (_b = (_a = layout.Columns) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, column.columnId);
|
|
64
81
|
})
|
|
@@ -101,6 +118,14 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
101
118
|
label: expression,
|
|
102
119
|
value: expression,
|
|
103
120
|
}));
|
|
121
|
+
// check out if this layout has a aggregation with wighted column
|
|
122
|
+
const aggregation = layout.AggregationColumns[column.columnId];
|
|
123
|
+
if (aggregation && typeof aggregation === 'object' && aggregation.weightedColumnId) {
|
|
124
|
+
expressionOptions.push({
|
|
125
|
+
label: 'WEIGHTERD_AVG',
|
|
126
|
+
value: RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
104
129
|
const expression = rowSummary.ColumnsMap[column.columnId];
|
|
105
130
|
return (React.createElement(rebass_1.Flex, null,
|
|
106
131
|
React.createElement(rebass_1.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;
|
|
@@ -99,7 +99,6 @@ const AdaptableUpgradeHelper_1 = require("../migration/AdaptableUpgradeHelper");
|
|
|
99
99
|
const Modal_1 = require("../components/Modal");
|
|
100
100
|
const AdaptableLoadingScreen_1 = require("../View/Components/Popups/AdaptableLoadingScreen");
|
|
101
101
|
const react_1 = require("react");
|
|
102
|
-
const SummaryService_1 = require("../Utilities/Services/SummaryService");
|
|
103
102
|
const AdaptableHelper_1 = require("../Utilities/Helpers/AdaptableHelper");
|
|
104
103
|
const RowNodeProto = core_1.RowNode.prototype;
|
|
105
104
|
const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
|
|
@@ -902,7 +901,7 @@ class AdaptableAgGrid {
|
|
|
902
901
|
*/
|
|
903
902
|
// this will have to go/be heavily extended with https://github.com/AdaptableTools/adaptable/issues/2230
|
|
904
903
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'columnTypes', (original_columnTypes) => {
|
|
905
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
904
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
906
905
|
const providedColumnTypes = original_columnTypes || {};
|
|
907
906
|
const gridOptionsColumnTypes = gridOptions.columnTypes || {};
|
|
908
907
|
const patchedColumnTypes = Object.assign(providedColumnTypes, {
|
|
@@ -919,6 +918,12 @@ class AdaptableAgGrid {
|
|
|
919
918
|
abColDefTupleNumberArray: (_j = gridOptionsColumnTypes.abColDefTupleNumberArray) !== null && _j !== void 0 ? _j : {},
|
|
920
919
|
abColDefObjectNumberArray: (_k = gridOptionsColumnTypes.abColDefObjectNumberArray) !== null && _k !== void 0 ? _k : {},
|
|
921
920
|
});
|
|
921
|
+
const customColumnTypes = (_l = this.api.columnApi.getColumnTypes()) !== null && _l !== void 0 ? _l : [];
|
|
922
|
+
for (const customColumnType of customColumnTypes) {
|
|
923
|
+
if (!patchedColumnTypes[customColumnType]) {
|
|
924
|
+
patchedColumnTypes[customColumnType] = {};
|
|
925
|
+
}
|
|
926
|
+
}
|
|
922
927
|
if (patchedColumnTypes.abColDefNumber.cellEditor == undefined) {
|
|
923
928
|
patchedColumnTypes.abColDefNumber.cellEditor =
|
|
924
929
|
this.variant === 'react' ? AdaptableNumberEditor_1.ReactAdaptableNumberEditor : AdaptableNumberEditor_1.AdaptableNumberEditor;
|
|
@@ -1141,6 +1146,13 @@ class AdaptableAgGrid {
|
|
|
1141
1146
|
const currentLayout = (0, AdaptableHelper_1.removeUuidAndSource)(_currentLayout);
|
|
1142
1147
|
const allAgGridFlattenedColDefs = this.agGridAdapter.getFlattenedColDefs(agGridColDefs);
|
|
1143
1148
|
const allAgGridColDefIds = allAgGridFlattenedColDefs.map((colDef) => colDef.colId);
|
|
1149
|
+
const { columnApi } = this.api;
|
|
1150
|
+
// also add the row group columns, if they are specified in the layout
|
|
1151
|
+
currentLayout.Columns.forEach((colId) => {
|
|
1152
|
+
if (columnApi.isAutoRowGroupColumn(colId)) {
|
|
1153
|
+
allAgGridColDefIds.push(colId);
|
|
1154
|
+
}
|
|
1155
|
+
});
|
|
1144
1156
|
const getColDef = (colId) => allAgGridFlattenedColDefs.find((colDef) => colDef.colId === colId);
|
|
1145
1157
|
agGridState.columnVisibility = {
|
|
1146
1158
|
hiddenColIds: allAgGridFlattenedColDefs
|
|
@@ -1566,7 +1578,6 @@ class AdaptableAgGrid {
|
|
|
1566
1578
|
this.AlertService = new AlertService_1.AlertService(this.api);
|
|
1567
1579
|
this.TeamSharingService = new TeamSharingService_1.TeamSharingService(this.api);
|
|
1568
1580
|
this.Fdc3Service = new Fdc3Service_1.Fdc3Service(this.api);
|
|
1569
|
-
this.SummaryService = new SummaryService_1.SummaryService(this.api);
|
|
1570
1581
|
this.CellPopupService = new CellPopupService_1.CellPopupService(this.api);
|
|
1571
1582
|
this.RowEditService = new RowEditService_1.RowEditService(this.api);
|
|
1572
1583
|
this.MetamodelService = new MetamodelService_1.MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
|
|
@@ -2214,17 +2225,6 @@ class AdaptableAgGrid {
|
|
|
2214
2225
|
const colId2 = colState2.colId;
|
|
2215
2226
|
const originalIndex1 = columnsStateIndexes[colId1];
|
|
2216
2227
|
const originalIndex2 = columnsStateIndexes[colId2];
|
|
2217
|
-
const isRowGroup1 = this.api.columnApi.isAutoRowGroupColumn(colId1);
|
|
2218
|
-
const isRowGroup2 = this.api.columnApi.isAutoRowGroupColumn(colId2);
|
|
2219
|
-
if (isRowGroup1 && isRowGroup2) {
|
|
2220
|
-
return 1;
|
|
2221
|
-
}
|
|
2222
|
-
if (isRowGroup1) {
|
|
2223
|
-
return -1;
|
|
2224
|
-
}
|
|
2225
|
-
if (isRowGroup2) {
|
|
2226
|
-
return 1;
|
|
2227
|
-
}
|
|
2228
2228
|
if (newVisibleColumnsMap[colId1] != null && newVisibleColumnsMap[colId2] == null) {
|
|
2229
2229
|
return -1;
|
|
2230
2230
|
}
|
|
@@ -210,11 +210,13 @@ class AgGridMenuAdapter {
|
|
|
210
210
|
if (submenuItems.length === 1) {
|
|
211
211
|
return submenuItems[0];
|
|
212
212
|
}
|
|
213
|
-
return
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
return [
|
|
214
|
+
{
|
|
215
|
+
label: moduleOrGroup.title,
|
|
216
|
+
icon: moduleOrGroup.icon,
|
|
217
|
+
subItems: submenuItems,
|
|
218
|
+
},
|
|
219
|
+
];
|
|
218
220
|
}
|
|
219
221
|
else {
|
|
220
222
|
return adaptableMenuItems.filter((menuItem) => menuItem.module === moduleOrGroup);
|
|
@@ -217,6 +217,7 @@ const DefaultAdaptableOptions = {
|
|
|
217
217
|
enableFilterOnSpecialColumns: true,
|
|
218
218
|
showClearFilterButton: false,
|
|
219
219
|
showSuspendFilterButton: false,
|
|
220
|
+
showDatePicker: true,
|
|
220
221
|
},
|
|
221
222
|
gridFilterOptions: {
|
|
222
223
|
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,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.weightedAverage = exports.getNumericValue = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const FormatHelper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/FormatHelper"));
|
|
6
5
|
const toNumber_1 = tslib_1.__importDefault(require("lodash/toNumber"));
|
|
7
6
|
const getNumericValue = (input) => {
|
|
8
7
|
if (typeof input === 'number') {
|
|
@@ -52,57 +51,3 @@ const weightedAverage = (params, columnId, weightColumnId) => {
|
|
|
52
51
|
};
|
|
53
52
|
};
|
|
54
53
|
exports.weightedAverage = weightedAverage;
|
|
55
|
-
const cellSummaryWeightedAverage = ({ numericColumns, selectedCellInfo, adaptableApi, }) => {
|
|
56
|
-
if ((numericColumns === null || numericColumns === void 0 ? void 0 : numericColumns.length) != 1) {
|
|
57
|
-
return '';
|
|
58
|
-
}
|
|
59
|
-
const columnId = numericColumns[0];
|
|
60
|
-
const currentLayout = adaptableApi.layoutApi.getCurrentLayout();
|
|
61
|
-
const selectedColumnAgg = currentLayout.AggregationColumns[columnId];
|
|
62
|
-
if (!selectedColumnAgg ||
|
|
63
|
-
typeof selectedColumnAgg !== 'object' ||
|
|
64
|
-
selectedColumnAgg.type !== 'weightedAverage') {
|
|
65
|
-
return '';
|
|
66
|
-
}
|
|
67
|
-
const weightedColumnId = selectedColumnAgg.weightedColumnId;
|
|
68
|
-
if (weightedColumnId) {
|
|
69
|
-
let sumWeightedValue = 0;
|
|
70
|
-
let sumPrimaryValues = 0;
|
|
71
|
-
let isValid = true;
|
|
72
|
-
selectedCellInfo.gridCells.forEach((gridCell) => {
|
|
73
|
-
if (adaptableApi.gridApi.isGroupRowNode(gridCell.rowNode)) {
|
|
74
|
-
isValid = false;
|
|
75
|
-
}
|
|
76
|
-
if (isValid) {
|
|
77
|
-
const weightedGridCell = adaptableApi.gridApi.getGridCellFromRowNode(gridCell.rowNode, weightedColumnId);
|
|
78
|
-
sumWeightedValue += weightedGridCell.rawValue;
|
|
79
|
-
sumPrimaryValues += weightedGridCell.rawValue * gridCell.normalisedValue;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
if (!isValid) {
|
|
83
|
-
return '';
|
|
84
|
-
}
|
|
85
|
-
const abColumn = adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
86
|
-
if (!abColumn) {
|
|
87
|
-
return '';
|
|
88
|
-
}
|
|
89
|
-
const activeFormatColumnsWithDisplayFormat = adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
|
|
90
|
-
if (activeFormatColumnsWithDisplayFormat.length === 1 &&
|
|
91
|
-
activeFormatColumnsWithDisplayFormat[0].DisplayFormat.Formatter === 'NumberFormatter') {
|
|
92
|
-
// there only one FormatColumn on this column, so we will use it to format the aggregated value
|
|
93
|
-
const [singleActiveFormatColumnsWithDisplayFormat] = activeFormatColumnsWithDisplayFormat;
|
|
94
|
-
const options = singleActiveFormatColumnsWithDisplayFormat
|
|
95
|
-
.DisplayFormat.Options;
|
|
96
|
-
if (options) {
|
|
97
|
-
return FormatHelper_1.default.NumberFormatter(sumPrimaryValues / sumWeightedValue, options);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// there are multiple (possibly conflicting) FormatColumns for this column, we cannot know which to use
|
|
102
|
-
return FormatHelper_1.default.NumberFormatter(sumPrimaryValues / sumWeightedValue, {
|
|
103
|
-
FractionDigits: 2,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
exports.cellSummaryWeightedAverage = cellSummaryWeightedAverage;
|
|
@@ -4,7 +4,6 @@ exports.Datepicker = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const OverlayTrigger_1 = tslib_1.__importDefault(require("../OverlayTrigger"));
|
|
7
|
-
const Input_1 = tslib_1.__importDefault(require("../Input"));
|
|
8
7
|
const react_1 = require("react");
|
|
9
8
|
const useProperty_1 = tslib_1.__importDefault(require("../utils/useProperty"));
|
|
10
9
|
const FieldWrap_1 = tslib_1.__importDefault(require("../FieldWrap"));
|
|
@@ -17,6 +16,8 @@ const DatepickerContext_1 = require("./DatepickerContext");
|
|
|
17
16
|
const addDays_1 = tslib_1.__importDefault(require("date-fns/addDays"));
|
|
18
17
|
const addBusinessDays_1 = tslib_1.__importDefault(require("date-fns/addBusinessDays"));
|
|
19
18
|
const react_day_picker_1 = require("react-day-picker");
|
|
19
|
+
const AdaptableDateInlineInput_1 = require("../../View/Components/AdaptableInput/AdaptableDateInlineInput");
|
|
20
|
+
const date_fns_1 = require("date-fns");
|
|
20
21
|
const DatepickerOverlay = ({ onHide, children, onKeyDown, onMouseDown, }) => {
|
|
21
22
|
const domRef = React.useRef(null);
|
|
22
23
|
React.useEffect(() => {
|
|
@@ -102,7 +103,14 @@ exports.Datepicker = React.forwardRef((props, ref) => {
|
|
|
102
103
|
setVisible(true);
|
|
103
104
|
}
|
|
104
105
|
} }),
|
|
105
|
-
React.createElement(
|
|
106
|
+
React.createElement(AdaptableDateInlineInput_1.AdaptableDateInlineInput, { ref: ref, value: inputValue,
|
|
107
|
+
// We do not want to show the format when the date-picker is visible
|
|
108
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : '', onChange: (value) => {
|
|
109
|
+
const date = new Date(value);
|
|
110
|
+
if ((0, date_fns_1.isValid)(date)) {
|
|
111
|
+
updateValue(date);
|
|
112
|
+
}
|
|
113
|
+
}, style: style, disabled: disabled }),
|
|
106
114
|
!!inputValue ? clearButton : null,
|
|
107
115
|
calendarButton))));
|
|
108
116
|
});
|
|
@@ -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
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = {
|
|
4
4
|
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" || '',
|
|
5
|
-
PUBLISH_TIMESTAMP:
|
|
6
|
-
VERSION: "18.0.0-canary.
|
|
5
|
+
PUBLISH_TIMESTAMP: 1711543434054 || Date.now(),
|
|
6
|
+
VERSION: "18.0.0-canary.17" || '--current-version--',
|
|
7
7
|
};
|
|
@@ -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;
|