@adaptabletools/adaptable-cjs 22.0.7 → 22.0.9

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.
Files changed (64) hide show
  1. package/index.css +19 -1
  2. package/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/AdaptableOptions/FilterOptions.d.ts +23 -5
  5. package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +4 -0
  6. package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
  7. package/src/AdaptableState/Common/ColumnScope.js +17 -0
  8. package/src/Api/Implementation/StateApiImpl.d.ts +1 -1
  9. package/src/Api/Implementation/StateApiImpl.js +12 -15
  10. package/src/Api/StateApi.d.ts +1 -1
  11. package/src/Redux/Store/AdaptableReduxMerger.js +4 -1
  12. package/src/Redux/Store/AdaptableStore.d.ts +2 -1
  13. package/src/Redux/Store/AdaptableStore.js +14 -9
  14. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +1 -1
  15. package/src/Strategy/CalculatedColumnModule.js +1 -1
  16. package/src/Strategy/ColumnFilterModule.js +4 -2
  17. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  18. package/src/Strategy/FlashingCellModule.js +1 -1
  19. package/src/Strategy/FreeTextColumnModule.js +1 -1
  20. package/src/Utilities/Services/DataService.js +6 -0
  21. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +10 -3
  22. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +8 -8
  23. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +1 -1
  24. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +4 -2
  25. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -0
  26. package/src/View/Components/ColumnGroupTag/index.d.ts +5 -0
  27. package/src/View/Components/ColumnGroupTag/index.js +14 -0
  28. package/src/View/Components/ColumnSelector/index.js +4 -1
  29. package/src/View/Components/FilterForm/ListBoxFilterForm.js +8 -1
  30. package/src/View/Components/NewScopeComponent.js +19 -37
  31. package/src/View/Components/ReorderDraggable/index.d.ts +1 -0
  32. package/src/View/Components/ReorderDraggable/index.js +2 -1
  33. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +7 -1
  34. package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
  35. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +10 -3
  36. package/src/View/FormatColumn/Wizard/FormatColumnColumnScopeWizardSection.js +14 -7
  37. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -3
  38. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  39. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -7
  40. package/src/View/Layout/Wizard/LayoutWizard.js +2 -2
  41. package/src/View/Layout/Wizard/sections/AggregationsSection.js +2 -0
  42. package/src/View/Layout/Wizard/sections/ColumnsSection.js +149 -140
  43. package/src/View/Layout/Wizard/sections/FilterSection.js +8 -1
  44. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +2 -0
  45. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -1
  46. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +4 -1
  47. package/src/View/Layout/Wizard/sections/RowSummarySection.js +8 -3
  48. package/src/View/Layout/Wizard/sections/SortSection.js +3 -1
  49. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +7 -1
  50. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +0 -1
  51. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
  52. package/src/View/Wizard/OnePageWizards.d.ts +1 -0
  53. package/src/View/Wizard/OnePageWizards.js +11 -4
  54. package/src/agGrid/AdaptableAgGrid.js +18 -30
  55. package/src/agGrid/AgGridAdapter.d.ts +1 -0
  56. package/src/agGrid/AgGridAdapter.js +4 -0
  57. package/src/agGrid/AgGridColumnAdapter.js +3 -3
  58. package/src/agGrid/AgGridExportAdapter.js +1 -3
  59. package/src/components/Tree/TreeDropdown/index.d.ts +9 -0
  60. package/src/components/Tree/TreeDropdown/index.js +21 -1
  61. package/src/components/Tree/TreeList/index.d.ts +1 -1
  62. package/src/env.js +2 -2
  63. package/src/metamodel/adaptable.metamodel.js +1 -1
  64. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -45,15 +45,15 @@ exports.renderFreeTextColumnSummary = renderFreeTextColumnSummary;
45
45
  const isValidFreeTextColumn = (data, api) => {
46
46
  const columns = api.columnApi.getUIAvailableColumns();
47
47
  if (!data.ColumnId) {
48
- return 'A Column ID is required.';
48
+ return 'A Column Name is required';
49
49
  }
50
50
  const columnsWithSameIdCount = columns.filter((c) => c.columnId === data.ColumnId).length;
51
51
  const hasAlreadyExistingId = data.Uuid ? columnsWithSameIdCount > 1 : columnsWithSameIdCount > 0;
52
52
  if (hasAlreadyExistingId) {
53
- return 'A column with this ID already exists.';
53
+ return 'A column with this Name already exists';
54
54
  }
55
55
  if (!data.FreeTextColumnSettings.DataType) {
56
- return 'A data type is required for the column.';
56
+ return 'A data type is required for the column';
57
57
  }
58
58
  return true;
59
59
  };
@@ -129,14 +129,14 @@ const FreeTextColumnSettingsWizardSection = (props) => {
129
129
  };
