@adaptabletools/adaptable-cjs 17.0.0-canary.3 → 18.0.0-canary.0
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 +1264 -1202
- package/base.css.map +1 -1
- package/index.css +2099 -22
- package/index.css.map +1 -1
- package/package.json +5 -4
- package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -0
- package/src/AdaptableOptions/AdaptableOptions.d.ts +5 -0
- package/src/AdaptableOptions/AlertOptions.d.ts +7 -7
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +9 -9
- package/src/AdaptableOptions/CommentsOptions.d.ts +28 -0
- package/src/AdaptableOptions/EditOptions.d.ts +6 -6
- package/src/AdaptableOptions/GridFilterOptions.d.ts +13 -8
- package/src/AdaptableOptions/GroupingOptions.d.ts +9 -9
- package/src/AdaptableOptions/InteropioPluginOptions.d.ts +10 -0
- package/src/AdaptableOptions/MenuOptions.d.ts +18 -4
- package/src/AdaptableOptions/MenuOptions.js +14 -6
- package/src/AdaptableOptions/NotesOptions.d.ts +2 -9
- package/src/Api/AdaptableApi.d.ts +6 -1
- package/src/Api/CommentApi.d.ts +58 -0
- package/src/Api/EventApi.d.ts +48 -12
- package/src/Api/Events/CalculatedColumnChanged.d.ts +19 -0
- package/src/Api/Events/CellSelectionChanged.d.ts +11 -0
- package/src/Api/Events/CommentsChangedInfo.d.ts +5 -0
- package/src/Api/Events/LiveDataChanged.d.ts +3 -3
- package/src/Api/Events/RowSelectionChanged.d.ts +11 -0
- package/src/Api/GridApi.d.ts +0 -6
- package/src/Api/GridFilterApi.d.ts +2 -2
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +6 -6
- package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
- package/src/Api/Implementation/CommentsApiImpl.d.ts +15 -0
- package/src/Api/Implementation/CommentsApiImpl.js +46 -0
- package/src/Api/Implementation/ExpressionApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ExpressionApiImpl.js +3 -4
- package/src/Api/Implementation/GridApiImpl.d.ts +0 -1
- package/src/Api/Implementation/GridApiImpl.js +0 -4
- package/src/Api/Implementation/GridFilterApiImpl.d.ts +1 -1
- package/src/Api/Implementation/GridFilterApiImpl.js +1 -1
- package/src/Api/Implementation/NotesApiImpl.d.ts +2 -6
- package/src/Api/Implementation/NotesApiImpl.js +1 -15
- package/src/Api/Implementation/OptionsApiImpl.d.ts +2 -0
- package/src/Api/Implementation/OptionsApiImpl.js +3 -0
- package/src/Api/Implementation/PluginsApiImpl.d.ts +2 -6
- package/src/Api/Implementation/PluginsApiImpl.js +3 -15
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -12
- package/src/Api/Implementation/ScheduleApiImpl.js +0 -36
- package/src/Api/Implementation/ThemeApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ThemeApiImpl.js +3 -0
- package/src/Api/Internal/ActionRowInternalApi.js +1 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
- package/src/Api/Internal/AdaptableInternalApi.js +3 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +16 -0
- package/src/Api/Internal/DashboardInternalApi.d.ts +1 -0
- package/src/Api/Internal/DashboardInternalApi.js +5 -0
- package/src/Api/Internal/DataImportInternalApi.js +2 -0
- package/src/Api/Internal/DataSetInternalApi.js +2 -1
- package/src/Api/Internal/GridInternalApi.d.ts +3 -1
- package/src/Api/Internal/GridInternalApi.js +32 -9
- package/src/Api/Internal/LayoutInternalApi.d.ts +2 -2
- package/src/Api/Internal/LayoutInternalApi.js +11 -11
- package/src/Api/InteropioPluginApi.d.ts +10 -0
- package/src/Api/{NotesAPi.d.ts → NotesApi.d.ts} +19 -21
- package/src/Api/OptionsApi.d.ts +5 -0
- package/src/Api/PluginsApi.d.ts +3 -13
- package/src/Api/ScheduleApi.d.ts +1 -48
- package/src/Api/ThemeApi.d.ts +5 -0
- package/src/PredefinedConfig/AdaptableState.d.ts +4 -2
- package/src/PredefinedConfig/CellAddress.d.ts +13 -0
- package/src/PredefinedConfig/CellAddress.js +5 -0
- package/src/PredefinedConfig/CommentState.d.ts +48 -0
- package/src/PredefinedConfig/CommentState.js +2 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +2 -1
- package/src/PredefinedConfig/Common/Enums.d.ts +0 -1
- package/src/PredefinedConfig/Common/Enums.js +0 -1
- package/src/PredefinedConfig/Common/Schedule.d.ts +1 -1
- package/src/PredefinedConfig/Common/Types.d.ts +5 -5
- package/src/PredefinedConfig/Common/Types.js +0 -2
- package/src/PredefinedConfig/NotesState.d.ts +0 -13
- package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -0
- package/src/PredefinedConfig/ScheduleState.d.ts +0 -5
- package/src/PredefinedConfig/SystemState.d.ts +5 -6
- package/src/PredefinedConfig/ThemeState.d.ts +1 -1
- package/src/Redux/ActionsReducers/CommentsRedux.d.ts +79 -0
- package/src/Redux/ActionsReducers/CommentsRedux.js +189 -0
- package/src/Redux/ActionsReducers/NotesRedux.js +1 -2
- package/src/Redux/ActionsReducers/PluginsRedux.d.ts +0 -48
- package/src/Redux/ActionsReducers/PluginsRedux.js +1 -49
- package/src/Redux/ActionsReducers/PlusMinusRedux.d.ts +16 -0
- package/src/Redux/ActionsReducers/PlusMinusRedux.js +47 -1
- package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +0 -53
- package/src/Redux/ActionsReducers/ScheduleRedux.js +2 -90
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +23 -12
- package/src/Redux/ActionsReducers/SystemRedux.js +55 -23
- package/src/Redux/Store/AdaptableStore.d.ts +2 -2
- package/src/Redux/Store/AdaptableStore.js +107 -46
- package/src/Strategy/CommentsModule.d.ts +16 -0
- package/src/Strategy/CommentsModule.js +82 -0
- package/src/Strategy/LayoutModule.d.ts +12 -4
- package/src/Strategy/LayoutModule.js +19 -14
- package/src/Strategy/NotesModule.d.ts +0 -13
- package/src/Strategy/NotesModule.js +9 -88
- package/src/Strategy/PlusMinusModule.js +2 -0
- package/src/Strategy/ScheduleModule.js +0 -23
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +2 -1
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +14 -5
- package/src/Strategy/Utilities/getExpressionViewItems.js +8 -2
- package/src/Utilities/Constants/ConfigConstants.d.ts +1 -0
- package/src/Utilities/Constants/ConfigConstants.js +2 -1
- package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
- package/src/Utilities/Constants/GeneralConstants.js +8 -3
- package/src/Utilities/Constants/ModuleConstants.d.ts +3 -3
- package/src/Utilities/Constants/ModuleConstants.js +4 -4
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +3 -3
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -0
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +7 -1
- package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +6 -0
- package/src/Utilities/ExpressionFunctions/dateUtils.d.ts +1 -0
- package/src/Utilities/ExpressionFunctions/dateUtils.js +18 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +12 -12
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/ArrayExtensions.js +8 -1
- package/src/Utilities/Helpers/PreviewHelper.js +5 -2
- package/src/Utilities/ObjectFactory.d.ts +19 -22
- package/src/Utilities/ObjectFactory.js +51 -60
- package/src/Utilities/Services/CellPopupService.d.ts +23 -0
- package/src/Utilities/Services/CellPopupService.js +138 -0
- package/src/Utilities/Services/Interface/IReportService.d.ts +1 -1
- package/src/Utilities/Services/Interface/IThemeService.d.ts +8 -0
- package/src/Utilities/Services/ModuleService.js +1 -3
- package/src/Utilities/Services/ReportService.d.ts +1 -1
- package/src/Utilities/Services/ThemeService.d.ts +3 -0
- package/src/Utilities/Services/ThemeService.js +33 -1
- package/src/Utilities/Services/ValidationService.js +11 -11
- package/src/View/AdaptableView.js +3 -3
- package/src/View/AdaptableViewFactory.js +4 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +1 -1
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -2
- package/src/View/Alert/Wizard/AlertRulesWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +4 -3
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
- package/src/View/Charting/useChartingElements.js +8 -3
- package/src/View/Comments/CommentsEditor.d.ts +7 -0
- package/src/View/Comments/CommentsEditor.js +100 -0
- package/src/View/Comments/CommentsPopup.d.ts +2 -0
- package/src/View/Comments/CommentsPopup.js +87 -0
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +2 -1
- package/src/View/Components/CellPopup/index.js +1 -1
- package/src/View/Components/FilterForm/FilterForm.js +8 -2
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -3
- package/src/View/Components/FilterForm/QuickFilterForm.js +5 -4
- package/src/View/Components/FilterForm/QuickFilterValues.d.ts +2 -2
- package/src/View/Components/FilterForm/QuickFilterValues.js +4 -3
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.d.ts +5 -0
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +67 -0
- package/src/View/Components/Popups/GridCellPopup/index.d.ts +1 -0
- package/src/View/Components/Popups/GridCellPopup/index.js +5 -0
- package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -0
- package/src/View/Components/Selectors/ColumnSelector.js +2 -1
- package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +5 -4
- package/src/View/Components/Selectors/PermittedValuesSelector.js +25 -3
- package/src/View/Components/ToolPanel/ToolPanelWrapper.js +1 -4
- package/src/View/Dashboard/ModuleToolbarWrapper.js +1 -1
- package/src/View/Dashboard/PinnedDashboard.js +2 -1
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +2 -2
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -1
- package/src/View/GridFilter/GridFilterExpressionEditor.js +1 -1
- package/src/View/GridFilter/GridFilterPopup.js +10 -8
- package/src/View/GridFilter/GridFilterViewPanel.js +14 -11
- package/src/View/GridFilter/NamedQuerySelector.js +1 -1
- package/src/View/GridFilter/useGridFilterExpressionEditor.d.ts +3 -0
- package/src/View/GridFilter/useGridFilterExpressionEditor.js +17 -6
- package/src/View/GridFilter/useGridFilterOptionsForExpressionEditor.js +5 -23
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +3 -2
- package/src/View/Layout/Wizard/getGridFilterPreview.d.ts +6 -0
- package/src/View/Layout/Wizard/getGridFilterPreview.js +16 -0
- package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +4 -4
- package/src/View/NamedQuery/EditCurrentQueryButton.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
- package/src/View/Notes/NoteEditor.d.ts +8 -0
- package/src/View/Notes/NoteEditor.js +33 -0
- package/src/View/Notes/NotesPopup.d.ts +2 -2
- package/src/View/Notes/NotesPopup.js +78 -55
- package/src/View/PlusMinus/MovePlusMinus.d.ts +7 -0
- package/src/View/PlusMinus/MovePlusMinus.js +27 -0
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +0 -9
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +0 -4
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +2 -8
- package/src/View/Schedule/Wizard/ScheduleWizard.js +0 -8
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +3 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -2
- package/src/agGrid/Adaptable.d.ts +7 -0
- package/src/agGrid/Adaptable.js +49 -35
- package/src/agGrid/BadgeRenderer.js +9 -5
- package/src/agGrid/agGridHelper.d.ts +2 -1
- package/src/agGrid/agGridHelper.js +15 -3
- package/src/agGrid/agGridMenuHelper.d.ts +2 -0
- package/src/agGrid/agGridMenuHelper.js +73 -25
- package/src/components/Datepicker/index.js +4 -4
- package/src/components/ExpressionEditor/ExpressionPreview.d.ts +7 -0
- package/src/components/ExpressionEditor/ExpressionPreview.js +25 -0
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.js +2 -2
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +6 -0
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +40 -11
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +14 -2
- package/src/components/ExpressionEditor/QueryBuilder/booleanExpressions.js +1 -0
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -1
- package/src/components/ExpressionEditor/index.js +4 -7
- package/src/components/InputGroup/InputGroup.d.ts +7 -0
- package/src/components/InputGroup/InputGroup.js +12 -0
- package/src/components/InputGroup/index.d.ts +1 -0
- package/src/components/InputGroup/index.js +4 -0
- package/src/components/OverlayTrigger/index.js +7 -2
- package/src/components/Select/Select.d.ts +1 -2
- package/src/components/Select/Select.js +63 -23
- package/src/components/Toastify/index.d.ts +2 -2
- package/src/components/Toastify/index.js +1 -1
- package/src/components/icons/comments.d.ts +3 -0
- package/src/components/icons/comments.js +7 -0
- package/src/components/icons/index.js +3 -1
- package/src/env.d.ts +3 -1
- package/src/env.js +3 -1
- package/src/metamodel/adaptable.metamodel.d.ts +72 -158
- package/src/metamodel/adaptable.metamodel.js +128 -260
- package/src/parser/src/parser.d.ts +2 -0
- package/src/parser/src/parser.js +1880 -705
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +5 -2
- package/src/parser/src/predicate/types.d.ts +1 -1
- package/src/parser/src/types.d.ts +1 -1
- package/src/renderReactRoot.js +15 -0
- package/src/themes/index.js +4 -0
- package/src/types.d.ts +10 -13
- package/themes/dark.css +4 -4
- package/themes/dark.css.map +1 -1
- package/themes/light.css +1 -1
- package/themes/light.css.map +1 -1
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/AdaptableOptions/FinsemblePluginOptions.d.ts +0 -35
- package/src/AdaptableOptions/Glue42PluginOptions.d.ts +0 -25
- package/src/AdaptableOptions/Glue42WebPluginOptions.d.ts +0 -10
- package/src/Api/Events/SelectionChanged.d.ts +0 -16
- package/src/Api/FinsembleApi.d.ts +0 -10
- package/src/Api/Glue42Api.d.ts +0 -75
- package/src/Api/Glue42WebApi.d.ts +0 -10
- package/src/PredefinedConfig/Glue42State.d.ts +0 -46
- package/src/View/Notes/NotesListing.d.ts +0 -2
- package/src/View/Notes/NotesListing.js +0 -88
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.d.ts +0 -9
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.js +0 -25
- package/src/bundle-dependencies/bundles/react-toastify/components/CloseButton.d.ts +0 -9
- package/src/bundle-dependencies/bundles/react-toastify/components/Icons.d.ts +0 -24
- package/src/bundle-dependencies/bundles/react-toastify/components/ProgressBar.d.ts +0 -59
- package/src/bundle-dependencies/bundles/react-toastify/components/Toast.d.ts +0 -3
- package/src/bundle-dependencies/bundles/react-toastify/components/ToastContainer.d.ts +0 -3
- package/src/bundle-dependencies/bundles/react-toastify/components/Transitions.d.ts +0 -6
- package/src/bundle-dependencies/bundles/react-toastify/components/index.d.ts +0 -6
- package/src/bundle-dependencies/bundles/react-toastify/core/eventManager.d.ts +0 -39
- package/src/bundle-dependencies/bundles/react-toastify/core/index.d.ts +0 -2
- package/src/bundle-dependencies/bundles/react-toastify/core/toast.d.ts +0 -41
- package/src/bundle-dependencies/bundles/react-toastify/hooks/index.d.ts +0 -2
- package/src/bundle-dependencies/bundles/react-toastify/hooks/useToast.d.ts +0 -10
- package/src/bundle-dependencies/bundles/react-toastify/hooks/useToastContainer.d.ts +0 -23
- package/src/bundle-dependencies/bundles/react-toastify/index.d.ts +0 -5
- package/src/bundle-dependencies/bundles/react-toastify/index.js +0 -1
- package/src/bundle-dependencies/bundles/react-toastify/inject-style.d.ts +0 -8
- package/src/bundle-dependencies/bundles/react-toastify/types/index.d.ts +0 -269
- package/src/bundle-dependencies/bundles/react-toastify/utils/collapseToast.d.ts +0 -5
- package/src/bundle-dependencies/bundles/react-toastify/utils/constant.d.ts +0 -23
- package/src/bundle-dependencies/bundles/react-toastify/utils/cssTransition.d.ts +0 -43
- package/src/bundle-dependencies/bundles/react-toastify/utils/index.d.ts +0 -5
- package/src/bundle-dependencies/bundles/react-toastify/utils/mapper.d.ts +0 -2
- package/src/bundle-dependencies/bundles/react-toastify/utils/propValidator.d.ts +0 -9
- /package/src/AdaptableOptions/{FinsemblePluginOptions.js → CommentsOptions.js} +0 -0
- /package/src/AdaptableOptions/{Glue42PluginOptions.js → InteropioPluginOptions.js} +0 -0
- /package/src/{AdaptableOptions/Glue42WebPluginOptions.js → Api/CommentApi.js} +0 -0
- /package/src/Api/Events/{SelectionChanged.js → CalculatedColumnChanged.js} +0 -0
- /package/src/Api/{FinsembleApi.js → Events/CellSelectionChanged.js} +0 -0
- /package/src/Api/{Glue42Api.js → Events/CommentsChangedInfo.js} +0 -0
- /package/src/Api/{Glue42WebApi.js → Events/RowSelectionChanged.js} +0 -0
- /package/src/Api/Internal/{ExpressionnternalApi.d.ts → ExpressionInternalApi.d.ts} +0 -0
- /package/src/Api/Internal/{ExpressionnternalApi.js → ExpressionInternalApi.js} +0 -0
- /package/src/Api/{NotesAPi.js → InteropioPluginApi.js} +0 -0
- /package/src/{PredefinedConfig/Glue42State.js → Api/NotesApi.js} +0 -0
|
@@ -13,11 +13,49 @@ class agGridMenuHelper {
|
|
|
13
13
|
constructor(adaptable, gridOptions) {
|
|
14
14
|
this.adaptable = adaptable;
|
|
15
15
|
this.gridOptions = gridOptions;
|
|
16
|
+
this.buildGroupedModuleItems = (sortedMenuItems, adaptableMenuItems) => {
|
|
17
|
+
return sortedMenuItems
|
|
18
|
+
.map((moduleOrGroup) => {
|
|
19
|
+
if (typeof moduleOrGroup === 'object') {
|
|
20
|
+
const submenuItems = this.buildGroupedModuleItems(moduleOrGroup.modules, adaptableMenuItems);
|
|
21
|
+
// if there is only one item in the submenu, we don't need to show the submenu
|
|
22
|
+
if (submenuItems.length === 1) {
|
|
23
|
+
return submenuItems[0];
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
label: moduleOrGroup.title,
|
|
27
|
+
icon: moduleOrGroup.icon,
|
|
28
|
+
subItems: submenuItems,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return adaptableMenuItems.find((menuItem) => menuItem.module === moduleOrGroup);
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
.filter((menuItem) => {
|
|
36
|
+
if (!menuItem) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (menuItem.subItems && menuItem.subItems.length === 0) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
});
|
|
44
|
+
};
|
|
16
45
|
}
|
|
17
46
|
destroy() {
|
|
18
47
|
this.adaptable = null;
|
|
19
48
|
this.gridOptions = null;
|
|
20
49
|
}
|
|
50
|
+
mapAdaptableMenuItemToSystemMenuItems(adaptableMenuItems) {
|
|
51
|
+
return (adaptableMenuItems !== null && adaptableMenuItems !== void 0 ? adaptableMenuItems : []).map((menuItem) => {
|
|
52
|
+
let subItems = menuItem.subItems;
|
|
53
|
+
if (subItems && subItems.length > 0) {
|
|
54
|
+
subItems = subItems.map((subItem) => this.mapAdaptableMenuItemToSystemMenuItems(subItem.subItems));
|
|
55
|
+
}
|
|
56
|
+
return Object.assign(Object.assign({}, menuItem), { menuType: 'Adaptable', subItems });
|
|
57
|
+
});
|
|
58
|
+
}
|
|
21
59
|
buildColumnMenu(params, originalGetMainMenuItems) {
|
|
22
60
|
var _a;
|
|
23
61
|
const menuOptions = this.adaptable.adaptableOptions.menuOptions;
|
|
@@ -31,11 +69,7 @@ class agGridMenuHelper {
|
|
|
31
69
|
const menuContext = this.createColumnMenuContextObject(adaptableColumn, params.column);
|
|
32
70
|
const adaptableMenuItems = this.createAdaptableColumnMenuItems(menuContext);
|
|
33
71
|
// sort Adaptable menu items by default order
|
|
34
|
-
|
|
35
|
-
const firstPriority = MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER.indexOf(first.module);
|
|
36
|
-
const secondPriority = MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER.indexOf(second.module);
|
|
37
|
-
return firstPriority - secondPriority;
|
|
38
|
-
});
|
|
72
|
+
const structuredAdaptableMenuItems = this.buildGroupedModuleItems(MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER, adaptableMenuItems);
|
|
39
73
|
// 1. first check if there is a custom column menu defined
|
|
40
74
|
if (typeof menuOptions.customColumnMenu === 'function') {
|
|
41
75
|
const defaultAgGridMenuItems = agGridMenuItems.map((itemName) => ({
|
|
@@ -45,7 +79,7 @@ class agGridMenuHelper {
|
|
|
45
79
|
const defaultAdaptableMenuItems = adaptableMenuItems.map((adaptableItem) => (Object.assign({ menuType: 'Adaptable' }, adaptableItem)));
|
|
46
80
|
const customMenuItems = menuOptions
|
|
47
81
|
.customColumnMenu(Object.assign(Object.assign({}, menuContext), { defaultAgGridMenuItems,
|
|
48
|
-
defaultAdaptableMenuItems }))
|
|
82
|
+
defaultAdaptableMenuItems, structuredAdaptableMenuItems: this.mapAdaptableMenuItemToSystemMenuItems(structuredAdaptableMenuItems) }))
|
|
49
83
|
.filter(Boolean);
|
|
50
84
|
return customMenuItems
|
|
51
85
|
.map((customMenuItem) => this.mapCustomMenuItemToAgGridMenuDefinition(customMenuItem, menuContext))
|
|
@@ -58,7 +92,7 @@ class agGridMenuHelper {
|
|
|
58
92
|
const defaultContextMenu = [
|
|
59
93
|
...agGridMenuItems,
|
|
60
94
|
'separator',
|
|
61
|
-
...
|
|
95
|
+
...structuredAdaptableMenuItems.map((adaptableItem) => this.mapAdaptableMenuItemToAgGridMenuDefinition(adaptableItem)),
|
|
62
96
|
];
|
|
63
97
|
return defaultContextMenu;
|
|
64
98
|
}
|
|
@@ -78,11 +112,7 @@ class agGridMenuHelper {
|
|
|
78
112
|
const menuContext = this.createContextMenuContextObject(params, adaptableColumn);
|
|
79
113
|
const adaptableMenuItems = this.createAdaptableContextMenuItems(menuContext);
|
|
80
114
|
// sort Adaptable menu items by default order
|
|
81
|
-
|
|
82
|
-
const firstPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_ORDER.indexOf(first.module);
|
|
83
|
-
const secondPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_ORDER.indexOf(second.module);
|
|
84
|
-
return firstPriority - secondPriority;
|
|
85
|
-
});
|
|
115
|
+
const structuredAdaptableMenuItems = this.buildGroupedModuleItems(MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE, adaptableMenuItems);
|
|
86
116
|
// 1. first check if there is a custom context menu defined
|
|
87
117
|
if (typeof menuOptions.customContextMenu === 'function') {
|
|
88
118
|
const defaultAgGridMenuItems = agGridMenuItems.map((itemName) => ({
|
|
@@ -92,7 +122,7 @@ class agGridMenuHelper {
|
|
|
92
122
|
const defaultAdaptableMenuItems = adaptableMenuItems.map((adaptableItem) => (Object.assign({ menuType: 'Adaptable' }, adaptableItem)));
|
|
93
123
|
const customMenuItems = menuOptions
|
|
94
124
|
.customContextMenu(Object.assign(Object.assign({}, menuContext), { defaultAgGridMenuItems,
|
|
95
|
-
defaultAdaptableMenuItems }))
|
|
125
|
+
defaultAdaptableMenuItems, structuredAdaptableMenuItems: this.mapAdaptableMenuItemToSystemMenuItems(structuredAdaptableMenuItems) }))
|
|
96
126
|
.filter(Boolean);
|
|
97
127
|
return customMenuItems
|
|
98
128
|
.map((customMenuItem) => this.mapCustomMenuItemToAgGridMenuDefinition(customMenuItem, menuContext))
|
|
@@ -105,7 +135,7 @@ class agGridMenuHelper {
|
|
|
105
135
|
const defaultContextMenu = [
|
|
106
136
|
...agGridMenuItems,
|
|
107
137
|
'separator',
|
|
108
|
-
...
|
|
138
|
+
...structuredAdaptableMenuItems.map((adaptableItem) => this.mapAdaptableMenuItemToAgGridMenuDefinition(adaptableItem)),
|
|
109
139
|
];
|
|
110
140
|
return defaultContextMenu;
|
|
111
141
|
}
|
|
@@ -346,12 +376,30 @@ class agGridMenuHelper {
|
|
|
346
376
|
let isSingleSelectedColumn = false;
|
|
347
377
|
let isSelectedCell = false;
|
|
348
378
|
let isSelectedRow = false;
|
|
349
|
-
|
|
350
|
-
if (adaptableColumn) {
|
|
351
|
-
|
|
379
|
+
// row group columns dont provide an AdapTable Column so return bare minimum
|
|
380
|
+
if (!adaptableColumn) {
|
|
381
|
+
return {
|
|
382
|
+
isSelectedCell: false,
|
|
383
|
+
isSelectedRow: false,
|
|
384
|
+
gridCell: undefined,
|
|
385
|
+
adaptableColumn: undefined,
|
|
386
|
+
agGridColumn: params.column,
|
|
387
|
+
rowNode: params.node,
|
|
388
|
+
isGroupedNode: params.node ? params.node.group : false,
|
|
389
|
+
isSingleSelectedColumn: false,
|
|
390
|
+
isSingleSelectedCell: false,
|
|
391
|
+
primaryKeyValue: undefined,
|
|
392
|
+
adaptableApi: this.adaptable.api,
|
|
393
|
+
userName: this.adaptable.adaptableOptions.userName,
|
|
394
|
+
adaptableId: this.adaptable.adaptableOptions.adaptableId,
|
|
395
|
+
selectedCellInfo: undefined,
|
|
396
|
+
selectedRowInfo: undefined,
|
|
397
|
+
isRowGroupColumn: this.adaptable.api.columnApi.isAutoRowGroupColumn(params.column.getColId()),
|
|
398
|
+
};
|
|
352
399
|
}
|
|
353
|
-
|
|
354
|
-
|
|
400
|
+
const clickedCell = this.adaptable.getGridCellFromRowNode(params.node, adaptableColumn.columnId);
|
|
401
|
+
const selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
|
|
402
|
+
if (selectedCellInfo) {
|
|
355
403
|
let matchedCell = selectedCellInfo.gridCells.find((gc) => gc != null &&
|
|
356
404
|
gc.column == clickedCell.column &&
|
|
357
405
|
gc.primaryKeyValue == clickedCell.primaryKeyValue);
|
|
@@ -360,9 +408,9 @@ class agGridMenuHelper {
|
|
|
360
408
|
isSingleSelectedColumn = ArrayExtensions_1.ArrayExtensions.CorrectLength(selectedCellInfo.columns, 1);
|
|
361
409
|
}
|
|
362
410
|
}
|
|
363
|
-
|
|
411
|
+
const selectedRowInfo = this.adaptable.api.gridApi.getSelectedRowInfo();
|
|
364
412
|
if (selectedRowInfo) {
|
|
365
|
-
|
|
413
|
+
const matchedPKValue = selectedRowInfo.gridRows.find((gr) => gr != null && gr.primaryKeyValue == clickedCell.primaryKeyValue);
|
|
366
414
|
isSelectedRow = matchedPKValue != null;
|
|
367
415
|
}
|
|
368
416
|
return {
|
|
@@ -395,8 +443,8 @@ class agGridMenuHelper {
|
|
|
395
443
|
}
|
|
396
444
|
createAdaptableContextMenuItems(menuContext) {
|
|
397
445
|
let contextMenuItems = [];
|
|
398
|
-
this.adaptable.adaptableModules.forEach((
|
|
399
|
-
let menuItems =
|
|
446
|
+
this.adaptable.adaptableModules.forEach((module) => {
|
|
447
|
+
let menuItems = module.addContextMenuItems(menuContext);
|
|
400
448
|
if (menuItems) {
|
|
401
449
|
contextMenuItems.push(...menuItems.filter(Boolean).filter((item) => item.isVisible !== false));
|
|
402
450
|
}
|
|
@@ -537,8 +585,8 @@ class agGridMenuHelper {
|
|
|
537
585
|
adaptableMenuItems.push(...allAdaptableMenuItems);
|
|
538
586
|
}
|
|
539
587
|
adaptableMenuItems.sort((first, second) => {
|
|
540
|
-
const firstPriority = MenuOptions_1.
|
|
541
|
-
const secondPriority = MenuOptions_1.
|
|
588
|
+
const firstPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE.indexOf(first.module);
|
|
589
|
+
const secondPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE.indexOf(second.module);
|
|
542
590
|
return firstPriority - secondPriority;
|
|
543
591
|
});
|
|
544
592
|
// }
|
|
@@ -17,13 +17,13 @@ const DatepickerContext_1 = require("./DatepickerContext");
|
|
|
17
17
|
const addDays_1 = tslib_1.__importDefault(require("date-fns/addDays"));
|
|
18
18
|
const addBusinessDays_1 = tslib_1.__importDefault(require("date-fns/addBusinessDays"));
|
|
19
19
|
const react_day_picker_1 = require("react-day-picker");
|
|
20
|
-
const DatepickerOverlay = ({ onHide, children, onKeyDown, }) => {
|
|
20
|
+
const DatepickerOverlay = ({ onHide, children, onKeyDown, onMouseDown, }) => {
|
|
21
21
|
const domRef = React.useRef(null);
|
|
22
22
|
React.useEffect(() => {
|
|
23
23
|
var _a;
|
|
24
24
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
25
25
|
}, []);
|
|
26
|
-
return (React.createElement("div", { className: "ab-Datepicker-Overlay", ref: domRef, tabIndex: -1, onKeyDown: onKeyDown, onBlur: (e) => {
|
|
26
|
+
return (React.createElement("div", { className: "ab-Datepicker-Overlay", ref: domRef, tabIndex: -1, onKeyDown: onKeyDown, onMouseDown: onMouseDown, onBlur: (e) => {
|
|
27
27
|
var _a;
|
|
28
28
|
const { relatedTarget } = e;
|
|
29
29
|
const node = domRef.current;
|
|
@@ -87,7 +87,7 @@ exports.Datepicker = React.forwardRef((props, ref) => {
|
|
|
87
87
|
}, accessLevel: 'Full' })) : null;
|
|
88
88
|
const calendarButton = (React.createElement(SimpleButton_1.default, { disabled: disabled, variant: "text", icon: "calendar", tooltip: "Date", iconSize: 20, px: 0, py: 0, onClick: () => setVisible(true) }));
|
|
89
89
|
return (React.createElement(rebass_1.Flex, null,
|
|
90
|
-
React.createElement(OverlayTrigger_1.default, { visible: visible, render: () => (React.createElement(DatepickerOverlay, { onHide: () => setVisible(false), onKeyDown: (e) => {
|
|
90
|
+
React.createElement(OverlayTrigger_1.default, { visible: visible, render: () => (React.createElement(DatepickerOverlay, { onMouseDown: props.onMouseDown, onHide: () => setVisible(false), onKeyDown: (e) => {
|
|
91
91
|
if (e.key === 'Escape' || e.key === 'Enter') {
|
|
92
92
|
setVisible(false, e.key);
|
|
93
93
|
}
|
|
@@ -97,7 +97,7 @@ exports.Datepicker = React.forwardRef((props, ref) => {
|
|
|
97
97
|
borderRadius: style === null || style === void 0 ? void 0 : style.borderRadius,
|
|
98
98
|
width: style === null || style === void 0 ? void 0 : style.width,
|
|
99
99
|
maxWidth: style === null || style === void 0 ? void 0 : style.maxWidth,
|
|
100
|
-
}, onFocus: () => {
|
|
100
|
+
}, className: "ab-Datepicker", onFocus: () => {
|
|
101
101
|
if (!visible) {
|
|
102
102
|
setVisible(true);
|
|
103
103
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpressionPreview = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const AdaptableContext_1 = require("../../View/AdaptableContext");
|
|
7
|
+
const ExpressionPreview = (props) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
10
|
+
const displayColumnFriendlyNames = (_a = adaptable.api.optionsApi.getExpressionOptions()) === null || _a === void 0 ? void 0 : _a.displayColumnFriendlyNamesForExpressions;
|
|
11
|
+
if (!displayColumnFriendlyNames) {
|
|
12
|
+
return React.createElement(React.Fragment, null, adaptable.api.expressionApi.getAdaptableQueryExpression(props.query));
|
|
13
|
+
}
|
|
14
|
+
const expressionWithFriendlyNames = adaptable.api.expressionApi.getAdaptableQueryExpressionWithColumnFriendlyNames(props.query);
|
|
15
|
+
// '[Column Name] > 2' => ['[Column Name]', '>', '2']
|
|
16
|
+
// not the prettiest
|
|
17
|
+
const strWithMarkedGroupes = expressionWithFriendlyNames.replace(/\]/gi, '],').split(',');
|
|
18
|
+
return (React.createElement(React.Fragment, null, strWithMarkedGroupes.map((part, index) => {
|
|
19
|
+
const partEl = part.includes('[') ? React.createElement("i", null, part.replace(/[\[\]]/g, '')) : part;
|
|
20
|
+
return React.createElement(React.Fragment, { key: index },
|
|
21
|
+
"\u00A0",
|
|
22
|
+
partEl);
|
|
23
|
+
})));
|
|
24
|
+
};
|
|
25
|
+
exports.ExpressionPreview = ExpressionPreview;
|
|
@@ -110,9 +110,9 @@ const QueryBuilder = (props) => {
|
|
|
110
110
|
} },
|
|
111
111
|
React.createElement(QueryBuilderContext.Provider, { value: context },
|
|
112
112
|
React.createElement(rebass_1.Box, { className: QUERY_BUILDER_CLASSNAME },
|
|
113
|
-
React.createElement(HelpBlock_1.default, { mt: 2, mb: 2, p: 2, fontSize: 3 }, "Build the Grid Filter by adding Column Conditions and AND / OR Groups as required"),
|
|
113
|
+
React.createElement(HelpBlock_1.default, { "data-name": "query-builder-help", mt: 2, mb: 2, p: 2, fontSize: 3 }, "Build the Grid Filter by adding Column Conditions and AND / OR Groups as required"),
|
|
114
114
|
errorOrEditor,
|
|
115
|
-
React.createElement(Panel_1.default, { variant: "default", header: "AdapTableQL Expression", mt: 3 },
|
|
115
|
+
React.createElement(Panel_1.default, { "data-name": "query-builder-expression-preview", variant: "default", header: "AdapTableQL Expression", mt: 3 },
|
|
116
116
|
React.createElement(rebass_1.Box, { className: `${QUERY_BUILDER_CLASSNAME}__expression`, minHeight: 48, my: 2, p: 3 }, expressionStr || 'Outputted Expression will display here'))))));
|
|
117
117
|
};
|
|
118
118
|
exports.QueryBuilder = QueryBuilder;
|
|
@@ -17,6 +17,12 @@ export declare const PrimiteValueInput: (props: {
|
|
|
17
17
|
*/
|
|
18
18
|
lefthandColumnIdParam: string;
|
|
19
19
|
}) => JSX.Element;
|
|
20
|
+
export declare const PrimitiveMultiValueInput: (props: {
|
|
21
|
+
inputType: ExpressionFunctionInputType;
|
|
22
|
+
value: any[];
|
|
23
|
+
onChange(values: any[]): void;
|
|
24
|
+
lefthandColumnIdParam: string;
|
|
25
|
+
}) => JSX.Element;
|
|
20
26
|
export declare const ExpressionSelector: (props: {
|
|
21
27
|
value: BooleanFunctionName;
|
|
22
28
|
dataType: AdaptableColumn['dataType'];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CombinatorSelector = exports.ExpressionSelector = exports.PrimiteValueInput = exports.PrimitiveColumnSelector = void 0;
|
|
3
|
+
exports.CombinatorSelector = exports.ExpressionSelector = exports.PrimitiveMultiValueInput = exports.PrimiteValueInput = exports.PrimitiveColumnSelector = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
const rebass_1 = require("rebass");
|
|
@@ -11,6 +11,7 @@ const PermittedValuesSelector_1 = require("../../../View/Components/Selectors/Pe
|
|
|
11
11
|
const CheckBox_1 = require("../../CheckBox");
|
|
12
12
|
const DropdownButton_1 = tslib_1.__importDefault(require("../../DropdownButton"));
|
|
13
13
|
const icons_1 = require("../../icons");
|
|
14
|
+
const InputGroup_1 = require("../../InputGroup");
|
|
14
15
|
const Select_1 = require("../../Select");
|
|
15
16
|
const QueryBuilder_1 = require("./QueryBuilder");
|
|
16
17
|
const utils_1 = require("./utils");
|
|
@@ -85,37 +86,65 @@ const PrimiteValueInput = (props) => {
|
|
|
85
86
|
}
|
|
86
87
|
const options = [
|
|
87
88
|
{
|
|
88
|
-
label:
|
|
89
|
+
label: (react_1.default.createElement(rebass_1.Flex, null,
|
|
90
|
+
react_1.default.createElement(icons_1.Icon, { name: "columns" }),
|
|
91
|
+
react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Column"))),
|
|
89
92
|
icon: 'columns',
|
|
90
93
|
value: 'column-name',
|
|
91
94
|
},
|
|
92
95
|
{
|
|
93
|
-
label:
|
|
96
|
+
label: (react_1.default.createElement(rebass_1.Flex, null,
|
|
97
|
+
react_1.default.createElement(icons_1.Icon, { name: "edit" }),
|
|
98
|
+
react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Value"))),
|
|
94
99
|
icon: 'edit',
|
|
95
100
|
value: 'input-value',
|
|
96
101
|
},
|
|
97
102
|
];
|
|
98
103
|
const typeOption = options.find((option) => option.value === type);
|
|
99
|
-
return (react_1.default.createElement(rebass_1.Flex,
|
|
100
|
-
react_1.default.createElement(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}, variant: "raised", value: typeOption.value, options: options, onChange: (value) => handleTypeChange(value) })),
|
|
104
|
+
return (react_1.default.createElement(InputGroup_1.InputGroup, { Component: rebass_1.Flex, "data-id": "query-input-wrapper", mr: 2 },
|
|
105
|
+
react_1.default.createElement(Select_1.Select, { renderSingleValue: (value) => {
|
|
106
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, typeOption.value === 'column-name' ? react_1.default.createElement(icons_1.Icon, { name: "grid" }) : react_1.default.createElement(icons_1.Icon, { name: "edit" })));
|
|
107
|
+
}, value: typeOption.value, options: options, onChange: (value) => handleTypeChange(value) }),
|
|
104
108
|
editor));
|
|
105
109
|
};
|
|
106
110
|
exports.PrimiteValueInput = PrimiteValueInput;
|
|
111
|
+
const PrimitiveMultiValueInput = (props) => {
|
|
112
|
+
return (react_1.default.createElement(PermittedValuesSelector_1.PermittedValuesSelector, { isMulti: true, allowNewValues: true, value: props.value, columnId: props.lefthandColumnIdParam, onChange: (value) => {
|
|
113
|
+
props.onChange(value);
|
|
114
|
+
} }));
|
|
115
|
+
};
|
|
116
|
+
exports.PrimitiveMultiValueInput = PrimitiveMultiValueInput;
|
|
117
|
+
const SymbolToIcon = (props) => {
|
|
118
|
+
switch (props.symbol) {
|
|
119
|
+
case '=':
|
|
120
|
+
return react_1.default.createElement(icons_1.Icon, { name: "equals" });
|
|
121
|
+
case '!=':
|
|
122
|
+
return react_1.default.createElement(icons_1.Icon, { name: "not-equal" });
|
|
123
|
+
case '>':
|
|
124
|
+
return react_1.default.createElement(icons_1.Icon, { name: "greater-than" });
|
|
125
|
+
case '>=':
|
|
126
|
+
return react_1.default.createElement(icons_1.Icon, { name: "greater-than-or-equal" });
|
|
127
|
+
case '<':
|
|
128
|
+
return react_1.default.createElement(icons_1.Icon, { name: "less-than" });
|
|
129
|
+
case '<=':
|
|
130
|
+
return react_1.default.createElement(icons_1.Icon, { name: "less-than-or-equal" });
|
|
131
|
+
default:
|
|
132
|
+
return react_1.default.createElement(react_1.default.Fragment, null, props.symbol);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
107
135
|
const ExpressionSelector = (props) => {
|
|
108
136
|
var _a;
|
|
109
137
|
const { getExpressions } = (0, QueryBuilder_1.useQueryBuilderContext)();
|
|
110
138
|
const expressions = props.dataType ? getExpressions(props.dataType) : [];
|
|
111
|
-
return (react_1.default.createElement(DropdownButton_1.default, { "data-id": "expression-selector", "data-value": props.value, variant: "raised", columns: ['label'], items: expressions.map((expression) => ({
|
|
112
|
-
label: (0, mapQlPredicateToExpression_1.getQlPredicateSymbol)(expression),
|
|
139
|
+
return (react_1.default.createElement(DropdownButton_1.default, { "data-id": "expression-selector", "data-value": props.value, variant: "raised", tone: 'accent', columns: ['label'], items: expressions.map((expression) => ({
|
|
140
|
+
label: react_1.default.createElement(SymbolToIcon, { symbol: (0, mapQlPredicateToExpression_1.getQlPredicateSymbol)(expression) }),
|
|
113
141
|
onClick: () => {
|
|
114
142
|
if (expression !== props.value) {
|
|
115
143
|
props.onExpressionChange(expression);
|
|
116
144
|
}
|
|
117
145
|
},
|
|
118
|
-
})) },
|
|
146
|
+
})) },
|
|
147
|
+
react_1.default.createElement(SymbolToIcon, { symbol: (_a = (0, mapQlPredicateToExpression_1.getQlPredicateSymbol)(props.value)) !== null && _a !== void 0 ? _a : 'Select Operator' })));
|
|
119
148
|
};
|
|
120
149
|
exports.ExpressionSelector = ExpressionSelector;
|
|
121
150
|
const CombinatorSelector = (props) => {
|
|
@@ -145,12 +145,24 @@ const PrimitiveFunctionEditor = (props) => {
|
|
|
145
145
|
}, value: props.predicate.operator })),
|
|
146
146
|
react_1.default.createElement(rebass_1.Flex, { flex: 1, ml: 2 }, restOfFunctionInputDataTypes.map((type, index) => {
|
|
147
147
|
var _a;
|
|
148
|
-
|
|
148
|
+
let value = restOfArgs[index];
|
|
149
|
+
const commonProps = {
|
|
150
|
+
key: type + index,
|
|
151
|
+
lefthandColumnIdParam: columnId,
|
|
152
|
+
inputType: type,
|
|
153
|
+
};
|
|
154
|
+
if (type.includes('[]')) {
|
|
155
|
+
return (react_1.default.createElement(QueryBuilderInputs_1.PrimitiveMultiValueInput, Object.assign({}, commonProps, { value: restOfArgs, onChange: (values) => {
|
|
156
|
+
const args = [...props.predicate.args.slice(0, 1), ...values];
|
|
157
|
+
props.onChange(Object.assign(Object.assign({}, props.predicate), { args }));
|
|
158
|
+
} })));
|
|
159
|
+
}
|
|
160
|
+
return (react_1.default.createElement(QueryBuilderInputs_1.PrimiteValueInput, Object.assign({}, commonProps, { value: (_a = restOfArgs[index]) !== null && _a !== void 0 ? _a : null, onChange: (value) => {
|
|
149
161
|
const args = [...props.predicate.args];
|
|
150
162
|
// +1 because col is the first argument
|
|
151
163
|
args[index + 1] = value;
|
|
152
164
|
props.onChange(Object.assign(Object.assign({}, props.predicate), { args }));
|
|
153
|
-
} }));
|
|
165
|
+
} })));
|
|
154
166
|
}))),
|
|
155
167
|
react_1.default.createElement(rebass_1.Box, { flex: 1 }),
|
|
156
168
|
react_1.default.createElement(QueryPredicateButtons, Object.assign({}, props))));
|
|
@@ -80,7 +80,7 @@ const getFunctionsForColumnType = (dataType, availableBooleanFunctions) => {
|
|
|
80
80
|
const functionDef = booleanExpressionFunctions_1.booleanExpressionFunctions[boolFnName];
|
|
81
81
|
const inputs = functionDef.inputs;
|
|
82
82
|
let matchingInputTypes = [];
|
|
83
|
-
if (Array.isArray(inputs[0])) {
|
|
83
|
+
if (inputs && Array.isArray(inputs[0])) {
|
|
84
84
|
matchingInputTypes = inputs.find((input) => input[0] === columnType);
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
@@ -32,6 +32,7 @@ function ExpressionEditor(props) {
|
|
|
32
32
|
const { type, module } = props;
|
|
33
33
|
const [data, setData] = (0, react_1.useState)(props.initialData);
|
|
34
34
|
const [showColumnIds, setShowColumnIds] = (0, react_1.useState)(false);
|
|
35
|
+
const [inlineQuery, setInlineQuery] = (0, react_1.useState)(false);
|
|
35
36
|
const [showNamedQueries, setShowNamedQueries] = (0, react_1.useState)(false);
|
|
36
37
|
const baseClassName = `ab-ExpressionEditor`;
|
|
37
38
|
const [selectedFunction, setSelectedFunction] = (0, react_1.useState)(null);
|
|
@@ -97,12 +98,8 @@ function ExpressionEditor(props) {
|
|
|
97
98
|
setData(updateColValue(data, column, new Date(e.target.value)));
|
|
98
99
|
}, style: { width: '100%' }, disabled: column.readOnly })) : column.dataType === 'Boolean' ? (React.createElement(CheckBox_1.CheckBox, { "data-name": "column-input", "data-value": column.columnId, checked: getColValue(column), onChange: (checked) => setData(updateColValue(data, column, checked)), disabled: column.readOnly })) : null))))));
|
|
99
100
|
const namedQueries = (React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start", style: { marginTop: 2 } },
|
|
100
|
-
React.createElement(CheckBox_1.CheckBox, { checked: showColumnIds, onChange: (checked) => setShowColumnIds(checked),
|
|
101
|
-
|
|
102
|
-
margin: 0,
|
|
103
|
-
paddingTop: 'var(--ab-space-1)',
|
|
104
|
-
paddingBottom: 'var(--ab-space-1)',
|
|
105
|
-
} }, 'Show Column IDs'),
|
|
101
|
+
React.createElement(CheckBox_1.CheckBox, { checked: showColumnIds, onChange: (checked) => setShowColumnIds(checked) }, "Show Column IDs"),
|
|
102
|
+
React.createElement(CheckBox_1.CheckBox, { checked: inlineQuery, onChange: (checked) => setInlineQuery(checked) }, "Inline Query"),
|
|
106
103
|
props.namedQueries.map((namedQuery) => (React.createElement(rebass_1.Flex, { key: namedQuery.Uuid, flexDirection: "column", alignItems: "start", style: {
|
|
107
104
|
padding: 3,
|
|
108
105
|
marginTop: 'var(--ab-space-2)',
|
|
@@ -113,7 +110,7 @@ function ExpressionEditor(props) {
|
|
|
113
110
|
React.createElement(EditorButton_1.default, { width: "100%", height: "100%", style: {
|
|
114
111
|
background: 'var(--ab-color-primary)',
|
|
115
112
|
cursor: 'grab',
|
|
116
|
-
}, data: `QUERY("${namedQuery.Name}")`, "data-name": "column", icon: "drag" },
|
|
113
|
+
}, data: inlineQuery ? namedQuery.BooleanExpression : `QUERY("${namedQuery.Name}")`, "data-name": "column", icon: "drag" },
|
|
117
114
|
React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start" }, namedQuery.Name)),
|
|
118
115
|
React.createElement(rebass_1.Flex, { alignItems: "start", style: {
|
|
119
116
|
padding: 5,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type InputGroupProps<T extends React.ComponentType<any>> = {
|
|
3
|
+
Component?: T;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
} & React.ComponentProps<T>;
|
|
6
|
+
export declare const InputGroup: <T extends React.ComponentType<any>>({ Component, children, ...rest }: InputGroupProps<T>) => JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputGroup = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const InputGroup = (_a) => {
|
|
7
|
+
var _b;
|
|
8
|
+
var { Component = 'div', children } = _a, rest = tslib_1.__rest(_a, ["Component", "children"]);
|
|
9
|
+
const Comp = Component;
|
|
10
|
+
return (React.createElement(Comp, Object.assign({}, rest, { className: `ab-cmp-input-group ${(_b = rest.className) !== null && _b !== void 0 ? _b : ''}` }), children));
|
|
11
|
+
};
|
|
12
|
+
exports.InputGroup = InputGroup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './InputGroup';
|
|
@@ -4,6 +4,7 @@ exports.getConstrainRect = exports.getConstrainElement = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
+
const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
|
|
7
8
|
const batchUpdate_1 = tslib_1.__importDefault(require("../utils/batchUpdate"));
|
|
8
9
|
const selectParent_1 = tslib_1.__importDefault(require("../utils/selectParent"));
|
|
9
10
|
const useProperty_1 = tslib_1.__importDefault(require("../utils/useProperty"));
|
|
@@ -72,7 +73,11 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
72
73
|
const overlayRef = (0, react_1.useRef)(null);
|
|
73
74
|
const [visible, doSetVisible] = (0, useProperty_1.default)(props, 'visible', false);
|
|
74
75
|
const hideTimeoutRef = (0, react_1.useRef)(null);
|
|
75
|
-
const setVisible = React.useCallback(
|
|
76
|
+
const setVisible = React.useCallback(
|
|
77
|
+
// visible state may quickly change from true -> false -> true
|
|
78
|
+
// when moving the mouse cursor from the trigger to the overlay
|
|
79
|
+
// for this case we debounce the visible change for a very small amount of time
|
|
80
|
+
(0, debounce_1.default)((visible) => {
|
|
76
81
|
onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(visible);
|
|
77
82
|
if (!visible) {
|
|
78
83
|
hideTimeoutRef.current = setTimeout(() => {
|
|
@@ -86,7 +91,7 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
86
91
|
hideTimeoutRef.current = null;
|
|
87
92
|
}
|
|
88
93
|
doSetVisible(true);
|
|
89
|
-
}, []);
|
|
94
|
+
}, 50), []);
|
|
90
95
|
const prevVisible = (0, usePrevious_1.default)(visible, false);
|
|
91
96
|
ensurePortalElement();
|
|
92
97
|
const onShow = React.useCallback((event) => {
|
|
@@ -17,14 +17,13 @@ export type SelectProps<SelectValue extends unknown, IsMulti extends boolean = f
|
|
|
17
17
|
placeholder?: string;
|
|
18
18
|
'data-name'?: string;
|
|
19
19
|
'data-id'?: string;
|
|
20
|
-
|
|
20
|
+
renderSingleValue?: (option: SelectOption<SelectValue>) => React.ReactNode;
|
|
21
21
|
className?: string;
|
|
22
22
|
isLoding?: boolean;
|
|
23
23
|
onFocus?: () => void;
|
|
24
24
|
accessLevel?: AccessLevel;
|
|
25
25
|
style?: React.CSSProperties;
|
|
26
26
|
onInputChange?: (value: string) => void;
|
|
27
|
-
variant?: 'default' | 'raised';
|
|
28
27
|
size?: 'small' | 'normal';
|
|
29
28
|
isCreatable?: boolean;
|
|
30
29
|
};
|