@adaptabletools/adaptable 22.0.0-canary.11 → 22.0.0-canary.13
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/index.css +3 -12
- package/index.css.map +1 -1
- package/index.d.ts +8 -8
- package/index.js +8 -8
- package/package.json +1 -4
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableColumn.d.ts +3 -3
- package/src/AdaptableState/Common/AdaptableForm.d.ts +1 -1
- package/src/AdaptableState/InitialState.d.ts +1 -1
- package/src/AdaptableState/UserInterfaceState.d.ts +1 -1
- package/src/Api/ColumnApi.d.ts +1 -1
- package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ColumnApiImpl.js +4 -4
- package/src/Api/Implementation/LayoutHelpers.js +1 -1
- package/src/Api/Internal/ColumnInternalApi.d.ts +1 -1
- package/src/Api/Internal/ColumnInternalApi.js +5 -3
- package/src/Api/Internal/EventInternalApi.js +1 -1
- package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
- package/src/Redux/Store/AdaptableReduxMerger.js +5 -6
- package/src/Strategy/FormatColumnModule.js +2 -2
- package/src/Strategy/LayoutModule.js +1 -1
- package/src/Strategy/StyledColumnModule.js +14 -6
- package/src/Strategy/TeamSharingModule.js +2 -2
- package/src/Strategy/Utilities/FormatColumn/{getFormatColumnSettingsTargetItems.d.ts → getFormatColumnRowTargetItems.d.ts} +1 -1
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnRowTargetItems.js +22 -0
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +5 -13
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
- package/src/Utilities/Extensions/StringExtensions.js +1 -1
- package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
- package/src/Utilities/Helpers/FormatHelper.js +1 -1
- package/src/Utilities/Services/LicenseService/index.js +1 -1
- package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
- package/src/Utilities/Services/RowSummaryService.js +2 -2
- package/src/Utilities/getScopeViewItems.js +1 -1
- package/src/Utilities/utils/chunk.d.ts +6 -0
- package/src/Utilities/utils/chunk.js +17 -0
- package/src/Utilities/utils/clamp.d.ts +5 -0
- package/src/Utilities/utils/clamp.js +7 -0
- package/src/Utilities/utils/cloneDeepWith.d.ts +9 -0
- package/src/Utilities/utils/cloneDeepWith.js +67 -0
- package/src/Utilities/utils/debounce.d.ts +20 -0
- package/src/Utilities/utils/debounce.js +121 -0
- package/src/Utilities/utils/flatten.d.ts +5 -0
- package/src/Utilities/utils/flatten.js +7 -0
- package/src/Utilities/utils/flattenDeep.d.ts +5 -0
- package/src/Utilities/utils/flattenDeep.js +7 -0
- package/src/Utilities/utils/get.d.ts +6 -0
- package/src/Utilities/utils/get.js +35 -0
- package/src/Utilities/utils/index.d.ts +22 -0
- package/src/Utilities/utils/index.js +22 -0
- package/src/Utilities/utils/isArray.d.ts +6 -0
- package/src/Utilities/utils/isArray.js +6 -0
- package/src/Utilities/utils/isEqual.d.ts +5 -0
- package/src/Utilities/utils/isEqual.js +124 -0
- package/src/Utilities/utils/isObject.d.ts +6 -0
- package/src/Utilities/utils/isObject.js +9 -0
- package/src/Utilities/utils/isPlainObject.d.ts +6 -0
- package/src/Utilities/utils/isPlainObject.js +17 -0
- package/src/Utilities/utils/kebabCase.d.ts +5 -0
- package/src/Utilities/utils/kebabCase.js +8 -0
- package/src/Utilities/utils/merge.d.ts +11 -0
- package/src/Utilities/utils/merge.js +40 -0
- package/src/Utilities/utils/mergeWith.d.ts +7 -0
- package/src/Utilities/utils/mergeWith.js +46 -0
- package/src/Utilities/utils/orderBy.d.ts +8 -0
- package/src/Utilities/utils/orderBy.js +30 -0
- package/src/Utilities/utils/parseInt.d.ts +6 -0
- package/src/Utilities/utils/parseInt.js +9 -0
- package/src/Utilities/utils/sentenceCase.d.ts +6 -0
- package/src/Utilities/utils/sentenceCase.js +15 -0
- package/src/Utilities/utils/startCase.d.ts +5 -0
- package/src/Utilities/utils/startCase.js +11 -0
- package/src/Utilities/utils/throttle.d.ts +17 -0
- package/src/Utilities/utils/throttle.js +19 -0
- package/src/Utilities/utils/toNumber.d.ts +5 -0
- package/src/Utilities/utils/toNumber.js +39 -0
- package/src/Utilities/utils/uniq.d.ts +7 -0
- package/src/Utilities/utils/uniq.js +9 -0
- package/src/Utilities/utils/uniqBy.d.ts +8 -0
- package/src/Utilities/utils/uniqBy.js +22 -0
- package/src/Utilities/utils/words.d.ts +7 -0
- package/src/Utilities/utils/words.js +10 -0
- package/src/Utilities/weightedAverage.js +1 -1
- package/src/View/AdaptableComputedCSSVarsContext.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
- package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
- package/src/View/Components/RangesComponent.js +1 -1
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
- package/src/View/Components/ValueSelector/index.js +7 -2
- package/src/View/Dashboard/CustomDashboardButton.js +1 -1
- package/src/View/Dashboard/Dashboard.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
- package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
- package/src/View/Export/Wizard/NewReportWizard.js +8 -8
- package/src/View/Filter/FilterViewPanel.d.ts +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +19 -10
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.d.ts +8 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.js +80 -0
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +22 -61
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +22 -8
- package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
- package/src/View/Note/NoteEditor.js +1 -1
- package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
- package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeRowsSection.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/{StyledColumnWizardSettingsSection.js → StyledColumnBadgeRowsSection.js} +19 -19
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +10 -11
- package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
- package/src/View/Theme/ThemeEditor.js +1 -1
- package/src/View/Theme/ThemeField.js +1 -1
- package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
- package/src/agGrid/AdaptableAgGrid.js +2 -2
- package/src/agGrid/AgGridAdapter.js +4 -4
- package/src/agGrid/AgGridColumnAdapter.js +2 -2
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -1
- package/src/components/ColorPicker/ColorPicker.js +1 -1
- package/src/components/DropdownButton/renderItem.js +1 -1
- package/src/components/FormLayout/index.js +1 -1
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/isLayoutEqual.js +1 -1
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/VersionUpgrade22.js +9 -0
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +0 -12
- package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +0 -8
- package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +0 -31
- package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.d.ts +0 -8
- /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.d.ts → FormatColumnColumnScopeWizardSection.d.ts} +0 -0
- /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.js → FormatColumnColumnScopeWizardSection.js} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split a string into words: handles camelCase, PascalCase, UPPER_CASE,
|
|
3
|
+
* UPPER_SNAKE_CASE, snake_case, kebab-case, spaces, and dot.notation.
|
|
4
|
+
*
|
|
5
|
+
* Shared helper used by kebabCase, startCase, and sentenceCase.
|
|
6
|
+
*/
|
|
7
|
+
export default function words(str) {
|
|
8
|
+
const matches = str.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\d|$|[^a-zA-Z0-9])|[A-Z]|[0-9]+/g);
|
|
9
|
+
return matches || [];
|
|
10
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { CSSNumericVariableWatch } from '../components/Select/CSSNumericVariableWatch';
|
|
3
|
-
import debounce from '
|
|
3
|
+
import debounce from '../Utilities/utils/debounce';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
const computedCSSVarNames = [
|
|
6
6
|
'--ab-cmp-select-menu__max-width',
|
|
@@ -8,7 +8,7 @@ import { useRef, useState } from 'react';
|
|
|
8
8
|
import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
|
|
9
9
|
import { DataSource, InfiniteTableGrid, } from '../../../components/InfiniteTable';
|
|
10
10
|
import { Box, Flex } from '../../../components/Flex';
|
|
11
|
-
import throttle from '
|
|
11
|
+
import throttle from '../../../Utilities/utils/throttle';
|
|
12
12
|
import { twMerge } from '../../../twMerge';
|
|
13
13
|
const dataTypes = [
|
|
14
14
|
{
|
|
@@ -8,7 +8,7 @@ import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
|
|
|
8
8
|
import { AdaptableIconSelector } from '../../Components/AdaptableIconSelector';
|
|
9
9
|
import { Select } from '../../../components/Select';
|
|
10
10
|
import { Box, Flex } from '../../../components/Flex';
|
|
11
|
-
import
|
|
11
|
+
import sentenceCase from '../../../Utilities/utils/sentenceCase';
|
|
12
12
|
function renderCommand(command) {
|
|
13
13
|
switch (command) {
|
|
14
14
|
case 'highlight-cell':
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useSelector } from 'react-redux';
|
|
3
|
-
import isEqual from '
|
|
3
|
+
import isEqual from '../../../../Utilities/utils/isEqual';
|
|
4
4
|
import * as InternalRedux from '../../../../Redux/ActionsReducers/InternalRedux';
|
|
5
5
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
6
6
|
export const PreviewChartSection = (props) => {
|
|
@@ -4,7 +4,7 @@ import AdaptableInput from '../../AdaptableInput';
|
|
|
4
4
|
import { AdaptableDateInlineInput } from '../../AdaptableInput/AdaptableDateInlineInput';
|
|
5
5
|
import { PermittedValuesSelector } from '../../Selectors/PermittedValuesSelector';
|
|
6
6
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
7
|
-
import debounce from '
|
|
7
|
+
import debounce from '../../../../Utilities/utils/debounce';
|
|
8
8
|
import { useCallback } from 'react';
|
|
9
9
|
function debounceOrImmediate(fn, time) {
|
|
10
10
|
return time && time > 0 ? debounce(fn, time) : fn;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import debounce from '../../../../Utilities/utils/debounce';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { getOperatorMatchingInputs } from '../../../../components/ExpressionEditor/QueryBuilder/utils';
|
|
4
4
|
import Panel from '../../../../components/Panel';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import debounce from '../../../../Utilities/utils/debounce';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { getOperatorMatchingInputs } from '../../../../components/ExpressionEditor/QueryBuilder/utils';
|
|
4
4
|
import { mapColumnDataTypeToExpressionFunctionType } from '../../../../Utilities/adaptableQlUtils';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ColorPicker } from '../../components/ColorPicker';
|
|
3
|
-
import clamp from '
|
|
3
|
+
import clamp from '../../Utilities/utils/clamp';
|
|
4
4
|
import { CheckBox } from '../../components/CheckBox';
|
|
5
5
|
import FormLayout, { FormRow } from '../../components/FormLayout';
|
|
6
6
|
import { NumberInput } from '../../components/Input/NumberInput';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import kebabCase from '
|
|
2
|
+
import kebabCase from '../../../Utilities/utils/kebabCase';
|
|
3
3
|
import * as ToolPanelRedux from '../../../Redux/ActionsReducers/ToolPanelRedux';
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
5
|
import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
|
|
@@ -3,7 +3,7 @@ import { useLayoutEffect, useRef, useState } from 'react';
|
|
|
3
3
|
import { useAdaptable } from '../../AdaptableContext';
|
|
4
4
|
import { createUuid } from '../../../components/utils/uuid';
|
|
5
5
|
import SimpleButton from '../../../components/SimpleButton';
|
|
6
|
-
import kebabCase from '
|
|
6
|
+
import kebabCase from '../../../Utilities/utils/kebabCase';
|
|
7
7
|
export const CustomToolPanelContent = (props) => {
|
|
8
8
|
const { customToolPanel } = props;
|
|
9
9
|
const { api } = useAdaptable();
|
|
@@ -159,7 +159,12 @@ export const renderSelectionSection = (props) => {
|
|
|
159
159
|
const { value, options, disabled, singleSelect, toLabel, toIdentifier, } = props;
|
|
160
160
|
const selectionBox = (React.createElement(Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:py-2" },
|
|
161
161
|
React.createElement(Box, { className: clsx('twa:flex twa:flex-row', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard') },
|
|
162
|
-
React.createElement(
|
|
162
|
+
singleSelect ? (React.createElement(Box, { className: "twa:flex twa:flex-row twa:text-3 twa:font-normal" },
|
|
163
|
+
"(",
|
|
164
|
+
value.length,
|
|
165
|
+
" of ",
|
|
166
|
+
options.length,
|
|
167
|
+
" selected)")) : (React.createElement(CheckBox, { className: "twa:ml-0.5 twa:font-bold", checked: !value.length ? false : value.length === options.length ? true : null, onChange: (checked) => {
|
|
163
168
|
if (checked) {
|
|
164
169
|
props.onSelectAll();
|
|
165
170
|
}
|
|
@@ -174,7 +179,7 @@ export const renderSelectionSection = (props) => {
|
|
|
174
179
|
value.length,
|
|
175
180
|
" of ",
|
|
176
181
|
options.length,
|
|
177
|
-
" selected)"))),
|
|
182
|
+
" selected)")))),
|
|
178
183
|
React.createElement("div", { className: "twa:flex-1" }),
|
|
179
184
|
React.createElement(Box, { className: "twa:mr-2 twa:text-2 twa:font-normal" }, props.showOnlySelectedCheckbox))));
|
|
180
185
|
return React.createElement(Box, { className: clsx(`${baseClassName}__header `) }, selectionBox);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import SimpleButton from '../../components/SimpleButton';
|
|
4
|
-
import kebabCase from '
|
|
4
|
+
import kebabCase from '../../Utilities/utils/kebabCase';
|
|
5
5
|
export const CustomDashboardButton = (props) => {
|
|
6
6
|
const { button } = props;
|
|
7
7
|
const [componentRevision, setComponentRevision] = useState(1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import kebabCase from '
|
|
1
|
+
import kebabCase from '../../Utilities/utils/kebabCase';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
4
|
import { Dashboard as DashboardUI, DashboardTab as DashboardTabUI, } from '../../components/Dashboard';
|
|
@@ -16,8 +16,8 @@ declare class DataSetViewPanelComponent extends React.Component<DataSetViewPanel
|
|
|
16
16
|
onSelectedDataSetChanged(dataSetName: string): void;
|
|
17
17
|
}
|
|
18
18
|
export declare let DataSetViewPanelControl: import("react-redux").ConnectedComponent<typeof DataSetViewPanelComponent, {
|
|
19
|
-
ref?: React.Ref<DataSetViewPanelComponent>;
|
|
20
19
|
key?: React.Key | null | undefined;
|
|
20
|
+
ref?: React.Ref<DataSetViewPanelComponent>;
|
|
21
21
|
context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
|
|
22
22
|
store?: import("redux").Store;
|
|
23
23
|
}>;
|
|
@@ -35,6 +35,14 @@ export const NewReportWizard = (props) => {
|
|
|
35
35
|
props.onFinishWizard(report);
|
|
36
36
|
};
|
|
37
37
|
return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: report, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
38
|
+
{
|
|
39
|
+
title: 'Name',
|
|
40
|
+
details: 'Enter the name of the Report',
|
|
41
|
+
isValid: isValidReportName,
|
|
42
|
+
renderSummary: renderReportNameSummary,
|
|
43
|
+
render: () => (React.createElement(Box, { className: "twa:p-2" },
|
|
44
|
+
React.createElement(ReportNameWizardSection, { onChange: setReport }))),
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
title: 'Columns',
|
|
40
48
|
details: 'Choose the Columns you want to include in the Report',
|
|
@@ -48,14 +56,6 @@ export const NewReportWizard = (props) => {
|
|
|
48
56
|
renderSummary: renderReportRowsSummary,
|
|
49
57
|
render: () => React.createElement(ReportRowsWizardSection, { onChange: setReport }),
|
|
50
58
|
},
|
|
51
|
-
{
|
|
52
|
-
title: 'Name',
|
|
53
|
-
details: 'Enter the name of the Report',
|
|
54
|
-
isValid: isValidReportName,
|
|
55
|
-
renderSummary: renderReportNameSummary,
|
|
56
|
-
render: () => (React.createElement(Box, { className: "twa:p-2" },
|
|
57
|
-
React.createElement(ReportNameWizardSection, { onChange: setReport }))),
|
|
58
|
-
},
|
|
59
59
|
{
|
|
60
60
|
details: 'Select Report Tags',
|
|
61
61
|
title: 'Tags',
|
|
@@ -18,8 +18,8 @@ declare class FilterViewPanelComponent extends React.Component<FilterViewPanelCo
|
|
|
18
18
|
private onClearFilters;
|
|
19
19
|
}
|
|
20
20
|
export declare const FilterViewPanelControl: import("react-redux").ConnectedComponent<typeof FilterViewPanelComponent, {
|
|
21
|
-
ref?: React.Ref<FilterViewPanelComponent>;
|
|
22
21
|
key?: React.Key | null | undefined;
|
|
22
|
+
ref?: React.Ref<FilterViewPanelComponent>;
|
|
23
23
|
context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
|
|
24
24
|
store?: import("redux").Store;
|
|
25
25
|
}>;
|
|
@@ -80,15 +80,12 @@ export const FlashingAlertSettingsWizardSection = (props) => {
|
|
|
80
80
|
React.createElement(Tabs.Content, null,
|
|
81
81
|
React.createElement(FormLayout, null,
|
|
82
82
|
React.createElement(FormRow, { label: "Name" },
|
|
83
|
-
React.createElement(Input, { "data-name": "flashing-cell-name", className: "twa:flex-1 twa:mr-3", onChange: handleNameChange, placeholder: "Enter Name", value: flashingCell.Name ?? '' })),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
React.createElement(CheckBox, { "data-name": "flashing-target-aggFuncCell", onChange: (checked) => handleTargetChange('aggFuncCell', checked), checked: flashingCell?.FlashTarget === 'aggFuncCell' ||
|
|
90
|
-
flashingCell?.FlashTarget?.includes?.('aggFuncCell'), tabIndex: -1 }, "Aggregated Function Cell")),
|
|
91
|
-
React.createElement(FormRow, { label: "Duration" },
|
|
83
|
+
React.createElement(Input, { "data-name": "flashing-cell-name", className: "twa:flex-1 twa:mr-3", onChange: handleNameChange, placeholder: "Enter Name", value: flashingCell.Name ?? '' }))))),
|
|
84
|
+
React.createElement(Tabs, { autoFocus: false, className: "twa:p-2" },
|
|
85
|
+
React.createElement(Tabs.Tab, null, "Flash Duration"),
|
|
86
|
+
React.createElement(Tabs.Content, null,
|
|
87
|
+
React.createElement(FormLayout, null,
|
|
88
|
+
React.createElement(FormRow, { label: "" },
|
|
92
89
|
React.createElement(Flex, { alignItems: "center" },
|
|
93
90
|
React.createElement(CheckBox, { "data-name": "duration-always", checked: duration === 'always', onChange: (checked) => handleTypeChange(checked ? 'always' : 'number'), className: "twa:mr-4", tabIndex: -1 }, "Always"),
|
|
94
91
|
duration !== 'always' && (React.createElement(React.Fragment, null,
|
|
@@ -96,5 +93,17 @@ export const FlashingAlertSettingsWizardSection = (props) => {
|
|
|
96
93
|
const value = event.target.value;
|
|
97
94
|
setDuration(isNaN(Number(value)) ? 500 : Number(value));
|
|
98
95
|
} }),
|
|
99
|
-
React.createElement(Box, { className: "twa:text-2" }, "ms"))))))))
|
|
96
|
+
React.createElement(Box, { className: "twa:text-2" }, "ms")))))))),
|
|
97
|
+
' ',
|
|
98
|
+
React.createElement(Tabs, { autoFocus: false, className: "twa:p-2" },
|
|
99
|
+
React.createElement(Tabs.Tab, null, "Flash Target"),
|
|
100
|
+
React.createElement(Tabs.Content, null,
|
|
101
|
+
React.createElement(FormLayout, null,
|
|
102
|
+
React.createElement(FormRow, { label: "" },
|
|
103
|
+
React.createElement(CheckBox, { "data-name": "flashing-target", onChange: (checked) => handleTargetChange('cell', checked), className: "twa:mr-3", checked: flashingCell?.FlashTarget === 'cell' ||
|
|
104
|
+
flashingCell?.FlashTarget?.includes?.('cell'), tabIndex: -1 }, "Cell"),
|
|
105
|
+
React.createElement(CheckBox, { "data-name": "flashing-target-row", className: "twa:mr-3", onChange: (checked) => handleTargetChange('row', checked), checked: flashingCell?.FlashTarget === 'row' ||
|
|
106
|
+
flashingCell?.FlashTarget?.includes?.('row'), tabIndex: -1 }, "Row"),
|
|
107
|
+
React.createElement(CheckBox, { "data-name": "flashing-target-aggFuncCell", onChange: (checked) => handleTargetChange('aggFuncCell', checked), checked: flashingCell?.FlashTarget === 'aggFuncCell' ||
|
|
108
|
+
flashingCell?.FlashTarget?.includes?.('aggFuncCell'), tabIndex: -1 }, "Aggregated Function Cell")))))));
|
|
100
109
|
};
|
|
@@ -73,7 +73,7 @@ export const FlashingCellWizard = (props) => {
|
|
|
73
73
|
isValid: isScopeValid,
|
|
74
74
|
render: () => React.createElement(FlashingAlertScopeWizardSection, { onChange: setFlashingCell }),
|
|
75
75
|
renderSummary: renderScopeSummary,
|
|
76
|
-
title: '
|
|
76
|
+
title: 'Columns',
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
details: 'Build the Rules for when Cells should Flash',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import uniq from '
|
|
3
|
-
import clamp from '
|
|
2
|
+
import uniq from '../../../Utilities/utils/uniq';
|
|
3
|
+
import clamp from '../../../Utilities/utils/clamp';
|
|
4
4
|
import HelpBlock from '../../../components/HelpBlock';
|
|
5
5
|
import Input from '../../../components/Input';
|
|
6
6
|
import SimpleButton from '../../../components/SimpleButton';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FormatColumn } from '../../../AdaptableState/FormatColumnState';
|
|
3
|
+
type FormatColumnRowScopeWizardSectionProps = {
|
|
4
|
+
onChange: (data: FormatColumn) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const renderFormatColumnRowScopeSummary: (data: FormatColumn) => React.JSX.Element;
|
|
7
|
+
export declare const FormatColumnRowScopeWizardSection: (props: FormatColumnRowScopeWizardSectionProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
3
|
+
import { CheckBox } from '../../../components/CheckBox';
|
|
4
|
+
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
5
|
+
import { Tag } from '../../../components/Tag';
|
|
6
|
+
import { Box, Flex } from '../../../components/Flex';
|
|
7
|
+
import { Tabs } from '../../../components/Tabs';
|
|
8
|
+
export const renderFormatColumnRowScopeSummary = (data) => {
|
|
9
|
+
return (React.createElement(Box, { className: "twa:p-2" },
|
|
10
|
+
React.createElement(Box, { className: "twa:mt-3" },
|
|
11
|
+
"Data Rows ",
|
|
12
|
+
React.createElement(Tag, null, data.RowScope?.ExcludeDataRows ? 'no' : 'yes')),
|
|
13
|
+
' ',
|
|
14
|
+
React.createElement(Box, { className: "twa:mt-3" },
|
|
15
|
+
"Group Rows ",
|
|
16
|
+
React.createElement(Tag, null, data.RowScope?.ExcludeGroupRows ? 'no' : 'yes')),
|
|
17
|
+
React.createElement(Box, { className: "twa:mt-3" },
|
|
18
|
+
"Summary Rows ",
|
|
19
|
+
React.createElement(Tag, null, data.RowScope?.ExcludeSummaryRows ? 'no' : 'yes')),
|
|
20
|
+
React.createElement(Box, { className: "twa:mt-3" },
|
|
21
|
+
"Total Rows ",
|
|
22
|
+
React.createElement(Tag, null, data.RowScope?.ExcludeTotalRows ? 'no' : 'yes'))));
|
|
23
|
+
};
|
|
24
|
+
export const FormatColumnRowScopeWizardSection = (props) => {
|
|
25
|
+
const { data } = useOnePageAdaptableWizardContext();
|
|
26
|
+
const onExcludeDataRowsChanged = (includeDataRows) => {
|
|
27
|
+
props.onChange({
|
|
28
|
+
...data,
|
|
29
|
+
RowScope: {
|
|
30
|
+
...data.RowScope,
|
|
31
|
+
ExcludeDataRows: !includeDataRows,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const onExcludeGroupedRowsChanged = (includeGroupedRows) => {
|
|
36
|
+
props.onChange({
|
|
37
|
+
...data,
|
|
38
|
+
RowScope: {
|
|
39
|
+
...data.RowScope,
|
|
40
|
+
ExcludeGroupRows: !includeGroupedRows,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const onExcludeSummaryRowsChanged = (includeSummaryRows) => {
|
|
45
|
+
props.onChange({
|
|
46
|
+
...data,
|
|
47
|
+
RowScope: {
|
|
48
|
+
...data.RowScope,
|
|
49
|
+
ExcludeSummaryRows: !includeSummaryRows,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const onExcludeTotalRowsChanged = (includeTotalRows) => {
|
|
54
|
+
props.onChange({
|
|
55
|
+
...data,
|
|
56
|
+
RowScope: {
|
|
57
|
+
...data.RowScope,
|
|
58
|
+
ExcludeTotalRows: !includeTotalRows,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
return (React.createElement(Flex, { flexDirection: "column", style: { height: '100%' } },
|
|
63
|
+
React.createElement(Tabs, { className: "twa:mb-3" },
|
|
64
|
+
React.createElement(Tabs.Tab, null, "Row Types"),
|
|
65
|
+
React.createElement(Tabs.Content, null,
|
|
66
|
+
React.createElement(Flex, { flexDirection: "row" },
|
|
67
|
+
React.createElement(FormLayout, null, data.Target === 'cell' && (React.createElement(React.Fragment, null,
|
|
68
|
+
React.createElement(FormRow, { label: "Data (leaf) Rows:" },
|
|
69
|
+
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
70
|
+
React.createElement(CheckBox, { "data-name": "include-data-rows-checkbox", checked: !data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, className: "twa:mr-2" }))),
|
|
71
|
+
React.createElement(FormRow, { label: "Group Rows:" },
|
|
72
|
+
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
73
|
+
React.createElement(CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: !data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, className: "twa:mr-2" }))),
|
|
74
|
+
React.createElement(FormRow, { label: "Summary Rows:" },
|
|
75
|
+
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
76
|
+
React.createElement(CheckBox, { "data-name": "include-summary-rows-checkbox", checked: !data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, className: "twa:mr-2" }))),
|
|
77
|
+
React.createElement(FormRow, { label: "Total Rows:" },
|
|
78
|
+
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
79
|
+
React.createElement(CheckBox, { "data-name": "include-total-rows-checkbox", checked: !data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, className: "twa:mr-2" })))))))))));
|
|
80
|
+
};
|
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
3
|
-
import { CheckBox } from '../../../components/CheckBox';
|
|
4
3
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
5
4
|
import { Tag } from '../../../components/Tag';
|
|
6
5
|
import Radio, { RadioGroup } from '../../../components/Radio';
|
|
7
6
|
import { Box, Flex } from '../../../components/Flex';
|
|
8
7
|
import { Tabs } from '../../../components/Tabs';
|
|
9
8
|
import Input from '../../../components/Input';
|
|
9
|
+
import { TypeRadio } from '../../Wizard/TypeRadio';
|
|
10
10
|
export const renderFormatColumnSettingsSummary = (data) => {
|
|
11
11
|
return (React.createElement(Box, { className: "twa:p-2" },
|
|
12
12
|
React.createElement(Box, { className: "twa:mt-3" },
|
|
13
13
|
"Name ",
|
|
14
14
|
React.createElement(Tag, null, data.Name)),
|
|
15
15
|
React.createElement(Box, { className: "twa:mt-3" },
|
|
16
|
-
"
|
|
17
|
-
|
|
16
|
+
"Target",
|
|
17
|
+
' ',
|
|
18
|
+
React.createElement(Tag, null, !data.Target || data.Target === 'cell' ? 'Column Cells' : 'Column Header')),
|
|
18
19
|
' ',
|
|
19
|
-
React.createElement(Box, { className: "twa:mt-3" },
|
|
20
|
-
"Group Rows ",
|
|
21
|
-
React.createElement(Tag, null, data.RowScope?.ExcludeGroupRows ? 'no' : 'yes')),
|
|
22
|
-
React.createElement(Box, { className: "twa:mt-3" },
|
|
23
|
-
"Summary Rows ",
|
|
24
|
-
React.createElement(Tag, null, data.RowScope?.ExcludeSummaryRows ? 'no' : 'yes')),
|
|
25
|
-
React.createElement(Box, { className: "twa:mt-3" },
|
|
26
|
-
"Total Rows ",
|
|
27
|
-
React.createElement(Tag, null, data.RowScope?.ExcludeTotalRows ? 'no' : 'yes')),
|
|
28
20
|
React.createElement(Box, { className: "twa:mt-3" },
|
|
29
21
|
"Apply on Column Groups:",
|
|
30
22
|
' ',
|
|
@@ -33,49 +25,22 @@ export const renderFormatColumnSettingsSummary = (data) => {
|
|
|
33
25
|
: data.ColumnGroupScope))));
|
|
34
26
|
};
|
|
35
27
|
export const FormatColumnSettingsWizardSection = (props) => {
|
|
36
|
-
const { data } = useOnePageAdaptableWizardContext();
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Name: event.target.value,
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
const onExcludeDataRowsChanged = (ExcludeDataRows) => {
|
|
44
|
-
props.onChange({
|
|
45
|
-
...data,
|
|
46
|
-
RowScope: {
|
|
47
|
-
...data.RowScope,
|
|
48
|
-
ExcludeDataRows,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
|
|
28
|
+
const { data, api } = useOnePageAdaptableWizardContext();
|
|
29
|
+
const currentTarget = data.Target ? data.Target : 'cell';
|
|
30
|
+
const handleTargetChange = (target) => {
|
|
31
|
+
// Update the formatColumn object
|
|
53
32
|
props.onChange({
|
|
54
33
|
...data,
|
|
55
|
-
|
|
56
|
-
...data.RowScope,
|
|
57
|
-
ExcludeGroupRows: ExcludeGroupedRows,
|
|
58
|
-
},
|
|
34
|
+
Target: target,
|
|
59
35
|
});
|
|
60
36
|
};
|
|
61
|
-
const
|
|
62
|
-
props.onChange({
|
|
63
|
-
...data,
|
|
64
|
-
RowScope: {
|
|
65
|
-
...data.RowScope,
|
|
66
|
-
ExcludeSummaryRows,
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
const onExcludeTotalRowsChanged = (ExcludeTotalRows) => {
|
|
37
|
+
const onNameChange = (event) => {
|
|
71
38
|
props.onChange({
|
|
72
39
|
...data,
|
|
73
|
-
|
|
74
|
-
...data.RowScope,
|
|
75
|
-
ExcludeTotalRows,
|
|
76
|
-
},
|
|
40
|
+
Name: event.target.value,
|
|
77
41
|
});
|
|
78
42
|
};
|
|
43
|
+
const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
|
|
79
44
|
return (React.createElement(Flex, { flexDirection: "column", style: { height: '100%' } },
|
|
80
45
|
React.createElement(Tabs, { className: "twa:mb-3" },
|
|
81
46
|
React.createElement(Tabs.Tab, null, "Settings"),
|
|
@@ -84,24 +49,20 @@ export const FormatColumnSettingsWizardSection = (props) => {
|
|
|
84
49
|
React.createElement(FormLayout, { className: "twa:max-w-[300px] twa:w-full" },
|
|
85
50
|
React.createElement(FormRow, { label: "Name" },
|
|
86
51
|
React.createElement(Input, { className: "twa:w-full", "data-name": "format-column-name", onChange: onNameChange, value: data?.Name ?? '' })))))),
|
|
52
|
+
React.createElement(Tabs, { className: "twa:mb-3" },
|
|
53
|
+
React.createElement(Tabs.Tab, null, "Target"),
|
|
54
|
+
React.createElement(Tabs.Content, null,
|
|
55
|
+
React.createElement(Flex, { flexDirection: "column" },
|
|
56
|
+
React.createElement(TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
|
|
57
|
+
React.createElement(TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "The Column Header is styled (Note: Conditions are not available for Column Headers)", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') })))),
|
|
87
58
|
React.createElement(Tabs, null,
|
|
88
|
-
React.createElement(Tabs.Tab, null,
|
|
59
|
+
React.createElement(Tabs.Tab, null,
|
|
60
|
+
"Column Group ",
|
|
61
|
+
behaviourSpellingVariant,
|
|
62
|
+
" "),
|
|
89
63
|
React.createElement(Tabs.Content, null,
|
|
90
64
|
React.createElement(Flex, { flexDirection: "row" },
|
|
91
65
|
React.createElement(FormLayout, null,
|
|
92
|
-
data.Target === 'cell' && (React.createElement(React.Fragment, null,
|
|
93
|
-
React.createElement(FormRow, { label: "Exclude Data Rows:" },
|
|
94
|
-
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
95
|
-
React.createElement(CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, className: "twa:mr-2" }))),
|
|
96
|
-
React.createElement(FormRow, { label: "Exclude Group Rows:" },
|
|
97
|
-
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
98
|
-
React.createElement(CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, className: "twa:mr-2" }))),
|
|
99
|
-
React.createElement(FormRow, { label: "Exclude Row Summaries:" },
|
|
100
|
-
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
101
|
-
React.createElement(CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, className: "twa:mr-2" }))),
|
|
102
|
-
React.createElement(FormRow, { label: "Exclude Total Rows:" },
|
|
103
|
-
React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
|
|
104
|
-
React.createElement(CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, className: "twa:mr-2" }))))),
|
|
105
66
|
React.createElement(FormRow, { label: "Apply on Column Group:" },
|
|
106
67
|
React.createElement(RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
|
|
107
68
|
props.onChange({
|
|
@@ -2,7 +2,10 @@ import * as React from 'react';
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { OnePageAdaptableWizard, OnePageWizardSummary } from '../../Wizard/OnePageAdaptableWizard';
|
|
4
4
|
import { cloneObject } from '../../../Utilities/Helpers/Helper';
|
|
5
|
-
import { FormatColumnScopeWizardSection, renderFormatColumnScopeSummary, } from './
|
|
5
|
+
import { FormatColumnScopeWizardSection, renderFormatColumnScopeSummary, } from './FormatColumnColumnScopeWizardSection';
|
|
6
|
+
import { FormatColumnRowScopeWizardSection, renderFormatColumnRowScopeSummary,
|
|
7
|
+
// renderFormatColumnRowScopeSummary,
|
|
8
|
+
} from './FormatColumnRowScopeWizardSection';
|
|
6
9
|
import { FormatColumnStyleWizardSection, isFormatColumnStyleValid, renderFormatColumnStyleWizardSummary, } from './FormatColumnStyleWizardSection';
|
|
7
10
|
import { FormatColumnFormatWizardSection, getFormatDisplayTypeForScope, renderFormatColumnFormatSummary, } from './FormatColumnFormatWizardSection';
|
|
8
11
|
import { useAdaptable } from '../../AdaptableContext';
|
|
@@ -17,11 +20,22 @@ import { isAdaptableRuleValid } from '../../Components/EntityRulesEditor/Utiliti
|
|
|
17
20
|
import { FormatColumnRuleWizardSection } from './FormatColumnRuleWizardSection';
|
|
18
21
|
import { DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN } from './constants';
|
|
19
22
|
import { isObjectEmpty } from '../../../Utilities/Extensions/ObjectExtensions';
|
|
20
|
-
import { FormatColumnTargetWizardSection, renderFormatColumnTargetSummary, } from './FormatColumnTargetWizardSection';
|
|
21
23
|
import { Box, Flex } from '../../../components/Flex';
|
|
22
24
|
const adjustDisplayFormat = (fc, api) => {
|
|
23
25
|
const formatColumn = { ...fc };
|
|
24
26
|
let formatDataType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
|
|
27
|
+
// Add RowScope and Target defaults for Format Columns that have been created in Initial State
|
|
28
|
+
if (!formatColumn.RowScope) {
|
|
29
|
+
formatColumn.RowScope = {
|
|
30
|
+
ExcludeDataRows: false,
|
|
31
|
+
ExcludeGroupRows: false,
|
|
32
|
+
ExcludeSummaryRows: false,
|
|
33
|
+
ExcludeTotalRows: false,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (!formatColumn.Target) {
|
|
37
|
+
formatColumn.Target = 'cell';
|
|
38
|
+
}
|
|
25
39
|
if (formatColumn.Target === 'columnHeader') {
|
|
26
40
|
// Column Headers are always text
|
|
27
41
|
formatDataType = 'text';
|
|
@@ -96,7 +110,7 @@ export function FormatColumnWizard(props) {
|
|
|
96
110
|
return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, modal: props.modal, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
97
111
|
{
|
|
98
112
|
title: 'Settings',
|
|
99
|
-
details: 'Enter Name and
|
|
113
|
+
details: 'Enter Name and other Properties',
|
|
100
114
|
isValid: (formatColumnData) => {
|
|
101
115
|
if (!formatColumnData.Name) {
|
|
102
116
|
return 'Format Column Name cannot be blank';
|
|
@@ -113,7 +127,7 @@ export function FormatColumnWizard(props) {
|
|
|
113
127
|
},
|
|
114
128
|
},
|
|
115
129
|
{
|
|
116
|
-
title: '
|
|
130
|
+
title: 'Columns',
|
|
117
131
|
details: 'Select which Columns will be formatted',
|
|
118
132
|
isValid: isScopeValid,
|
|
119
133
|
renderSummary: renderFormatColumnScopeSummary,
|
|
@@ -123,12 +137,12 @@ export function FormatColumnWizard(props) {
|
|
|
123
137
|
},
|
|
124
138
|
},
|
|
125
139
|
{
|
|
126
|
-
title: '
|
|
127
|
-
details: 'Select which
|
|
128
|
-
renderSummary:
|
|
140
|
+
title: 'Rows',
|
|
141
|
+
details: 'Select which Rows will be formatted',
|
|
142
|
+
renderSummary: renderFormatColumnRowScopeSummary,
|
|
129
143
|
render: () => {
|
|
130
144
|
return (React.createElement(Flex, { flexDirection: "column", className: "twa:p-2 twa:h-full" },
|
|
131
|
-
React.createElement(
|
|
145
|
+
React.createElement(FormatColumnRowScopeWizardSection, { onChange: setFormatColumn })));
|
|
132
146
|
},
|
|
133
147
|
},
|
|
134
148
|
{
|
|
@@ -21,14 +21,14 @@ const QueryViewPanelComponent = (props) => {
|
|
|
21
21
|
const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
|
|
22
22
|
const buttonExpand = (React.createElement(ButtonExpand, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }));
|
|
23
23
|
const renderExpressionLabel = () => {
|
|
24
|
-
const baseClasses = 'twa:font-mono twa:text-
|
|
24
|
+
const baseClasses = 'twa:font-mono twa:text-s twa:py-2 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-defaultbackground twa:text-text-on-defaultbackground twa:rounded twa:cursor-pointer twa:leading-4 twa:flex twa:items-center';
|
|
25
25
|
const placeholderClasses = 'twa:text-gray-400 twa:italic';
|
|
26
26
|
const labelClassName = clsx(baseClasses, {
|
|
27
27
|
[placeholderClasses]: !expression,
|
|
28
28
|
});
|
|
29
29
|
const expressionLabel = (React.createElement(Tooltip, { label: expression || 'Click to edit Grid Filter' },
|
|
30
|
-
React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter')));
|
|
31
|
-
return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:overflow-visible" },
|
|
30
|
+
React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter...')));
|
|
31
|
+
return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:min-h-input twa:overflow-visible" },
|
|
32
32
|
buttonExpand,
|
|
33
33
|
expressionLabel,
|
|
34
34
|
gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as PopupRedux from '../../Redux/ActionsReducers/PopupRedux';
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
|
-
import isEqual from '
|
|
4
|
+
import isEqual from '../../Utilities/utils/isEqual';
|
|
5
5
|
import { Select } from '../../components/Select';
|
|
6
6
|
import join from '../../components/utils/join';
|
|
7
7
|
import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
|
|
@@ -365,7 +365,7 @@ export const ColumnsSection = (props) => {
|
|
|
365
365
|
const visibleIds = layout.TableColumns.filter((colId) => {
|
|
366
366
|
return (layout.ColumnVisibility?.[colId] !== false &&
|
|
367
367
|
adaptable.api.columnApi.isSelectionColumn(colId) === false &&
|
|
368
|
-
!adaptable.api.columnApi.internalApi.
|
|
368
|
+
!adaptable.api.columnApi.internalApi.isColumnUIHidden(colId));
|
|
369
369
|
});
|
|
370
370
|
const currentlyDisplayedColumnIds = searchInputValue
|
|
371
371
|
? currentOrder
|