130
130
  return (React.createElement(React.Fragment, null,
131
131
  React.createElement(FormLayout_1.default, null,
132
- React.createElement(FormLayout_1.FormRow, { label: "Column Id" },
133
- React.createElement(Input_1.default, { "data-name": "column-id", autoFocus: !inEdit, value: data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, disabled: inEdit, type: "text", placeholder: "Enter an id", onChange: (e) => handleColumnIdChange(e) })),
134
132
  React.createElement(FormLayout_1.FormRow, { label: "Column Name" },
133
+ React.createElement(Input_1.default, { "data-name": "column-id", autoFocus: !inEdit, value: data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, disabled: inEdit, type: "text", placeholder: "Enter a Column Name", onChange: (e) => handleColumnIdChange(e) })),
134
+ React.createElement(FormLayout_1.FormRow, { label: "Column Header" },
135
135
  React.createElement(Input_1.default, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => {
136
136
  setColumnNameFocused(true);
137
137
  }, onBlur: () => {
138
138
  setColumnNameFocused(false);
139
- }, value: ColumnNameFocused ? data.FriendlyName || '' : data.FriendlyName || data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, type: "text", placeholder: "Enter a name", onChange: (e) => handleColumnNameChange(e) })),
139
+ }, value: ColumnNameFocused ? data.FriendlyName || '' : data.FriendlyName || data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, type: "text", placeholder: "Enter a Column Header (optional)", onChange: (e) => handleColumnNameChange(e) })),
140
140
  React.createElement(FormLayout_1.FormRow, { label: "Data Type" },
141
141
  React.createElement(Flex_1.Box, { className: "twa:max-w-[500px]" },
142
142
  React.createElement(Select_1.Select, { "data-name": "column-type-dropdown", options: options, placeholder: "Select Data Type", value: data.FreeTextColumnSettings.DataType, onChange: (value) => handleDataTypeChange(value) }))),
