@adaptabletools/adaptable-cjs 18.0.0-canary.12 → 18.0.0-canary.14
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/base.css +1 -1
- package/base.css.map +1 -1
- package/index.css +1 -1
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -2
- package/src/AdaptableOptions/MenuOptions.d.ts +1 -53
- package/src/AdaptableOptions/MenuOptions.js +3 -3
- package/src/Api/AdaptableApi.d.ts +2 -2
- package/src/Api/ConfigApi.d.ts +2 -3
- package/src/Api/GridApi.d.ts +2 -1
- package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
- package/src/Api/Implementation/ConfigApiImpl.js +7 -7
- package/src/Api/Implementation/GridApiImpl.d.ts +2 -1
- package/src/Api/Implementation/GridApiImpl.js +8 -1
- package/src/Api/Implementation/NoteApiImpl.d.ts +2 -2
- package/src/Api/Implementation/NoteApiImpl.js +9 -9
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
- package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
- package/src/Api/Internal/ActionRowInternalApi.js +1 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +4 -2
- package/src/Api/Internal/AdaptableInternalApi.js +14 -11
- package/src/Api/Internal/CalculatedColumnInternalApi.js +3 -2
- package/src/Api/Internal/Fdc3InternalApi.js +2 -2
- package/src/Api/Internal/FreeTextColumnInternalApi.js +3 -2
- package/src/Api/Internal/GridInternalApi.d.ts +2 -0
- package/src/Api/Internal/GridInternalApi.js +15 -0
- package/src/Api/NoteApi.d.ts +5 -5
- package/src/Api/OptionsApi.d.ts +2 -2
- package/src/Api/UserInterfaceApi.d.ts +0 -11
- package/src/PredefinedConfig/AdaptableState.d.ts +1 -1
- package/src/PredefinedConfig/CommentState.d.ts +16 -12
- package/src/PredefinedConfig/Common/RowSummary.d.ts +7 -1
- package/src/PredefinedConfig/Common/TransposeConfig.d.ts +25 -0
- package/src/PredefinedConfig/Common/TransposeConfig.js +2 -0
- package/src/PredefinedConfig/Common/Types.d.ts +4 -4
- package/src/PredefinedConfig/Common/Types.js +4 -1
- package/src/PredefinedConfig/LayoutState.d.ts +1 -1
- package/src/PredefinedConfig/NoteState.d.ts +1 -1
- package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
- package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
- package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +26 -26
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +1 -1
- package/src/Redux/Store/AdaptableStore.js +7 -7
- package/src/Strategy/CellSummaryModule.js +2 -1
- package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +1 -5
- package/src/Strategy/{CommentsModule.js → CommentModule.js} +7 -8
- package/src/Strategy/LayoutModule.d.ts +1 -0
- package/src/Strategy/LayoutModule.js +17 -1
- package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
- package/src/Strategy/{NotesModule.js → NoteModule.js} +9 -5
- package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
- package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
- package/src/Utilities/Constants/ModuleConstants.js +7 -7
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +15 -2
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
- package/src/Utilities/ObjectFactory.d.ts +3 -3
- package/src/Utilities/ObjectFactory.js +4 -24
- package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
- package/src/Utilities/Services/CellPopupService.js +2 -2
- package/src/Utilities/Services/Interface/ISummaryService.d.ts +17 -0
- package/src/Utilities/Services/Interface/ISummaryService.js +15 -0
- package/src/Utilities/Services/ModuleService.js +4 -0
- package/src/Utilities/Services/QueryLanguageService.js +2 -2
- package/src/Utilities/Services/SummaryService.d.ts +5 -14
- package/src/Utilities/Services/SummaryService.js +1 -13
- package/src/Utilities/adaptableQlUtils.d.ts +2 -0
- package/src/Utilities/adaptableQlUtils.js +18 -0
- package/src/View/AdaptableViewFactory.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
- package/src/View/Comments/CommentsEditor.js +1 -1
- package/src/View/Comments/CommentsPopup.js +8 -4
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +5 -5
- package/src/View/Components/ValueSelector/index.d.ts +1 -0
- package/src/View/Components/ValueSelector/index.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -1
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
- package/src/View/Layout/TransposedPopup.js +19 -18
- package/src/View/Layout/Wizard/LayoutWizard.js +8 -0
- package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +156 -0
- package/src/View/Note/NotePopup.d.ts +2 -0
- package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +5 -5
- package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
- package/src/agGrid/AdaptableAgGrid.js +7 -5
- package/src/agGrid/AgGridAdapter.d.ts +1 -0
- package/src/agGrid/AgGridAdapter.js +5 -0
- package/src/agGrid/AgGridColumnAdapter.js +3 -3
- package/src/agGrid/AgGridMenuAdapter.js +10 -6
- package/src/agGrid/defaultAdaptableOptions.js +0 -7
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
- package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
- package/src/components/icons/note.js +2 -2
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +61 -11
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/parser/src/parser.js +117 -1257
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
- package/src/parser/src/types.d.ts +2 -2
- package/src/types.d.ts +5 -4
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
- package/src/View/Notes/NotesPopup.d.ts +0 -2
- /package/src/Api/Internal/{NotesInternalApi.d.ts → NoteInternalApi.d.ts} +0 -0
- /package/src/Api/Internal/{NotesInternalApi.js → NoteInternalApi.js} +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
|
@@ -116,6 +116,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
116
116
|
],
|
|
117
117
|
examples: ['SUM([colA])', 'SUM([colA], GROUP_BY([colB]))'],
|
|
118
118
|
category: 'aggregation',
|
|
119
|
+
inputs: ['number'],
|
|
119
120
|
},
|
|
120
121
|
PERCENTAGE: {
|
|
121
122
|
handler(args, context) {
|
|
@@ -259,6 +260,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
259
260
|
],
|
|
260
261
|
examples: ['AVG([colA])', 'AVG([colA], GROUP_BY([colB]))', 'AVG([colA], WEIGHT([colB]))'],
|
|
261
262
|
category: 'aggregation',
|
|
263
|
+
inputs: ['number'],
|
|
262
264
|
},
|
|
263
265
|
MEDIAN: {
|
|
264
266
|
handler(args, context) {
|
|
@@ -323,12 +325,13 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
323
325
|
],
|
|
324
326
|
examples: ['MEDIAN([colA])', 'MEDIAN([colA], GROUP_BY([colB]))'],
|
|
325
327
|
category: 'aggregation',
|
|
328
|
+
inputs: ['number'],
|
|
326
329
|
},
|
|
327
330
|
MODE: {
|
|
328
331
|
handler(args, context) {
|
|
329
332
|
const modeColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('mode', args);
|
|
330
333
|
const modeColumnName = modeColumnParameter.value;
|
|
331
|
-
(0, expressionFunctionUtils_1.validateColumnType)(modeColumnName, ['Number'], 'mode', context.adaptableApi);
|
|
334
|
+
(0, expressionFunctionUtils_1.validateColumnType)(modeColumnName, ['Number', 'String'], 'mode', context.adaptableApi);
|
|
332
335
|
const groupByParameter = (0, expressionFunctionUtils_1.extractParameter)('MODE', 'operand', ['GROUP_BY'], args, {
|
|
333
336
|
isOptional: true,
|
|
334
337
|
});
|
|
@@ -342,7 +345,10 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
342
345
|
reducer: (aggregatedValue, rowValue, rowNode) => {
|
|
343
346
|
var _a;
|
|
344
347
|
if (typeof rowValue !== 'number' && typeof rowValue !== 'string') {
|
|
345
|
-
return;
|
|
348
|
+
return aggregatedValue;
|
|
349
|
+
}
|
|
350
|
+
if (!aggregatedValue) {
|
|
351
|
+
return new Map();
|
|
346
352
|
}
|
|
347
353
|
aggregatedValue.set(rowValue, ((_a = aggregatedValue.get(rowValue)) !== null && _a !== void 0 ? _a : 0) + 1);
|
|
348
354
|
return aggregatedValue;
|
|
@@ -384,6 +390,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
384
390
|
],
|
|
385
391
|
examples: ['MODE([colA])', 'MODE([colA], GROUP_BY([colB]))'],
|
|
386
392
|
category: 'aggregation',
|
|
393
|
+
inputs: [['number'], ['text']],
|
|
387
394
|
},
|
|
388
395
|
DISTINCT: {
|
|
389
396
|
handler(args, context) {
|
|
@@ -431,6 +438,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
431
438
|
],
|
|
432
439
|
examples: ['DISTINCT([colA])', 'DISTINCT([colA], GROUP_BY([colB]))'],
|
|
433
440
|
category: 'aggregation',
|
|
441
|
+
inputs: [['number'], ['text']],
|
|
434
442
|
},
|
|
435
443
|
ONLY: {
|
|
436
444
|
handler(args, context) {
|
|
@@ -480,6 +488,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
480
488
|
],
|
|
481
489
|
examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
|
|
482
490
|
category: 'aggregation',
|
|
491
|
+
inputs: [['number'], ['text']],
|
|
483
492
|
},
|
|
484
493
|
STD_DEVIATION: {
|
|
485
494
|
handler(args, context) {
|
|
@@ -537,6 +546,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
537
546
|
],
|
|
538
547
|
examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
|
|
539
548
|
category: 'aggregation',
|
|
549
|
+
inputs: ['number'],
|
|
540
550
|
},
|
|
541
551
|
MIN: {
|
|
542
552
|
handler(args, context) {
|
|
@@ -588,6 +598,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
588
598
|
],
|
|
589
599
|
examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
|
|
590
600
|
category: 'aggregation',
|
|
601
|
+
inputs: ['number'],
|
|
591
602
|
},
|
|
592
603
|
MAX: {
|
|
593
604
|
handler(args, context) {
|
|
@@ -639,6 +650,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
639
650
|
],
|
|
640
651
|
examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
|
|
641
652
|
category: 'aggregation',
|
|
653
|
+
inputs: ['number'],
|
|
642
654
|
},
|
|
643
655
|
QUANT: {
|
|
644
656
|
handler(args, context) {
|
|
@@ -837,6 +849,7 @@ exports.aggregatedScalarExpressionFunctions = {
|
|
|
837
849
|
],
|
|
838
850
|
examples: ['COUNT([colA])', 'COUNT([colA], GROUP_BY([colB]))'],
|
|
839
851
|
category: 'aggregation',
|
|
852
|
+
inputs: [['number'], ['text']],
|
|
840
853
|
},
|
|
841
854
|
OVER: {
|
|
842
855
|
handler(args, context) {
|
|
@@ -279,10 +279,10 @@ const isLastElementMinValue = (values) => {
|
|
|
279
279
|
};
|
|
280
280
|
// useful for functions which do NOT have an initial change (ex. GRID_CHANGE NONE)
|
|
281
281
|
const getDataChangedInfoStub = (context) => {
|
|
282
|
-
var _a;
|
|
282
|
+
var _a, _b;
|
|
283
283
|
let rowNodeStub;
|
|
284
284
|
if (!context.filterFn) {
|
|
285
|
-
rowNodeStub = context.adaptableApi.gridApi.getFirstRowNode();
|
|
285
|
+
rowNodeStub = (_a = context.node) !== null && _a !== void 0 ? _a : context.adaptableApi.gridApi.getFirstRowNode();
|
|
286
286
|
}
|
|
287
287
|
else {
|
|
288
288
|
// if there is a WHERE clause defined, find the first rowNode which satisfies the condition
|
|
@@ -297,7 +297,7 @@ const getDataChangedInfoStub = (context) => {
|
|
|
297
297
|
const rowNode = rowNodeStub;
|
|
298
298
|
if (rowNode) {
|
|
299
299
|
const primaryKeyValue = context.adaptableApi.gridApi.getPrimaryKeyValueForRowNode(rowNode);
|
|
300
|
-
const columnId = (
|
|
300
|
+
const columnId = (_b = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _b === void 0 ? void 0 : _b.columnId;
|
|
301
301
|
const oldValue = context.adaptableApi.gridApi.getCellRawValue(primaryKeyValue, columnId);
|
|
302
302
|
const column = context.adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
303
303
|
const newValue = oldValue;
|
|
@@ -2,6 +2,6 @@ import { ExpressionFunction } from '../../parser/src/types';
|
|
|
2
2
|
/**
|
|
3
3
|
* List of all the Scalar Functions available in AdaptableQL
|
|
4
4
|
*/
|
|
5
|
-
export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
|
|
5
|
+
export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'FIELD' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
|
|
6
6
|
export declare const scalarExpressionFunctions: Record<ScalarFunctionName, ExpressionFunction>;
|
|
7
7
|
export declare const scalarExpressionFunctionNames: ScalarFunctionName[];
|
|
@@ -72,6 +72,21 @@ exports.scalarExpressionFunctions = {
|
|
|
72
72
|
category: 'special',
|
|
73
73
|
returnType: 'any',
|
|
74
74
|
},
|
|
75
|
+
FIELD: {
|
|
76
|
+
handler(args, context) {
|
|
77
|
+
var _a, _b;
|
|
78
|
+
const fieldName = args[0];
|
|
79
|
+
if (StringExtensions_1.default.IsNullOrEmpty(fieldName)) {
|
|
80
|
+
throw new ExpressionEvaluationError_1.ExpressionEvaluationError('FIELD', 'requires a field name');
|
|
81
|
+
}
|
|
82
|
+
return (_a = context.adaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi.getValueUsingField((_b = context.node) === null || _b === void 0 ? void 0 : _b.data, fieldName);
|
|
83
|
+
},
|
|
84
|
+
description: 'Returns the value of a row field (not necessarily mapped to a column). If the field is nested, use dot notation (e.g. "nested.fieldName")',
|
|
85
|
+
signatures: ['FIELD(fieldName:string)'],
|
|
86
|
+
examples: ['FIELD("fieldName")', 'FIELD("nested.fieldName")'],
|
|
87
|
+
category: 'special',
|
|
88
|
+
returnType: 'any',
|
|
89
|
+
},
|
|
75
90
|
QUERY: {
|
|
76
91
|
handler(args, context) {
|
|
77
92
|
var _a, _b;
|
|
@@ -21,14 +21,14 @@ import { Shortcut } from '../PredefinedConfig/ShortcutState';
|
|
|
21
21
|
import { IPushPullReport } from '../PredefinedConfig/SystemState';
|
|
22
22
|
import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
|
|
23
23
|
import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
|
|
24
|
-
import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
|
|
24
|
+
import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SpecialColumnSettings, SystemFilterPredicateId } from '../types';
|
|
25
25
|
import { IRowNode } from '@ag-grid-community/core';
|
|
26
26
|
import { AdaptableApi, AdaptableComment, BadgeStyleDefinition, CellAddress, NamedQuery } from '../../types';
|
|
27
27
|
import { ToastOptions } from '../components/Toastify';
|
|
28
28
|
import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
|
|
29
29
|
export declare function CreateEmptyCustomSort(): CustomSort;
|
|
30
30
|
export declare function CreateAdaptableComment(text: string, api: AdaptableApi): AdaptableComment;
|
|
31
|
-
export declare function CreateEmptyCalculatedColumn(): CalculatedColumn;
|
|
31
|
+
export declare function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): CalculatedColumn;
|
|
32
32
|
export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
|
|
33
33
|
export declare function CreateEmptyPlusMinusNudge(): PlusMinusNudge;
|
|
34
34
|
export declare function CreateGenericAlert(alertHeader: string, alertMessage: string, alertDefinition: AlertDefinition): AdaptableGenericAlert;
|
|
@@ -51,7 +51,7 @@ export declare function CreateReportSchedule(reportName: string): ReportSchedule
|
|
|
51
51
|
export declare function CreateEmptySchedule(): Schedule;
|
|
52
52
|
export declare function CreateEmptyShortcut(): Shortcut;
|
|
53
53
|
export declare function CreateEmptyFormatColumn(): FormatColumn;
|
|
54
|
-
export declare function CreateEmptyFreeTextColumn(): FreeTextColumn;
|
|
54
|
+
export declare function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): FreeTextColumn;
|
|
55
55
|
export declare function CreateEmptyLayout(layout?: Partial<Layout> & {
|
|
56
56
|
Name: string;
|
|
57
57
|
}, adaptableColumns?: AdaptableColumn[]): Layout;
|
|
@@ -23,7 +23,7 @@ function CreateAdaptableComment(text, api) {
|
|
|
23
23
|
return comment;
|
|
24
24
|
}
|
|
25
25
|
exports.CreateAdaptableComment = CreateAdaptableComment;
|
|
26
|
-
function CreateEmptyCalculatedColumn() {
|
|
26
|
+
function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings) {
|
|
27
27
|
return {
|
|
28
28
|
Uuid: (0, Uuid_1.createUuid)(),
|
|
29
29
|
ColumnId: GeneralConstants_1.EMPTY_STRING,
|
|
@@ -31,17 +31,7 @@ function CreateEmptyCalculatedColumn() {
|
|
|
31
31
|
ScalarExpression: GeneralConstants_1.EMPTY_STRING,
|
|
32
32
|
},
|
|
33
33
|
// need to create some defaults - which we will change later
|
|
34
|
-
CalculatedColumnSettings: {
|
|
35
|
-
DataType: undefined,
|
|
36
|
-
Filterable: true,
|
|
37
|
-
Resizable: true,
|
|
38
|
-
Groupable: false,
|
|
39
|
-
Sortable: true,
|
|
40
|
-
Pivotable: false,
|
|
41
|
-
Aggregatable: false,
|
|
42
|
-
SuppressMenu: false,
|
|
43
|
-
SuppressMovable: false,
|
|
44
|
-
},
|
|
34
|
+
CalculatedColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: undefined }),
|
|
45
35
|
};
|
|
46
36
|
}
|
|
47
37
|
exports.CreateEmptyCalculatedColumn = CreateEmptyCalculatedColumn;
|
|
@@ -273,24 +263,14 @@ function CreateEmptyFormatColumn() {
|
|
|
273
263
|
};
|
|
274
264
|
}
|
|
275
265
|
exports.CreateEmptyFormatColumn = CreateEmptyFormatColumn;
|
|
276
|
-
function CreateEmptyFreeTextColumn() {
|
|
266
|
+
function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
|
|
277
267
|
return {
|
|
278
268
|
Uuid: (0, Uuid_1.createUuid)(),
|
|
279
269
|
ColumnId: GeneralConstants_1.EMPTY_STRING,
|
|
280
270
|
DefaultValue: GeneralConstants_1.EMPTY_STRING,
|
|
281
271
|
FreeTextStoredValues: [],
|
|
282
272
|
TextEditor: 'Inline',
|
|
283
|
-
FreeTextColumnSettings: {
|
|
284
|
-
DataType: 'String',
|
|
285
|
-
Filterable: true,
|
|
286
|
-
Resizable: true,
|
|
287
|
-
Groupable: false,
|
|
288
|
-
Sortable: true,
|
|
289
|
-
Pivotable: false,
|
|
290
|
-
Aggregatable: false,
|
|
291
|
-
SuppressMenu: false,
|
|
292
|
-
SuppressMovable: false,
|
|
293
|
-
},
|
|
273
|
+
FreeTextColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: 'String' }),
|
|
294
274
|
};
|
|
295
275
|
}
|
|
296
276
|
exports.CreateEmptyFreeTextColumn = CreateEmptyFreeTextColumn;
|
|
@@ -63,7 +63,7 @@ class AggregatedScalarLiveValue {
|
|
|
63
63
|
var _a, _b;
|
|
64
64
|
if ((_a = this.expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
|
|
65
65
|
const groupColumns = this.expressionEvaluation.aggregationParams.groupBy.map((groupByParam) => groupByParam.field);
|
|
66
|
-
const groupKeys = groupColumns.map((groupColumnName) => this.
|
|
66
|
+
const groupKeys = groupColumns.map((groupColumnName) => this.getRowNodeValueForColumnId(rowNode, groupColumnName));
|
|
67
67
|
return (_b = this.aggregationResult.deepMap.get(groupKeys)) === null || _b === void 0 ? void 0 : _b.reducerResults[this.aggregationReducerName];
|
|
68
68
|
}
|
|
69
69
|
return this.getGlobalAggregatedValue();
|
|
@@ -71,6 +71,11 @@ class AggregatedScalarLiveValue {
|
|
|
71
71
|
getGlobalAggregatedValue() {
|
|
72
72
|
return this.aggregationResult.reducerResults[this.aggregationReducerName];
|
|
73
73
|
}
|
|
74
|
+
getRowNodeValueForColumnId(rowNode, columnId) {
|
|
75
|
+
const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
|
|
76
|
+
// we need to convert the Date object to a number, otherwise the grouping will not work (each Date instance is unique)
|
|
77
|
+
return rawValue instanceof Date ? rawValue.getTime() : rawValue;
|
|
78
|
+
}
|
|
74
79
|
computeAggregatedValue(expressionEvaluation) {
|
|
75
80
|
var _a;
|
|
76
81
|
const gridRowNodes = expressionEvaluation.getRowNodes
|
|
@@ -80,18 +85,16 @@ class AggregatedScalarLiveValue {
|
|
|
80
85
|
});
|
|
81
86
|
// we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
|
|
82
87
|
// so we will map the fieldNames to RowNode.data
|
|
83
|
-
const mapReducerValueGetter = (
|
|
84
|
-
return (rowNode) =>
|
|
85
|
-
return this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
|
|
86
|
-
};
|
|
88
|
+
const mapReducerValueGetter = (columnId) => {
|
|
89
|
+
return (rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
|
|
87
90
|
};
|
|
88
91
|
Object.values(expressionEvaluation.aggregationParams.reducers).forEach((aggregationReducer) => {
|
|
89
92
|
aggregationReducer.getter = mapReducerValueGetter(aggregationReducer.field);
|
|
90
93
|
// nullify the field to force the fallback on the getter fn
|
|
91
94
|
aggregationReducer.field = null;
|
|
92
95
|
});
|
|
93
|
-
const mapGroupByToKey = (
|
|
94
|
-
return (_unusableProperty, rowNode) => this.
|
|
96
|
+
const mapGroupByToKey = (columnId) => {
|
|
97
|
+
return (_unusableProperty, rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
|
|
95
98
|
};
|
|
96
99
|
(_a = expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.forEach((groupByDef) => {
|
|
97
100
|
groupByDef.toKey = mapGroupByToKey(groupByDef.field);
|
|
@@ -99,11 +102,10 @@ class AggregatedScalarLiveValue {
|
|
|
99
102
|
let aggregatedRowNodes = gridRowNodes;
|
|
100
103
|
if (expressionEvaluation.sortByColumn) {
|
|
101
104
|
const sortByColumn = expressionEvaluation.sortByColumn;
|
|
102
|
-
const getRowNodeValue = (rowNode, columnId) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
|
|
103
105
|
// currently, we support only ascending sorting
|
|
104
106
|
aggregatedRowNodes.sort((first, second) => {
|
|
105
|
-
const firstValue =
|
|
106
|
-
const secondValue =
|
|
107
|
+
const firstValue = this.getRowNodeValueForColumnId(first, sortByColumn);
|
|
108
|
+
const secondValue = this.getRowNodeValueForColumnId(second, sortByColumn);
|
|
107
109
|
if (firstValue < secondValue) {
|
|
108
110
|
return -1;
|
|
109
111
|
}
|
|
@@ -78,7 +78,7 @@ class CellPopupService {
|
|
|
78
78
|
this.hidePopup();
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
const cellNotes = this.adaptable.api.noteApi.
|
|
81
|
+
const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellPosition);
|
|
82
82
|
const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
|
|
83
83
|
const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
|
|
84
84
|
// call only if it is different
|
|
@@ -96,7 +96,7 @@ class CellPopupService {
|
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
// if open but this has no note, close
|
|
99
|
-
const cellNotes = this.adaptable.api.noteApi.
|
|
99
|
+
const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellAddress);
|
|
100
100
|
const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
|
|
101
101
|
const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
|
|
102
102
|
if (openCellAddress && !hasNotesOrComments) {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IAdaptableService } from './IAdaptableService';
|
|
2
|
+
import { AdaptableModule } from '../../../PredefinedConfig/Common/Types';
|
|
3
|
+
import { IRowNode } from '@ag-grid-community/core/dist/esm/es6/interfaces/iRowNode';
|
|
4
|
+
import { AggregatedScalarLiveValue } from '../AggregatedScalarLiveValue';
|
|
5
|
+
export declare const summarySupportedExpressions: readonly ["SUM", "AVG", "MIN", "MAX", "COUNT", "MEDIAN", "MODE", "DISTINCT", "ONLY", "STD_DEVIATION"];
|
|
6
|
+
export type SummaryConfig = {
|
|
7
|
+
expression: {
|
|
8
|
+
function: SummarySupportedExpression;
|
|
9
|
+
};
|
|
10
|
+
columnId: string;
|
|
11
|
+
getRowNodes?: () => IRowNode[];
|
|
12
|
+
};
|
|
13
|
+
export type SummarySupportedExpression = (typeof summarySupportedExpressions)[number];
|
|
14
|
+
export interface ISummaryService extends IAdaptableService {
|
|
15
|
+
evaluateExpressionValue(config: SummaryConfig, moduleId: AdaptableModule): any;
|
|
16
|
+
evaluateScalarLiveValue(config: SummaryConfig, moduleId: AdaptableModule): AggregatedScalarLiveValue;
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.summarySupportedExpressions = void 0;
|
|
4
|
+
exports.summarySupportedExpressions = [
|
|
5
|
+
'SUM',
|
|
6
|
+
'AVG',
|
|
7
|
+
'MIN',
|
|
8
|
+
'MAX',
|
|
9
|
+
'COUNT',
|
|
10
|
+
'MEDIAN',
|
|
11
|
+
'MODE',
|
|
12
|
+
'DISTINCT',
|
|
13
|
+
'ONLY',
|
|
14
|
+
'STD_DEVIATION',
|
|
15
|
+
];
|
|
@@ -105,6 +105,8 @@ class ModuleService {
|
|
|
105
105
|
return learnUrl + 'handbook-exporting';
|
|
106
106
|
case 'ColumnFilter':
|
|
107
107
|
return learnUrl + 'handbook-column-filter';
|
|
108
|
+
case 'Comment':
|
|
109
|
+
return learnUrl + 'handbook-comments';
|
|
108
110
|
case 'GridFilter':
|
|
109
111
|
return learnUrl + 'handbook-grid-filter';
|
|
110
112
|
case 'FlashingCell':
|
|
@@ -117,6 +119,8 @@ class ModuleService {
|
|
|
117
119
|
return learnUrl + 'handbook-monitoring-grid-info';
|
|
118
120
|
case 'Layout':
|
|
119
121
|
return learnUrl + 'handbook-layouts';
|
|
122
|
+
case 'Note':
|
|
123
|
+
return learnUrl + 'handbook-notes';
|
|
120
124
|
case 'PlusMinus':
|
|
121
125
|
return learnUrl + 'handbook-editing-plus-minus';
|
|
122
126
|
case 'NamedQuery':
|
|
@@ -52,7 +52,7 @@ class QueryLanguageService {
|
|
|
52
52
|
const moduleExpressionFunctions = this.getModuleExpressionFunctionsMap(module);
|
|
53
53
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctions);
|
|
54
54
|
const reactiveExpression$ = parser.evaluate(reactiveExpression, {
|
|
55
|
-
node:
|
|
55
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
56
56
|
adaptableApi: this.adaptableApi,
|
|
57
57
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
58
58
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
@@ -66,7 +66,7 @@ class QueryLanguageService {
|
|
|
66
66
|
const moduleExpressionFunctionsMap = this.getModuleExpressionFunctionsMap(module);
|
|
67
67
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctionsMap);
|
|
68
68
|
const aggregationEvaluation = parser.evaluate(aggregationExpression, {
|
|
69
|
-
node:
|
|
69
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
70
70
|
adaptableApi: this.adaptableApi,
|
|
71
71
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
72
72
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
import { IRowNode } from '@ag-grid-community/core';
|
|
2
|
-
import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
|
|
3
1
|
import { AdaptableApi, AdaptableModule } from '../../types';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
expression: {
|
|
8
|
-
function: SummarySupportedExpression;
|
|
9
|
-
};
|
|
10
|
-
columnId: string;
|
|
11
|
-
getRowNodes?: () => IRowNode[];
|
|
12
|
-
};
|
|
13
|
-
export declare class SummaryService {
|
|
2
|
+
import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
|
|
3
|
+
import { ISummaryService, SummaryConfig } from './Interface/ISummaryService';
|
|
4
|
+
export declare class SummaryService implements ISummaryService {
|
|
14
5
|
private adaptableApi;
|
|
15
6
|
constructor(adaptableApi: AdaptableApi);
|
|
16
|
-
evaluateExpressionValue(config:
|
|
17
|
-
evaluateScalarLiveValue(config:
|
|
7
|
+
evaluateExpressionValue(config: SummaryConfig, moduleId: AdaptableModule): any;
|
|
8
|
+
evaluateScalarLiveValue(config: SummaryConfig, moduleId: AdaptableModule): AggregatedScalarLiveValue;
|
|
18
9
|
destroy(): void;
|
|
19
10
|
}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SummaryService =
|
|
3
|
+
exports.SummaryService = void 0;
|
|
4
4
|
const AggregatedScalarLiveValue_1 = require("./AggregatedScalarLiveValue");
|
|
5
|
-
exports.summarySupportedExpressions = [
|
|
6
|
-
'SUM',
|
|
7
|
-
'AVG',
|
|
8
|
-
'MIN',
|
|
9
|
-
'MAX',
|
|
10
|
-
'COUNT',
|
|
11
|
-
'MEDIAN',
|
|
12
|
-
'MODE',
|
|
13
|
-
'DISTINCT',
|
|
14
|
-
'ONLY',
|
|
15
|
-
'STD_DEVIATION',
|
|
16
|
-
];
|
|
17
5
|
class SummaryService {
|
|
18
6
|
constructor(adaptableApi) {
|
|
19
7
|
this.adaptableApi = adaptableApi;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapColumnDataTypeToExpressionFunctionType = void 0;
|
|
4
|
+
const mapColumnDataTypeToExpressionFunctionType = (dataType) => {
|
|
5
|
+
if (dataType === 'Number') {
|
|
6
|
+
return 'number';
|
|
7
|
+
}
|
|
8
|
+
if (dataType === 'Boolean') {
|
|
9
|
+
return 'boolean';
|
|
10
|
+
}
|
|
11
|
+
if (dataType === 'String') {
|
|
12
|
+
return 'text';
|
|
13
|
+
}
|
|
14
|
+
if (dataType === 'Date') {
|
|
15
|
+
return 'date';
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.mapColumnDataTypeToExpressionFunctionType = mapColumnDataTypeToExpressionFunctionType;
|
|
@@ -33,7 +33,7 @@ const StatusBarPopup_1 = require("./StatusBar/StatusBarPopup");
|
|
|
33
33
|
const ChartingViewPanel_1 = require("./Charting/ChartingViewPanel");
|
|
34
34
|
const GridFilterPopup_1 = require("./GridFilter/GridFilterPopup");
|
|
35
35
|
const ColumnInfoPopup_1 = require("./ColumnInfo/ColumnInfoPopup");
|
|
36
|
-
const
|
|
36
|
+
const NotePopup_1 = require("./Note/NotePopup");
|
|
37
37
|
const CommentsPopup_1 = require("./Comments/CommentsPopup");
|
|
38
38
|
const DataImportPopup_1 = require("./DataImport/DataImportPopup");
|
|
39
39
|
exports.AdaptableViewFactory = {
|
|
@@ -50,7 +50,7 @@ exports.AdaptableViewFactory = {
|
|
|
50
50
|
ToolPanelPopup: ToolPanelPopup_1.ToolPanelPopup,
|
|
51
51
|
SystemStatusPopup: SystemStatusPopup_1.SystemStatusPopup,
|
|
52
52
|
DataChangeHistoryPopup: DataChangeHistoryPopup_1.DataChangeHistoryPopup,
|
|
53
|
-
|
|
53
|
+
NotePopup: NotePopup_1.NotePopup,
|
|
54
54
|
CommentsPopup: CommentsPopup_1.CommentsPopup,
|
|
55
55
|
DataImportPopup: DataImportPopup_1.DataImportPopup,
|
|
56
56
|
GridFilterPopup: GridFilterPopup_1.GridFilterPopup,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { CalculatedColumn } from '../../../types';
|
|
3
3
|
import { AdaptableOnePageWizardProps } from '../../Wizard/Interface/IAdaptableWizard';
|
|
4
4
|
export declare const calculatedColumnTypes: readonly ["ScalarExpression", "AggregatedScalarExpression", "CumulativeAggregatedExpression", "QuantileAggregatedExpression"];
|
|
5
|
-
export type ExpressionType =
|
|
5
|
+
export type ExpressionType = typeof calculatedColumnTypes[number];
|
|
6
6
|
export interface CalculatedColumnWizardProps extends AdaptableOnePageWizardProps<CalculatedColumn> {
|
|
7
7
|
}
|
|
8
8
|
export declare const CalculatedColumnWizard: (props: CalculatedColumnWizardProps) => JSX.Element;
|
|
@@ -40,7 +40,7 @@ const CalculatedColumnWizard = (props) => {
|
|
|
40
40
|
return (0, Helper_1.cloneObject)(calculatedColumn);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
return ObjectFactory_1.default.CreateEmptyCalculatedColumn();
|
|
43
|
+
return ObjectFactory_1.default.CreateEmptyCalculatedColumn(adaptable.api.gridApi.internalApi.deriveSpecialColumnSettingsFromAgGridDefaultColDef());
|
|
44
44
|
});
|
|
45
45
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
46
46
|
const isEdit = Boolean(props.data) || ((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'Edit';
|
|
@@ -89,7 +89,7 @@ const CommentsEditor = (props) => {
|
|
|
89
89
|
}
|
|
90
90
|
}, mt: 2, mb: "2", width: "100%", placeholder: "Write new comment" }),
|
|
91
91
|
React.createElement(SimpleButton_1.default, { width: "100%", variant: "raised", onClick: () => {
|
|
92
|
-
adaptable.api.settingsPanelApi.openSettingsPanel('
|
|
92
|
+
adaptable.api.settingsPanelApi.openSettingsPanel('Comment');
|
|
93
93
|
adaptable.api.internalApi.getCellPopupService().hidePopup();
|
|
94
94
|
} },
|
|
95
95
|
React.createElement(rebass_1.Box, { mr: 2 },
|
|
@@ -49,14 +49,18 @@ const CellComments = (props) => {
|
|
|
49
49
|
const columnFriendlyName = adaptable.api.columnApi.getFriendlyNameForColumnId(props.commentThread.ColumnId);
|
|
50
50
|
return (React.createElement(Panel_1.default, { mb: 2, header: React.createElement(rebass_1.Flex, { width: "100%", alignItems: "center" },
|
|
51
51
|
React.createElement(rebass_1.Box, { mr: 2 },
|
|
52
|
-
"Cell Value:
|
|
52
|
+
React.createElement("b", null, "Cell Value:"),
|
|
53
|
+
" ",
|
|
53
54
|
cellValue),
|
|
54
55
|
React.createElement(rebass_1.Box, { mr: 2 },
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
React.createElement("b", null,
|
|
57
|
+
primaryKeyHeader,
|
|
58
|
+
":"),
|
|
59
|
+
" ",
|
|
57
60
|
props.commentThread.PrimaryKeyValue),
|
|
58
61
|
React.createElement(rebass_1.Box, null,
|
|
59
|
-
"Column:
|
|
62
|
+
React.createElement("b", null, "Column:"),
|
|
63
|
+
" ",
|
|
60
64
|
columnFriendlyName),
|
|
61
65
|
React.createElement(rebass_1.Box, { flex: 1 }),
|
|
62
66
|
React.createElement(AdaptableButton_1.AdaptableButtonComponent, { mr: 1, variant: "text", icon: "visibility-on", onClick: () => {
|
|
@@ -5,15 +5,15 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const react_redux_1 = require("react-redux");
|
|
7
7
|
const rebass_1 = require("rebass");
|
|
8
|
-
const
|
|
8
|
+
const NoteRedux_1 = require("../../../../Redux/ActionsReducers/NoteRedux");
|
|
9
9
|
const SystemRedux_1 = require("../../../../Redux/ActionsReducers/SystemRedux");
|
|
10
10
|
const AdaptableContext_1 = require("../../../AdaptableContext");
|
|
11
11
|
const CommentsEditor_1 = require("../../../Comments/CommentsEditor");
|
|
12
|
-
const NoteEditor_1 = require("../../../
|
|
12
|
+
const NoteEditor_1 = require("../../../Note/NoteEditor");
|
|
13
13
|
const CellPopup_1 = require("../../CellPopup");
|
|
14
14
|
const ConnectedNoteEditor = ({ enableEditMode }) => {
|
|
15
15
|
const { api } = (0, AdaptableContext_1.useAdaptable)();
|
|
16
|
-
const isReadonly = api.entitlementApi.isModuleReadOnlyEntitlement('
|
|
16
|
+
const isReadonly = api.entitlementApi.isModuleReadOnlyEntitlement('Note');
|
|
17
17
|
const editMode = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsAndNotesEditModeSelector)(state.System));
|
|
18
18
|
const cellPopupService = api.internalApi.getCellPopupService();
|
|
19
19
|
const cellAddress = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsAndNotesSelector)(state.System));
|
|
@@ -21,12 +21,12 @@ const ConnectedNoteEditor = ({ enableEditMode }) => {
|
|
|
21
21
|
// Only handle first note for now
|
|
22
22
|
// Later we can handle multiple notes
|
|
23
23
|
note,] = (0, react_redux_1.useSelector)((state) => {
|
|
24
|
-
return cellAddress ? (0,
|
|
24
|
+
return cellAddress ? (0, NoteRedux_1.GetNotesSelector)(state.Note, cellAddress) : [];
|
|
25
25
|
});
|
|
26
26
|
const handleNoteChange = React.useCallback((value) => {
|
|
27
27
|
api.noteApi.updateNoteText(value, note);
|
|
28
28
|
}, [note]);
|
|
29
|
-
return (React.createElement(rebass_1.Flex, { onClick: () => enableEditMode(), flexDirection: "column", className: "ab-
|
|
29
|
+
return (React.createElement(rebass_1.Flex, { onClick: () => enableEditMode(), flexDirection: "column", className: "ab-NotePopup" },
|
|
30
30
|
React.createElement(NoteEditor_1.NoteEditor, { isReadonly: isReadonly, editMode: editMode, key: note === null || note === void 0 ? void 0 : note.Uuid, onClose: () => cellPopupService.hidePopup(), note: note === null || note === void 0 ? void 0 : note.Text, onNoteChange: (value) => handleNoteChange(value) })));
|
|
31
31
|
};
|
|
32
32
|
const GridCellPopup = (props) => {
|
|
@@ -26,6 +26,7 @@ export type ValueSelectorProps<OPTION_TYPE, ID_TYPE extends number | string> = {
|
|
|
26
26
|
onShowSelectedOnlyChange?: (selectedOnly: boolean) => void;
|
|
27
27
|
isOptionDisabled?: (option: OPTION_TYPE) => boolean;
|
|
28
28
|
disabled?: boolean;
|
|
29
|
+
style?: React.CSSProperties;
|
|
29
30
|
};
|
|
30
31
|
export declare function ValueSelector<OPTION_TYPE, ID_TYPE extends number | string>(props: ValueSelectorProps<OPTION_TYPE, ID_TYPE>): JSX.Element;
|
|
31
32
|
export declare namespace ValueSelector {
|
|
@@ -115,7 +115,7 @@ function ValueSelector(props) {
|
|
|
115
115
|
};
|
|
116
116
|
const showOnlySelectedCheckbox = (React.createElement(CheckBox_1.CheckBox, { disabled: !value.length, checked: selectedOnly, onChange: setSelectedOnly }, showSelectedOnlyLabel !== null && showSelectedOnlyLabel !== void 0 ? showSelectedOnlyLabel : 'Show Selected Only'));
|
|
117
117
|
const showSelectedOnlyPosition = (_a = props.showSelectedOnlyPosition) !== null && _a !== void 0 ? _a : 'floating';
|
|
118
|
-
return (React.createElement(rebass_1.Flex, { className: baseClassName, flexDirection: "column", flex: 1 },
|
|
118
|
+
return (React.createElement(rebass_1.Flex, { style: props.style, className: baseClassName, flexDirection: "column", flex: 1 },
|
|
119
119
|
React.createElement(rebass_1.Flex, { mb: 1 },
|
|
120
120
|
showFilterInput && filter ? (React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Type to search", style: { flex: 1, border: 0, margin: 3 } })) : (React.createElement(rebass_1.Box, { flex: 1 })),
|
|
121
121
|
showSelectedOnlyPosition === 'top' && React.createElement(rebass_1.Box, { ml: 20 }, showOnlySelectedCheckbox)),
|
|
@@ -49,7 +49,7 @@ class FreeTextColumnSummaryComponent extends React.Component {
|
|
|
49
49
|
this.state.editedAdaptableObject && (React.createElement(FreeTextColumnWizard_1.FreeTextColumnWizard, { moduleInfo: this.props.moduleInfo, data: this.state.editedAdaptableObject, configEntities: this.props.FreeTextColumns, onCloseWizard: () => this.onCloseWizard(), onFinishWizard: this.onFinishWizard }))));
|
|
50
50
|
}
|
|
51
51
|
onNew() {
|
|
52
|
-
let configEntity = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn();
|
|
52
|
+
let configEntity = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn(this.props.api.gridApi.internalApi.deriveSpecialColumnSettingsFromAgGridDefaultColDef());
|
|
53
53
|
configEntity.ColumnId = this.props.summarisedColumn.columnId;
|
|
54
54
|
this.setState({
|
|
55
55
|
editedAdaptableObject: configEntity,
|