@@ -151,7 +151,7 @@ const FreeTextColumnSettingsWizardSection = (props) => {
151
151
  ? 'number'
152
152
  : data.FreeTextColumnSettings.DataType === 'date'
153
153
  ? 'date'
154
- : 'text', placeholder: "Default Column Value (optional)", onChange: (e) => handleDefaultValueChange(e) }))),
154
+ : 'text', placeholder: "Enter a default value (optional)", onChange: (e) => handleDefaultValueChange(e) }))),
155
155
  React.createElement(FormLayout_1.FormRow, { label: "Header Tooltip" },
156
156
  React.createElement(Input_1.default, { "data-name": "header-tooltip", type: "text", style: { width: '100%', maxWidth: 500 }, value: data.FreeTextColumnSettings?.HeaderToolTip || '', onChange: (e) => handleSpecialColumnSettingsChange({
157
157
  HeaderToolTip: e.target.value,
@@ -75,7 +75,7 @@ const LayoutWizard = (props) => {
75
75
  props.onFinishWizard(layout);
76
76
  };
77
77
  const layoutSupportedFeatures = adaptable.api.layoutApi.internalApi.getLayoutSupportedFeatures();
78
- return (0, isPivotLayout_1.isPivotLayout)(layout) ? (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { titleContainerStyle: { width: 180 }, defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
78
+ return (0, isPivotLayout_1.isPivotLayout)(layout) ? (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
79
79
  {
80
80
  title: 'Settings',
81
81
  details: 'Configure Pivot Layout',
@@ -155,7 +155,7 @@ const LayoutWizard = (props) => {
155
155
  React.createElement(OnePageAdaptableWizard_1.OnePageWizardSummary, null))),
156
156
  title: 'Summary',
157
157
  },
158
- ] })) : (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { titleContainerStyle: { width: 180 }, defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
158
+ ] })) : (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
159
159
  {
160
160
  title: 'Settings',
161
161
  details: 'Configure Table Layout',
@@ -12,6 +12,7 @@ const AdaptableContext_1 = require("../../../AdaptableContext");
12
12
  const ValueSelector_1 = require("../../../Components/ValueSelector");
13
13
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
14
14
  const Utilities_1 = require("./Utilities");
15
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
15
16
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
16
17
  const Select_1 = require("../../../../components/Select");
17
18
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/StringExtensions"));
@@ -134,6 +135,7 @@ const ColumnRow = (props) => {
134
135
  }
135
136
  return (React.createElement(Flex_1.Flex, { alignItems: "center" },
136
137
  props.column.friendlyName,
138
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }),
137
139
  aggValue && (React.createElement(DropdownButton_1.default, { columns: ['label'], items: aggOptions, className: "twa:ml-2" }, currentAggFnName)),
138
140
  currentAggFnName === WEIGHTED_AVERAGE_AGG_FN_NAME && (React.createElement(Flex_1.Flex, { className: "twa:bg-primary twa:ml-3", alignItems: "center" },
139
141
  React.createElement(Flex_1.Box, null, "Weight"),
@@ -160,7 +160,7 @@ const ColumnRow = (props) => {
160
160
  event.stopPropagation();
161
161
  }, checked: visible }),
162
162
  React.createElement(Flex_1.Flex, { className: "twa:mx-2", alignItems: "center", "data-name": "column-label" }, initialHeader),
163
- props.column.columnGroup && props.column.columnGroup.groupCount > 1 ? (React.createElement(Flex_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Title twa:mx-2 twa:p-1" },
163
+ props.column.columnGroup && props.column.columnGroup.groupCount > 1 ? (React.createElement(Flex_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Title twa:mx-2 twa:p-1 twa:flex twa:items-center" },
164
164
  "Column Group: ",
165
165
  props.column.columnGroup.friendlyName)) : null)));
166
166
  };
@@ -378,83 +378,90 @@ const ColumnsSection = (props) => {
378
378
  .map((col) => col.columnId)
379
379
  : currentOrder.map((col) => col.columnId);
380
380
  const visibleIdsCurrentlyDisplayed = visibleIds.filter((colId) => currentlyDisplayedColumnIds.includes(colId));
381
- return (React.createElement(Tabs_1.Tabs, null,
381
+ return (React.createElement(Tabs_1.Tabs, { className: "twa:h-full" },
382
382
  React.createElement(Tabs_1.Tabs.Tab, null, "Columns"),
383
- React.createElement(Tabs_1.Tabs.Content, { className: "twa:overflow-hidden" },
384
- React.createElement(Flex_1.Box, { className: "twa:grid twa:grid-cols-2 twa:gap-2 twa:focus:outline-none", "data-name": "columns-container", tabIndex: -1, onKeyDown: (event) => {
385
- if (event.key === 'ArrowDown') {
386
- event.preventDefault();
387
- event.stopPropagation();
388
- const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
389
- if (index === -1) {
390
- return;
391
- }
392
- const nextColumnId = currentlyDisplayedColumnIds[index + 1];
393
- const nextColumn = colIdToCol[nextColumnId];
394
- if (nextColumn) {
395
- setSelectedColumnId(nextColumn.columnId);
396
- }
397
- }
398
- if (event.key === 'ArrowUp') {
399
- event.preventDefault();
400
- event.stopPropagation();
401
- const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
402
- if (index === -1) {
403
- return;
404
- }
405
- const previousColumnId = currentlyDisplayedColumnIds[index - 1];
406
- const previousColumn = colIdToCol[previousColumnId];
407
- if (previousColumn) {
408
- setSelectedColumnId(previousColumn.columnId);
409
- }
410
- }
411
- if (event.key === ' ') {
412
- event.preventDefault();
413
- event.stopPropagation();
414
- const selectedColumn = colIdToCol[selectedColumnId];
415
- if (!selectedColumn) {
416
- return;
383
+ React.createElement(Tabs_1.Tabs.Content, null,
384
+ React.createElement(Flex_1.Box, { className: "twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2 twa:h-full" },
385
+ React.createElement(Flex_1.Box, { className: "twa:gap-2 twa:focus:outline-none twa:flex-1 twa:max-h-full twa:overflow-hidden", "data-name": "columns-container", tabIndex: -1, onKeyDown: (event) => {
386
+ const scrollIntoView = (columnId) => {
387
+ const el = event.currentTarget.querySelector(`[data-id="${columnId}"]`);
388
+ el?.scrollIntoView({ block: 'nearest' });
389
+ };
390
+ if (event.key === 'ArrowDown') {
391
+ event.preventDefault();
392
+ event.stopPropagation();
393
+ const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
394
+ if (index === -1) {
395
+ return;
396
+ }
397
+ const nextColumnId = currentlyDisplayedColumnIds[index + 1];
398
+ const nextColumn = colIdToCol[nextColumnId];
399
+ if (nextColumn) {
400
+ setSelectedColumnId(nextColumn.columnId);
401
+ scrollIntoView(nextColumn.columnId);
402
+ }
417
403
  }
418
- const visible = isColumnVisible({ columnId: selectedColumnId, layout });
419
- handleColumnVisibilityChange(selectedColumnId, !visible);
420
- }
421
- } },
422
- React.createElement(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-2" },
423
- React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Search Columns...", className: "twa:w-full twa:border-none twa:p-1" }),
424
- React.createElement(Flex_1.Box, { className: (0, clsx_1.default)('twa:font-bold', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard') },
425
- React.createElement(CheckBox_1.CheckBox, { checked: currentlyDisplayedColumnIds.length
426
- ? currentlyDisplayedColumnIds.length === visibleIdsCurrentlyDisplayed.length
427
- ? true
428
- : visibleIdsCurrentlyDisplayed.length
429
- ? null
430
- : false
431
- : false, onChange: (checked) => {
432
- handleColumnVisibilityChange(currentlyDisplayedColumnIds, checked);
433
- } }, "Select All")),
434
- React.createElement(ReorderDraggable_1.ReorderDraggable, { toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
435
- return option.moveable;
436
- }, optionClassName: (option) => {
437
- const baseCls = 'ab-Layout-Wizard__ColumnRow twa:cursor-pointer twa:rounded-standard';
438
- if (selectedColumnId !== option.columnId) {
439
- return baseCls;
404
+ if (event.key === 'ArrowUp') {
405
+ event.preventDefault();
406
+ event.stopPropagation();
407
+ const index = currentlyDisplayedColumnIds.indexOf(selectedColumnId);
408
+ if (index === -1) {
409
+ return;
440
410
  }
441
- return (0, clsx_1.default)(baseCls, 'twa:after:border-accent twa:relative twa:after:border-2 twa:after:rounded-standard twa:after:pointer-events-none twa:after:inset-0 twa:after:absolute twa:after:bg-accent/15');
442
- }, order: currentOrder, onOptionClick: (option, event) => {
443
- if (event.ctrlKey || option.columnId === selectedColumnId) {
444
- setSelectedColumnId(null);
411
+ const previousColumnId = currentlyDisplayedColumnIds[index - 1];
412
+ const previousColumn = colIdToCol[previousColumnId];
413
+ if (previousColumn) {
414
+ setSelectedColumnId(previousColumn.columnId);
415
+ scrollIntoView(previousColumn.columnId);
445
416
  }
446
- else {
447
- setSelectedColumnId(option.columnId);
417
+ }
418
+ if (event.key === ' ') {
419
+ event.preventDefault();
420
+ event.stopPropagation();
421
+ const selectedColumn = colIdToCol[selectedColumnId];
422
+ if (!selectedColumn) {
423
+ return;
448
424
  }
449
- }, renderOption: (option) => {
450
- return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
451
- }, onChange: handleColumnsChange })),
425
+ const visible = isColumnVisible({ columnId: selectedColumnId, layout });
426
+ handleColumnVisibilityChange(selectedColumnId, !visible);
427
+ }
428
+ } },
429
+ React.createElement(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:h-full twa:overflow-hidden" },
430
+ React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Search Columns...", className: "twa:w-full twa:border-none twa:p-1" }),
431
+ React.createElement(Flex_1.Box, { className: (0, clsx_1.default)('twa:font-bold', 'twa:border-b twa:border-primarydark/30 twa:rounded-standard') },
432
+ React.createElement(CheckBox_1.CheckBox, { checked: currentlyDisplayedColumnIds.length
433
+ ? currentlyDisplayedColumnIds.length === visibleIdsCurrentlyDisplayed.length
434
+ ? true
435
+ : visibleIdsCurrentlyDisplayed.length
436
+ ? null
437
+ : false
438
+ : false, onChange: (checked) => {
439
+ handleColumnVisibilityChange(currentlyDisplayedColumnIds, checked);
440
+ } }, "Select All")),
441
+ React.createElement(ReorderDraggable_1.ReorderDraggable, { className: "twa:overflow-y-auto", toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
442
+ return option.moveable;
443
+ }, optionClassName: (option) => {
444
+ const baseCls = 'ab-Layout-Wizard__ColumnRow twa:cursor-pointer twa:rounded-standard';
445
+ if (selectedColumnId !== option.columnId) {
446
+ return baseCls;
447
+ }
448
+ return (0, clsx_1.default)(baseCls, 'twa:after:border-accent twa:relative twa:after:border-2 twa:after:rounded-standard twa:after:pointer-events-none twa:after:inset-0 twa:after:absolute twa:after:bg-accent/15');
449
+ }, order: currentOrder, onOptionClick: (option, event) => {
450
+ if (event.ctrlKey || option.columnId === selectedColumnId) {
451
+ setSelectedColumnId(null);
452
+ }
453
+ else {
454
+ setSelectedColumnId(option.columnId);
455
+ }
456
+ }, renderOption: (option) => {
457
+ return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
458
+ }, onChange: handleColumnsChange }))),
452
459
  currentOrderIds.length ? (React.createElement(ColumnPropertiesEditor, { column: selectedColumnId && currentOrderIds.includes(selectedColumnId)
453
- ? colIdToCol[selectedColumnId] ?? null
460
+ ? (colIdToCol[selectedColumnId] ?? null)
454
461
  : null, layout: layout, onPinChange: handlePinChange, onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange })) : null))));
455
462
  };
456
463
  exports.ColumnsSection = ColumnsSection;
457
- const hr = React.createElement("hr", { className: "twa:my-2 twa:h-[0.5px] twa:bg-inputborder/50 twa:border-none" });
464
+ const hr = (React.createElement("hr", { className: "twa:my-3 twa:mb-0 twa:w-full twa:h-[0.5px] twa:bg-inputborder/50 twa:border-none" }));
458
465
  const ColumnPropertiesEditor = (props) => {
459
466
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
460
467
  const baseCls = 'ab-Layout-Wizard__ColumnPropertiesEditor twa:border twa:rounded-standard';
@@ -476,76 +483,78 @@ const ColumnPropertiesEditor = (props) => {
476
483
  const columnPinning = props.layout.ColumnPinning?.[props.column.columnId] || 'None';
477
484
  const initialHeader = adaptable.api.columnApi.getFriendlyNameForColumnId(props.column.columnId, props.layout);
478
485
  const customHeader = props.layout.ColumnHeaders?.[props.column.columnId] ?? initialHeader;
479
- return (React.createElement(Flex_1.Box, { className: (0, clsx_1.default)(baseCls, 'ab-Layout-Wizard__ColumnPropertiesEditor__Container twa:border-none twa:bg-defaultbackground twa:shadow-md twa:p-4') },
480
- React.createElement(Flex_1.Box, { className: "twa:text-5 twa:font-bold twa:leading-relaxed ab-Layout-Wizard__ColumnPropertiesEditor__Title" },
481
- "Column Settings: ",
482
- column.friendlyName),
483
- React.createElement(Flex_1.Box, { className: "twa:text-3 twa:opacity-80 twa:flex twa:flex-row twa:gap-1 twa:items-center" },
484
- "Column ID:",
485
- ' ',
486
- React.createElement(Flex_1.Box, { className: "twa:bg-primarydark/20 twa:text-text-on-primarydark twa:px-1 twa:py-0.5 twa:rounded-standard" }, column.columnId)),
487
- props.column.columnGroup && props.column.columnGroup.groupCount > 1 ? (React.createElement(Flex_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Title twa:mx-2 twa:p-1" },
488
- "Column Group: ",
489
- props.column.columnGroup.friendlyName)) : null,
490
- hr,
491
- React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3" },
492
- React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-1" },
493
- "Header",
494
- React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input twa:w-full", placeholder: "Custom name (optional)", onChange: () => {
495
- props.onColumnNameChange(props.column.columnId, event.target.value);
496
- }, value: customHeader })),
497
- React.createElement(Flex_1.Box, { className: "twa:grid twa:grid-cols-[1fr_1fr] twa:gap-2" },
498
- React.createElement(Flex_1.Box, null, "Width:"),
499
- " ",
500
- React.createElement(Flex_1.Box, null, "Flex:"),
501
- React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column width", disabled: resizable === false, onChange: (event) => {
502
- let value = parseFloat(event.target.value);
503
- value = typeof value === 'number' && !isNaN(value) ? value : void 0;
504
- props.onColumnWidthChange(props.column.columnId, value);
505
- }, value: columnWidth ?? '' }),
506
- React.createElement(Input_1.default, { "data-name": "column-flex", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column flex", disabled: resizable === false, onChange: (event) => {
507
- let value = parseFloat(event.target.value);
508
- value = typeof value === 'number' && !isNaN(value) ? value : void 0;
509
- props.onColumnFlexChange(props.column.columnId, value);
510
- }, value: columnFlex ?? '' }),
511
- React.createElement(Flex_1.Box, null, "Min Width:"),
512
- React.createElement(Flex_1.Box, null, "Max Width:"),
513
- React.createElement(Input_1.default, { "data-name": "column-min-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column min width", disabled: resizable === false, onChange: (event) => {
514
- let value = parseFloat(event.target.value);
515
- value = typeof value === 'number' && !isNaN(value) ? value : void 0;
516
- props.onColumnMinWidthChange(props.column.columnId, value);
517
- }, value: minWidth ?? '' }),
518
- React.createElement(Input_1.default, { "data-name": "column-max-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column max width", disabled: resizable === false, onChange: (event) => {
519
- let value = parseFloat(event.target.value);
520
- value = typeof value === 'number' && !isNaN(value) ? value : void 0;
521
- props.onColumnMaxWidthChange(props.column.columnId, value);
522
- }, value: maxWidth ?? '' })),
523
- "Pinning:",
524
- React.createElement(Radio_1.RadioGroup, { value: columnPinning || 'None', name: "columnPinning", orientation: "horizontal", variant: "text-only", className: Radio_1.radioGroupStyling.horizontalTextOnly, onRadioChange: (columnPinning) => {
525
- props.onPinChange(column.columnId, columnPinning === 'None' ? null : columnPinning);
526
- } },
527
- React.createElement(Radio_1.default, { value: "left" }, "Left"),
528
- React.createElement(Radio_1.default, { value: "None" }, "None"),
529
- React.createElement(Radio_1.default, { value: "right" }, "Right"))),
530
- React.createElement(Flex_1.Box, { className: "twa:mt-5" }),
486
+ return (React.createElement(Flex_1.Box, { className: (0, clsx_1.default)(baseCls, 'ab-Layout-Wizard__ColumnPropertiesEditor__Container twa:border-none twa:bg-defaultbackground twa:shadow-md', 'twa:max-h-full twa:overflow-hidden twa:flex twa:flex-col') },
487
+ React.createElement(Flex_1.Box, { className: "twa:px-4 twa:pt-4" },
488
+ React.createElement(Flex_1.Box, { className: "twa:text-5 twa:font-bold twa:leading-relaxed ab-Layout-Wizard__ColumnPropertiesEditor__Title" },
489
+ "Column Settings: ",
490
+ column.friendlyName),
491
+ React.createElement(Flex_1.Box, { className: "twa:text-3 twa:opacity-80 twa:flex twa:flex-row twa:gap-1 twa:items-center" },
492
+ "Column ID:",
493
+ ' ',
494
+ React.createElement(Flex_1.Box, { className: "twa:bg-primarydark/20 twa:text-text-on-primarydark twa:px-1 twa:py-0.5 twa:rounded-standard" }, column.columnId)),
495
+ props.column.columnGroup && props.column.columnGroup.groupCount > 1 ? (React.createElement(Flex_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Title twa:mx-2 twa:p-1" },
496
+ "Column Group: ",
497
+ props.column.columnGroup.friendlyName)) : null),
531
498
  hr,
532
- React.createElement(Flex_1.Box, null,
533
- React.createElement(Flex_1.Box, { className: "twa:my-3" }, "Column Attributes"),
534
- React.createElement(Flex_1.Box, { className: (0, clsx_1.default)({
535
- 'twa:bg-primarylight': 'the bg color',
536
- 'twa:gap-2 twa:flex twa:flex-col': 'layout configuration for small screens',
537
- 'twa:lg:gap-3 twa:lg:grid twa:md:grid-cols-[1fr_1fr]': 'layout configuration for normal screens',
538
- 'twa:p-5 twa:rounded-standard': true,
539
- }) }, [
540
- { label: 'Aggregatable', checked: props.column.aggregatable },
541
- { label: 'Filterable', checked: props.column.filterable },
542
- { label: 'Groupable', checked: props.column.groupable },
543
- { label: 'Moveable', checked: props.column.moveable },
544
- { label: 'Pivotable', checked: props.column.pivotable },
545
- { label: 'Sortable', checked: props.column.sortable },
546
- ].map(({ label, checked }) => (React.createElement(Flex_1.Flex, { key: label, alignItems: "center", className: (0, clsx_1.default)({
547
- 'twa:rounded-standard twa:gap-2': true,
548
- }) },
549
- React.createElement(Flex_1.Box, { className: "twa:size-5" }, checked ? (React.createElement(icons_1.Icon, { name: "check", className: "twa:text-success" })) : (React.createElement(icons_1.Icon, { name: "close", className: "twa:text-error" }))),
550
- label)))))));
499
+ React.createElement(Flex_1.Box, { className: "twa:px-4 twa:flex-1 twa:overflow-y-auto twa:pb-3" },
500
+ React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:mt-3" },
501
+ React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-1" },
502
+ "Header",
503
+ React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input twa:w-full", placeholder: "Custom name (optional)", onChange: () => {
504
+ props.onColumnNameChange(props.column.columnId, event.target.value);
505
+ }, value: customHeader })),
506
+ React.createElement(Flex_1.Box, { className: "twa:grid twa:grid-cols-[1fr_1fr] twa:gap-2" },
507
+ React.createElement(Flex_1.Box, null, "Width:"),
508
+ " ",
509
+ React.createElement(Flex_1.Box, null, "Flex:"),
510
+ React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column width", disabled: resizable === false, onChange: (event) => {
511
+ let value = parseFloat(event.target.value);
512
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
513
+ props.onColumnWidthChange(props.column.columnId, value);
514
+ }, value: columnWidth ?? '' }),
515
+ React.createElement(Input_1.default, { "data-name": "column-flex", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column flex", disabled: resizable === false, onChange: (event) => {
516
+ let value = parseFloat(event.target.value);
517
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
518
+ props.onColumnFlexChange(props.column.columnId, value);
519
+ }, value: columnFlex ?? '' }),
520
+ React.createElement(Flex_1.Box, null, "Min Width:"),
521
+ React.createElement(Flex_1.Box, null, "Max Width:"),
522
+ React.createElement(Input_1.default, { "data-name": "column-min-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column min width", disabled: resizable === false, onChange: (event) => {
523
+ let value = parseFloat(event.target.value);
524
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
525
+ props.onColumnMinWidthChange(props.column.columnId, value);
526
+ }, value: minWidth ?? '' }),
527
+ React.createElement(Input_1.default, { "data-name": "column-max-width", className: "ab-Layout-Wizard__ColumnPropertiesEditor__Input", type: "number", placeholder: "Column max width", disabled: resizable === false, onChange: (event) => {
528
+ let value = parseFloat(event.target.value);
529
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
530
+ props.onColumnMaxWidthChange(props.column.columnId, value);
531
+ }, value: maxWidth ?? '' })),
532
+ "Pinning:",
533
+ React.createElement(Radio_1.RadioGroup, { value: columnPinning || 'None', name: "columnPinning", orientation: "horizontal", variant: "text-only", className: Radio_1.radioGroupStyling.horizontalTextOnly, onRadioChange: (columnPinning) => {
534
+ props.onPinChange(column.columnId, columnPinning === 'None' ? null : columnPinning);
535
+ } },
536
+ React.createElement(Radio_1.default, { value: "left" }, "Left"),
537
+ React.createElement(Radio_1.default, { value: "None" }, "None"),
538
+ React.createElement(Radio_1.default, { value: "right" }, "Right"))),
539
+ React.createElement(Flex_1.Box, { className: "twa:mt-5" }),
540
+ hr,
541
+ React.createElement(Flex_1.Box, null,
542
+ React.createElement(Flex_1.Box, { className: "twa:my-3" }, "Column Attributes"),
543
+ React.createElement(Flex_1.Box, { className: (0, clsx_1.default)({
544
+ 'twa:bg-primarylight': 'the bg color',
545
+ 'twa:gap-2 twa:flex twa:flex-col': 'layout configuration for small screens',
546
+ 'twa:lg:gap-3 twa:lg:grid twa:md:grid-cols-[1fr_1fr]': 'layout configuration for normal screens',
547
+ 'twa:p-5 twa:rounded-standard': true,
548
+ }) }, [
549
+ { label: 'Aggregatable', checked: props.column.aggregatable },
550
+ { label: 'Filterable', checked: props.column.filterable },
551
+ { label: 'Groupable', checked: props.column.groupable },
552
+ { label: 'Moveable', checked: props.column.moveable },
553
+ { label: 'Pivotable', checked: props.column.pivotable },
554
+ { label: 'Sortable', checked: props.column.sortable },
555
+ ].map(({ label, checked }) => (React.createElement(Flex_1.Flex, { key: label, alignItems: "center", className: (0, clsx_1.default)({
556
+ 'twa:rounded-standard twa:gap-2': true,
557
+ }) },
558
+ React.createElement(Flex_1.Box, { className: "twa:size-5" }, checked ? (React.createElement(icons_1.Icon, { name: "check", className: "twa:text-success" })) : (React.createElement(icons_1.Icon, { name: "close", className: "twa:text-error" }))),
559
+ label))))))));
551
560
  };
@@ -64,8 +64,15 @@ const FilterSection = (props) => {
64
64
  });
65
65
  } }))),
66
66
  layoutFilters?.length > 0 && (React.createElement(Flex_1.Box, { className: "twa:p-0", as: "ul" }, layoutFilters.map((columnFilter) => {
67
+ const moduleItems = filterModule.toView(columnFilter).items;
68
+ const column = adaptable.api.columnApi.getColumnWithColumnId(columnFilter.ColumnId);
69
+ const columnGroupItems = column?.columnGroup && column.columnGroup.groupCount > 1
70
+ ? [{ name: 'Column Group', values: [column.columnGroup.friendlyName] }]
71
+ : [];
67
72
  const items = [
68
- ...filterModule.toView(columnFilter).items,
73
+ moduleItems[0],
74
+ ...columnGroupItems,
75
+ ...moduleItems.slice(1),
69
76
  {
70
77
  name: 'Column Filter',
71
78
  view: (React.createElement(LayoutColumnFilter_1.LayoutColumnFilter, { columnFilter: columnFilter, onColumnFilterChange: (columnFilter) => {
@@ -13,6 +13,7 @@ const AdaptableContext_1 = require("../../../AdaptableContext");
13
13
  const ValueSelector_1 = require("../../../Components/ValueSelector");
14
14
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
15
15
  const Utilities_1 = require("./Utilities");
16
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
16
17
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
17
18
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/StringExtensions"));
18
19
  const Select_1 = require("../../../../components/Select");
@@ -177,6 +178,7 @@ const PivotColumnRow = (props) => {
177
178
  React.createElement(Flex_1.Flex, { alignItems: "flex-start" },
178
179
  React.createElement(Flex_1.Flex, { className: "twa:flex-[0_0_auto]", alignItems: "center" },
179
180
  React.createElement(Flex_1.Flex, { className: "twa:min-w-[80px]" }, props.column.friendlyName),
181
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }),
180
182
  aggValue && (React.createElement(DropdownButton_1.default, { columns: ['label'], items: aggOptions, className: "twa:ml-2" }, currentAggFnName)),
181
183
  currentAggFnName === AggregationColumns_1.WEIGHTED_AVERAGE_AGG_FN_NAME && (React.createElement(Flex_1.Flex, { className: "twa:bg-primary twa:ml-3", alignItems: "center" },
182
184
  React.createElement(Flex_1.Box, null, "Weight"),
@@ -4,6 +4,7 @@ exports.PivotRowGroupingSection = exports.PivotRowGroupingSectionSummary = void
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const Utilities_1 = require("./Utilities");
7
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
7
8
  const Tabs_1 = require("../../../../components/Tabs");
8
9
  const Tag_1 = require("../../../../components/Tag");
9
10
  const AdaptableContext_1 = require("../../../AdaptableContext");
@@ -43,7 +44,9 @@ const PivotRowGroupingSection = (props) => {
43
44
  React.createElement(Tabs_1.Tabs.Tab, null, "Row Grouped Columns"),
44
45
  React.createElement(Tabs_1.Tabs.Tab, null, rowGroupsText),
45
46
  React.createElement(Tabs_1.Tabs.Content, null,
46
- React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, options: sortedGroupableColumns, value: layout.PivotGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange })),
47
+ React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (option) => (React.createElement(Flex_1.Flex, { alignItems: "center" },
48
+ option.friendlyName ?? option.columnId,
49
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: option }))), options: sortedGroupableColumns, value: layout.PivotGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange })),
47
50
  React.createElement(Tabs_1.Tabs.Content, null,
48
51
  React.createElement(RowGroupingSection_1.RowGroupBehaviorSection, { layout: layout, onChange: onChange }))));
49
52
  };
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const FormLayout_1 = tslib_1.__importDefault(require("../../../../components/FormLayout"));
7
7
  const Utilities_1 = require("./Utilities");
8
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
8
9
  const Radio_1 = require("../../../../components/Radio");
9
10
  const Tabs_1 = require("../../../../components/Tabs");
10
11
  const Tag_1 = require("../../../../components/Tag");
@@ -101,7 +102,9 @@ const RowGroupingSection = (props) => {
101
102
  React.createElement(Tabs_1.Tabs.Tab, null, "Row Grouped Columns"),
102
103
  React.createElement(Tabs_1.Tabs.Tab, null, rowGroupsText),
103
104
  React.createElement(Tabs_1.Tabs.Content, null,
104
- React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, options: sortedGroupableColumns, value: layout.RowGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange })),
105
+ React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (option) => (React.createElement(Flex_1.Flex, { alignItems: "center" },
106
+ option.friendlyName ?? option.columnId,
107
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: option }))), options: sortedGroupableColumns, value: layout.RowGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange })),
105
108
  React.createElement(Tabs_1.Tabs.Content, null,
106
109
  React.createElement(exports.RowGroupBehaviorSection, { layout: layout, onChange: onChange })))));
107
110
  };
@@ -19,6 +19,7 @@ const SuspendToggleButton_1 = require("../../../Components/Buttons/SuspendToggle
19
19
  const ValueSelector_1 = require("../../../Components/ValueSelector");
20
20
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
21
21
  const Utilities_1 = require("./Utilities");
22
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
22
23
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
23
24
  const Flex_1 = require("../../../../components/Flex");
24
25
  const areSummaryRowsValid = (layout) => {
@@ -156,11 +157,13 @@ const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpr
156
157
  } }, "Include Only Filtered Rows"))),
157
158
  React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:mt-2 twa:mb-1" },
158
159
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:flex-1 twa:mb-2" }, "Column Aggregations"),
159
- React.createElement(Panel_1.default, { bodyProps: { className: 'twa:max-h-full ' }, className: "twa:h-[360px]" },
160
+ React.createElement(Panel_1.default, { bodyProps: { className: 'twa:max-h-full twa:bg-primarylight ' }, className: "twa:h-[360px]" },
160
161
  React.createElement(ValueSelector_1.ValueSelector, { style: { maxHeight: '100%' }, showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (column) => column.columnId, toLabel: (option) => option.friendlyName ?? option.columnId, options: columns, toListLabel: (column) => {
161
162
  const label = column.friendlyName ?? column.columnId;
162
163
  if (!(column.columnId in (rowSummary.ColumnsMap ?? {}))) {
163
- return label;
164
+ return (React.createElement(Flex_1.Flex, { alignItems: "center" },
165
+ label,
166
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: column })));
164
167
  }
165
168
  const expressionOptions = getAvailableExpressionsForColumnType(column.dataType, availableScalarExpressions).map((expression) => ({
166
169
  label: expression,
@@ -178,7 +181,9 @@ const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpr
178
181
  }
179
182
  const expression = rowSummary.ColumnsMap[column.columnId];
180
183
  return (React.createElement(Flex_1.Flex, null,
181
- React.createElement(Flex_1.Flex, { className: "twa:mr-2", alignItems: 'center' }, label),
184
+ React.createElement(Flex_1.Flex, { className: "twa:mr-2", alignItems: 'center' },
185
+ label,
186
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: column })),
182
187
  React.createElement(Select_1.Select, { value: expression, options: expressionOptions, onChange: (expression) => {
183
188
  onChange({
184
189
  ...rowSummary,
@@ -11,6 +11,7 @@ const AdaptableContext_1 = require("../../../AdaptableContext");
11
11
  const ValueSelector_1 = require("../../../Components/ValueSelector");
12
12
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
13
13
  const Utilities_1 = require("./Utilities");
14
+ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
14
15
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
15
16
  const Flex_1 = require("../../../../components/Flex");
16
17
  const SortSectionSummary = () => {
@@ -23,8 +24,9 @@ exports.SortSectionSummary = SortSectionSummary;
23
24
  const ColumnRow = (props) => {
24
25
  const SortOrder = (props.layout?.ColumnSorts ?? []).find((sort) => sort.ColumnId === props.column.columnId)?.SortOrder;
25
26
  const icon = SortOrder === 'Asc' ? 'sort-asc' : 'sort-desc';
26
- return (React.createElement(Flex_1.Box, null,
27
+ return (React.createElement(Flex_1.Flex, { alignItems: "center" },
27
28
  props.column.friendlyName,
29
+ React.createElement(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }),
28
30
  SortOrder && (React.createElement(SimpleButton_1.default, { className: "twa:ml-2", onClick: () => props.onSortChange(props.column.columnId, SortOrder === 'Asc' ? 'Desc' : 'Asc'), variant: "raised", icon: icon }))));
29
31
  };
30
32
  const SortSection = (props) => {
@@ -8,6 +8,7 @@ const Tag_1 = require("../../../components/Tag");
8
8
  const ColumnSelector_1 = require("../../Components/ColumnSelector");
9
9
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
10
10
  const Flex_1 = require("../../../components/Flex");
11
+ const AdaptableFormControlTextClear_1 = require("../../Components/Forms/AdaptableFormControlTextClear");
11
12
  const renderStyledColumnColumnSummary = (data) => {
12
13
  const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
13
14
  return (React.createElement(Flex_1.Box, { className: "twa:pr-2 twa:py-2" },
@@ -82,9 +83,14 @@ const StyledColumnWizardColumnSection = (props) => {
82
83
  }
83
84
  props.onChange(newStyledColumn);
84
85
  };
86
+ const [columnsSearchText, setColumnsSearchText] = React.useState('');
85
87
  return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } },
86
88
  React.createElement(Tabs_1.Tabs.Tab, null, "Column"),
87
89
  React.createElement(Tabs_1.Tabs.Content, null,
88
- React.createElement(ColumnSelector_1.NewColumnSelector, { availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: handleColumnsChange, allowReorder: false }))));
90
+ React.createElement(Flex_1.Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2" },
91
+ React.createElement(Flex_1.Box, { className: "twa:text-2" }, "Columns"),
92
+ React.createElement(Flex_1.Box, { className: "twa:flex-3" }),
93
+ React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: columnsSearchText, OnTextChange: setColumnsSearchText, placeholder: "Type to search columns", style: { flex: 1 } })),
94
+ React.createElement(ColumnSelector_1.NewColumnSelector, { columnFilterText: columnsSearchText, availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: handleColumnsChange, allowReorder: false }))));
89
95
  };
90
96
  exports.StyledColumnWizardColumnSection = StyledColumnWizardColumnSection;
@@ -41,7 +41,6 @@ export interface OnePageAdaptableWizardProps<ENTITY> {
41
41
  onFinish?: (data: ENTITY) => any;
42
42
  children?: React.ReactNode;
43
43
  style?: CSSProperties;
44
- titleContainerStyle?: CSSProperties;
45
44
  closeText?: React.ReactNode;
46
45
  closeTooltip?: string;
47
46
  finishText?: React.ReactNode;
@@ -80,7 +80,7 @@ const OnePageAdaptableWizard = (props) => {
80
80
  };
81
81
  return (React.createElement(exports.OnePageAdaptableWizardContext.Provider, { value: extraContext },
82
82
  React.createElement(NamedQueryContext_1.NamedQueryContext.Provider, { value: { namedQuery, setNamedQuery } },
83
- React.createElement(OnePageWizards_1.OnePageWizard, { ...props, name: name, sections: sections, onFinish: handleClickFinish }))));
83
+ React.createElement(OnePageWizards_1.OnePageWizard, { ...props, name: name, sections: sections, onFinish: handleClickFinish, moduleName: props.moduleInfo.FriendlyName }))));
84
84
  };
85
85
  exports.OnePageAdaptableWizard = OnePageAdaptableWizard;
86
86
  const OnePageWizardSummary = () => {
@@ -40,6 +40,7 @@ export interface OnePageWizardProps<ENTITY> {
40
40
  closeText?: React.ReactNode;
41
41
  closeTooltip?: string;
42
42
  finishText?: React.ReactNode;
43
+ moduleName?: string;
43
44
  }
44
45
  export declare const OnePageWizard: <ENTITY extends unknown>(props: OnePageWizardProps<ENTITY>) => React.JSX.Element;
45
46
  export {};