@adaptabletools/adaptable 12.1.8-canary.1 → 12.2.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 +116 -22
- package/bundle.cjs.js +108 -108
- package/index.css +132 -23
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableOptions/AdaptableQLOptions.d.ts +44 -10
- package/src/AdaptableOptions/LayoutOptions.d.ts +10 -1
- package/src/AdaptableOptions/StateOptions.d.ts +1 -1
- package/src/Api/Implementation/AlertApiImpl.js +1 -2
- package/src/Api/Implementation/InternalApiImpl.d.ts +3 -1
- package/src/Api/Implementation/InternalApiImpl.js +34 -0
- package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +1 -0
- package/src/Api/Implementation/QueryLanguageApiImpl.js +5 -0
- package/src/Api/InternalApi.d.ts +6 -1
- package/src/Api/QueryLanguageApi.d.ts +5 -0
- package/src/Strategy/BulkUpdateModule.d.ts +1 -1
- package/src/Strategy/CalculatedColumnModule.js +1 -1
- package/src/Strategy/QueryModule.js +1 -1
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +0 -13
- package/src/Strategy/Utilities/getExpressionViewItems.d.ts +3 -4
- package/src/Strategy/Utilities/getExpressionViewItems.js +3 -3
- package/src/Strategy/Utilities/getRuleViewItems.js +1 -1
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +2 -0
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +14 -0
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +2 -0
- package/src/Utilities/Services/QueryLanguageService.d.ts +2 -1
- package/src/Utilities/Services/QueryLanguageService.js +45 -19
- package/src/Utilities/Services/ReportService.js +1 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +10 -10
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.d.ts +3 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.js +9 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +14 -15
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.d.ts +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts +7 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +280 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/index.d.ts +1 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/index.js +5 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.d.ts +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +4 -4
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +2 -8
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.d.ts +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +3 -3
- package/src/View/AdaptableWizardView/Wizard.js +2 -2
- package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +0 -1
- package/src/View/CalculatedColumn/CalculatedColumnSummary.js +1 -8
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +4 -3
- package/src/View/Components/AdaptableObjectCollection/index.d.ts +3 -4
- package/src/View/Components/AdaptableObjectCollection/index.js +7 -8
- package/src/View/Components/AdaptableObjectRow/index.js +1 -4
- package/src/View/Components/EntityRulesEditor/index.js +2 -2
- package/src/View/Components/FilterForm/QuickFilterForm.js +9 -1
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.d.ts +1 -0
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +2 -1
- package/src/View/Components/ValueSelector/index.js +8 -19
- package/src/View/CustomSort/CustomSortSummary.js +1 -1
- package/src/View/Dashboard/DashboardPopup.js +11 -10
- package/src/View/Export/ExportViewPanel.js +2 -2
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +4 -3
- package/src/View/Filter/FilterViewPanel.js +3 -2
- package/src/View/GridInfo/AdaptableObjectsSummary.js +5 -3
- package/src/View/GridInfo/AdaptableOptionsComponent.js +1 -1
- package/src/View/GridInfo/GridInfoPopup.js +6 -7
- package/src/View/Query/Wizard/NamedQueryExpressionWizardSection.js +3 -4
- package/src/View/StateManagement/StateManagementPopup.js +18 -19
- package/src/agGrid/Adaptable.d.ts +2 -0
- package/src/agGrid/Adaptable.js +56 -13
- package/src/components/DragAndDropContext/ModuleManager.js +3 -4
- package/src/components/DragAndDropContext/TabList.js +9 -30
- package/src/components/DragAndDropContext/UnusedPanel.js +1 -7
- package/src/components/DropdownButton/index.js +2 -2
- package/src/components/EmptyContent/index.js +2 -2
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -0
- package/src/components/ExpressionEditor/index.js +24 -14
- package/src/metamodel/adaptable.metamodel.d.ts +31 -4
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/parser/src/types.d.ts +14 -10
- package/src/types.d.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/index.css
CHANGED
|
@@ -2544,6 +2544,23 @@ template {
|
|
|
2544
2544
|
--ab-cmp-datepicker__font-family: var(--ab__font-family);
|
|
2545
2545
|
--ab-cmp-datepicker__cell-size: 30px; }
|
|
2546
2546
|
|
|
2547
|
+
:root {
|
|
2548
|
+
--ab-cmp-toggle-button__background: #ccc;
|
|
2549
|
+
--ab-cmp-toggle-button--active__background: var(--ab-color-success);
|
|
2550
|
+
--ab-cmp-toggle-button__font-size: var(--ab-font-size-1);
|
|
2551
|
+
--ab-cmp-toggle-button__color: var(--ab-color-text-on-primary);
|
|
2552
|
+
--ab-cmp-toggle-button--checked__color: var(--ab-color-accentlight); }
|
|
2553
|
+
|
|
2554
|
+
:root {
|
|
2555
|
+
--ab-cmp-module-module-selector__tab-item__border: 1px solid var(--ab-color-primarydark);
|
|
2556
|
+
--ab-cmp-module-module-selector__tab-item__border-radius: var(--ab__border-radius);
|
|
2557
|
+
--ab-cmp-module-module-selector__tab-item__width: 160px;
|
|
2558
|
+
--ab-cmp-module-module-selector__tab-item__header-input__color: var(--ab-color-text-on-primary);
|
|
2559
|
+
--ab-cmp-module-module-selector__toolbar-item__border: 1px solid var(--ab-color-primary);
|
|
2560
|
+
--ab-cmp-module-selector__unused-panel__border: 1px solid var(--ab-color-primarydark);
|
|
2561
|
+
--ab-cmp-module-selector__unused-panel__border-radius: var(--ab__border-radius);
|
|
2562
|
+
--ab-cmp-module-selector__unused-panel__background: var(--ab-color-defaultbackground); }
|
|
2563
|
+
|
|
2547
2564
|
:root {
|
|
2548
2565
|
--ab-cmp-loader__background: var(--ab-color-primarydark);
|
|
2549
2566
|
--ab-cmp-loader__border: var(--ab-color-text-on-primary);
|
|
@@ -2564,6 +2581,10 @@ template {
|
|
|
2564
2581
|
--ab-cmp-icon__height: 17px;
|
|
2565
2582
|
--ab-cmp-icon__width: 17px; }
|
|
2566
2583
|
|
|
2584
|
+
:root {
|
|
2585
|
+
--ab-cmp-listgroupitem__padding: var(--ab-space-2);
|
|
2586
|
+
--ab-cmp-listgroupitem__margin: 0; }
|
|
2587
|
+
|
|
2567
2588
|
:root {
|
|
2568
2589
|
--ab-cmp-wizard__padding: var(--ab-space-5);
|
|
2569
2590
|
--ab-cmp-wizard__margin: var(--ab-space-1);
|
|
@@ -2934,12 +2955,19 @@ template {
|
|
|
2934
2955
|
|
|
2935
2956
|
.ab-DropdownButton {
|
|
2936
2957
|
position: relative;
|
|
2958
|
+
overflow: visible;
|
|
2959
|
+
outline: none;
|
|
2937
2960
|
--ab-overlay-horizontal-align: left; }
|
|
2938
2961
|
|
|
2939
2962
|
.ab-DropdownButton__list {
|
|
2940
2963
|
text-align: start;
|
|
2941
2964
|
padding: var(--ab-space-1) 0;
|
|
2942
|
-
box-shadow: var(--ab-cmp-dropdownbutton-list__box-shadow);
|
|
2965
|
+
box-shadow: var(--ab-cmp-dropdownbutton-list__box-shadow);
|
|
2966
|
+
overflow: auto;
|
|
2967
|
+
border: var(--ab-cmp-dropdownbutton-list__border);
|
|
2968
|
+
borderradius: var(--ab-cmp-dropdownbutton-list__border-radius);
|
|
2969
|
+
zindex: var(--ab-cmp-dropdownbutton-list__z-index);
|
|
2970
|
+
background: var(--ab-cmp-dropdownbutton-list__background); }
|
|
2943
2971
|
|
|
2944
2972
|
.ab-DropdownButton__content {
|
|
2945
2973
|
font-family: var(--ab__font-family);
|
|
@@ -2971,11 +2999,23 @@ template {
|
|
|
2971
2999
|
border-bottom: var(--ab-cmp-dropdownbutton-list-separator__border); }
|
|
2972
3000
|
|
|
2973
3001
|
.ab-EmptyContent {
|
|
2974
|
-
|
|
3002
|
+
position: absolute;
|
|
3003
|
+
top: 0;
|
|
3004
|
+
bottom: 0;
|
|
3005
|
+
left: 0;
|
|
3006
|
+
right: 0;
|
|
3007
|
+
font-size: var(--ab-font-size-3);
|
|
3008
|
+
text-align: center;
|
|
3009
|
+
padding: var(--ab-space-4); }
|
|
2975
3010
|
|
|
2976
3011
|
.ab-EmptyContent p {
|
|
2977
3012
|
color: var(--ab-color-text-on-primary); }
|
|
2978
3013
|
|
|
3014
|
+
.ab-EmptyContent__wrapper {
|
|
3015
|
+
position: relative;
|
|
3016
|
+
width: 100%;
|
|
3017
|
+
height: 100%; }
|
|
3018
|
+
|
|
2979
3019
|
.ab-ErrorBox {
|
|
2980
3020
|
padding: var(--ab-cmp-error-box__padding);
|
|
2981
3021
|
border-radius: var(--ab-cmp-error-box__border-radius);
|
|
@@ -3692,13 +3732,6 @@ input[type='number'].ab-Input:hover::-webkit-inner-spin-button:active {
|
|
|
3692
3732
|
.ab-Datepicker-Overlay .rdp.rdp-with_weeknumber .rdp-row td:nth-child(8) {
|
|
3693
3733
|
display: table-cell; }
|
|
3694
3734
|
|
|
3695
|
-
:root {
|
|
3696
|
-
--ab-cmp-toggle-button__background: #ccc;
|
|
3697
|
-
--ab-cmp-toggle-button--active__background: var(--ab-color-success);
|
|
3698
|
-
--ab-cmp-toggle-button__font-size: var(--ab-font-size-1);
|
|
3699
|
-
--ab-cmp-toggle-button__color: var(--ab-color-text-on-primary);
|
|
3700
|
-
--ab-cmp-toggle-button--checked__color: var(--ab-color-accentlight); }
|
|
3701
|
-
|
|
3702
3735
|
.ab-ToggleButton {
|
|
3703
3736
|
position: relative;
|
|
3704
3737
|
display: inline-block;
|
|
@@ -3825,6 +3858,49 @@ input[type='number'].ab-Input:hover::-webkit-inner-spin-button:active {
|
|
|
3825
3858
|
font-size: var(--ab-cmp-Tag__font-size);
|
|
3826
3859
|
max-width: 100%; }
|
|
3827
3860
|
|
|
3861
|
+
.ab-ModuleSelector__TabItem {
|
|
3862
|
+
display: flex;
|
|
3863
|
+
flex-direction: column;
|
|
3864
|
+
box-sizing: border-box;
|
|
3865
|
+
margin-right: var(--ab-space-2);
|
|
3866
|
+
width: var(--ab-cmp-module-module-selector__tab-item__width);
|
|
3867
|
+
border: var(--ab-cmp-module-module-selector__tab-item__border);
|
|
3868
|
+
border-radius: var(--ab-cmp-module-module-selector__tab-item__border-radius); }
|
|
3869
|
+
|
|
3870
|
+
.ab-ModuleSelector__TabItem__header {
|
|
3871
|
+
display: flex;
|
|
3872
|
+
align-items: center;
|
|
3873
|
+
padding: var(--ab-space-1);
|
|
3874
|
+
border-bottom: var(--ab-cmp-module-module-selector__tab-item__border); }
|
|
3875
|
+
|
|
3876
|
+
.ab-ModuleSelector__TabItem__header-input {
|
|
3877
|
+
flex: 1;
|
|
3878
|
+
width: 100%;
|
|
3879
|
+
margin-left: var(--ab-space-1);
|
|
3880
|
+
margin-right: var(--ab-space-1);
|
|
3881
|
+
align-self: stretch;
|
|
3882
|
+
background: transparent;
|
|
3883
|
+
border: none;
|
|
3884
|
+
color: var(--ab-cmp-module-module-selector__tab-item__header-input__color); }
|
|
3885
|
+
|
|
3886
|
+
.ab-ModuleSelector__ToolbarList {
|
|
3887
|
+
flex: 1;
|
|
3888
|
+
padding: 4px;
|
|
3889
|
+
padding-bottom: 0;
|
|
3890
|
+
min-height: 200px; }
|
|
3891
|
+
|
|
3892
|
+
.ab-ModuleSelector__ToolbarItem {
|
|
3893
|
+
border: var(--ab-cmp-module-module-selector__toolbar-item__border);
|
|
3894
|
+
padding-left: var(--ab-space-1);
|
|
3895
|
+
margin-bottom: var(--ab-space-1); }
|
|
3896
|
+
|
|
3897
|
+
.ab-ModuleSelector__UnusedPanel {
|
|
3898
|
+
margin-bottom: var(--ab-space-2);
|
|
3899
|
+
padding-bottom: var(--ab-space-1);
|
|
3900
|
+
border: var(--ab-cmp-module-selector__unused-panel__border);
|
|
3901
|
+
border-radius: var(--ab-cmp-module-selector__unused-panel__border-radius);
|
|
3902
|
+
background-color: var(--ab-cmp-module-selector__unused-panel__background); }
|
|
3903
|
+
|
|
3828
3904
|
.ab-AdaptableOptions {
|
|
3829
3905
|
background: var(--ab-cmp-adaptable-options__background-color); }
|
|
3830
3906
|
|
|
@@ -3846,6 +3922,9 @@ input[type='number'].ab-Input:hover::-webkit-inner-spin-button:active {
|
|
|
3846
3922
|
color: var(--ab-cmp-listgroupitem--odd__color); }
|
|
3847
3923
|
|
|
3848
3924
|
.ab-AdaptableObjectRow {
|
|
3925
|
+
align-items: center;
|
|
3926
|
+
padding: var(--ab-cmp-listgroupitem__padding);
|
|
3927
|
+
margin: var(--ab-cmp-listgroupitem__margin);
|
|
3849
3928
|
background: var(--ab-cmp-listgroupitem__background);
|
|
3850
3929
|
color: var(--ab-cmp-listgroupitem__color);
|
|
3851
3930
|
border-radius: var(--ab-cmp-listgroupitem__border-radius); }
|
|
@@ -3912,19 +3991,24 @@ html.ab--theme-dark .ab-ListBoxFilterForm--aggrid-style {
|
|
|
3912
3991
|
bottom: -10px;
|
|
3913
3992
|
transform: translate3d(-5px, 0px, 0px); }
|
|
3914
3993
|
|
|
3915
|
-
.ab-
|
|
3994
|
+
.ab-NocodeWizard {
|
|
3916
3995
|
padding: var(--ab-cmp-wizard__padding);
|
|
3917
3996
|
margin: var(--ab-cmp-wizard__margin);
|
|
3918
3997
|
background: var(--ab-cmp-wizard__background);
|
|
3919
3998
|
color: var(--ab-cmp-wizard__color);
|
|
3920
3999
|
height: 100%; }
|
|
3921
4000
|
|
|
3922
|
-
.ab-
|
|
3923
|
-
.ab-
|
|
3924
|
-
.ab-
|
|
3925
|
-
.ab-
|
|
4001
|
+
.ab-NocodeWizard,
|
|
4002
|
+
.ab-NocodeWizard *,
|
|
4003
|
+
.ab-NocodeWizard *:before,
|
|
4004
|
+
.ab-NocodeWizard *:after {
|
|
3926
4005
|
box-sizing: border-box; }
|
|
3927
4006
|
|
|
4007
|
+
.ab-NocodeWizardFormBox {
|
|
4008
|
+
border: 1px solid var(--ab-color-primarydark);
|
|
4009
|
+
border-radius: var(--ab__border-radius);
|
|
4010
|
+
background-color: var(--ab-color-defaultbackground); }
|
|
4011
|
+
|
|
3928
4012
|
.ab-AvailableDropZone .placeholder,
|
|
3929
4013
|
.ab-SelectedDropZone .placeholder {
|
|
3930
4014
|
width: 100%; }
|
|
@@ -4065,20 +4149,23 @@ html.ab--theme-dark .ab-ListBoxFilterForm--aggrid-style {
|
|
|
4065
4149
|
padding: var(--ab-cmp-adaptable-popup--settings__padding);
|
|
4066
4150
|
min-width: 0; }
|
|
4067
4151
|
|
|
4152
|
+
.ab-Adaptable-Popup__Panel {
|
|
4153
|
+
width: 100%; }
|
|
4154
|
+
|
|
4068
4155
|
.ab-Adaptable-Popup__Panel__Header {
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4156
|
+
display: flex;
|
|
4157
|
+
padding: 0 var(--ab-cmp-adaptable-popup-panel__padding);
|
|
4158
|
+
margin-bottom: var(--ab-cmp-adaptable-popup-panel__margin-bottom);
|
|
4159
|
+
margin-top: var(--ab-cmp-adaptable-popup-panel__margin-top); }
|
|
4073
4160
|
|
|
4074
4161
|
.ab-Adaptable-Popup__Panel__Header__Title {
|
|
4075
|
-
|
|
4162
|
+
font-size: var(--ab-cmp-adaptable-popup-panel-title__font-size); }
|
|
4076
4163
|
|
|
4077
4164
|
.ab-Adaptable-Popup__Panel__Body {
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4165
|
+
padding: var(--ab-cmp-adaptable-popup-panel-body__padding);
|
|
4166
|
+
flex: 1 1 0;
|
|
4167
|
+
min-height: 0;
|
|
4168
|
+
overflow: auto; }
|
|
4082
4169
|
|
|
4083
4170
|
.ab-Adaptable-Popup--window .ab-Adaptable-Popup__TopBar {
|
|
4084
4171
|
cursor: move; }
|
|
@@ -4211,6 +4298,28 @@ button.ab-StatusBar__SubPanel:hover {
|
|
|
4211
4298
|
--ab-cmp-adaptable-permitted-values-selector__background-color: var(--ab-color-defaultbackground);
|
|
4212
4299
|
--ab-cmp-adaptable-permitted-values-selector__padding: var(--ab-space-1); }
|
|
4213
4300
|
|
|
4301
|
+
.ab-ValueSelector {
|
|
4302
|
+
overflow: hidden; }
|
|
4303
|
+
|
|
4304
|
+
.ab-ValueSelector__option {
|
|
4305
|
+
border-radius: 'var(--ab__border-radius)'; }
|
|
4306
|
+
|
|
4307
|
+
.ab-ValueSelector__show-selected-only-checkbox {
|
|
4308
|
+
position: sticky;
|
|
4309
|
+
top: 0;
|
|
4310
|
+
z-index: 10000; }
|
|
4311
|
+
|
|
4312
|
+
.ab-ValueSelector__show-selected-only-checkbox__text {
|
|
4313
|
+
position: absolute;
|
|
4314
|
+
top: 2px;
|
|
4315
|
+
right: 4px;
|
|
4316
|
+
overflow: hidden;
|
|
4317
|
+
border-radius: var(--ab__border-radius);
|
|
4318
|
+
margin-right: var(--ab-space-1);
|
|
4319
|
+
margin-top: var(--ab-space-1);
|
|
4320
|
+
padding: 0 var(--ab-space-2);
|
|
4321
|
+
font-size: var(--ab-font-size-2); }
|
|
4322
|
+
|
|
4214
4323
|
.ab-alert--error {
|
|
4215
4324
|
background: var(--ab-color-error); }
|
|
4216
4325
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.2.0-canary.0",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
package/publishTimestamp.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: 1661462273542;
|
|
2
2
|
export default _default;
|
package/publishTimestamp.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ExpressionFunctionMap } from '../parser/src/types';
|
|
2
2
|
import { AdaptablePredicateDef } from '../PredefinedConfig/Common/AdaptablePredicate';
|
|
3
|
-
import { AdaptableModule, AdaptableQLModules } from '../PredefinedConfig/Common/Types';
|
|
3
|
+
import { AdaptableModule, AdaptableQLModule, AdaptableQLModules } from '../PredefinedConfig/Common/Types';
|
|
4
|
+
import { BaseContext } from '../PredefinedConfig/Common/BaseContext';
|
|
5
|
+
import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
|
|
4
6
|
/**
|
|
5
|
-
* Options for managing AdaptableQL - the Adaptable Query
|
|
7
|
+
* Options for managing AdaptableQL - the Adaptable Query Language which evaluates Predicates and Expressions
|
|
6
8
|
*/
|
|
7
9
|
export interface AdaptableQLOptions {
|
|
8
10
|
/**
|
|
@@ -17,10 +19,15 @@ export interface AdaptableQLOptions {
|
|
|
17
19
|
*
|
|
18
20
|
* @defaultValue undefined
|
|
19
21
|
* @gridInfoItem
|
|
22
|
+
* @deprecated use `evaluateExpressionExternally()` instead
|
|
20
23
|
*/
|
|
21
24
|
externallyEvaluatedModules?: AdaptableQLModules;
|
|
22
25
|
/**
|
|
23
|
-
*
|
|
26
|
+
* Whether a specific expression (or all expressions in a given module) must be evaluated on the server
|
|
27
|
+
*/
|
|
28
|
+
evaluateExpressionExternally?: (context: EvaluateExpressionExternallyContext) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Options for managing Expressions in AdaptableQL
|
|
24
31
|
*
|
|
25
32
|
*/
|
|
26
33
|
expressionOptions?: ExpressionOptions;
|
|
@@ -28,41 +35,47 @@ export interface AdaptableQLOptions {
|
|
|
28
35
|
* Definitions for Custom provided Predicates
|
|
29
36
|
*/
|
|
30
37
|
customPredicateDefs?: AdaptablePredicateDef[];
|
|
38
|
+
/**
|
|
39
|
+
* Whether to display the column friendly names in all expression overviews (instead of their technical IDs)
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue true
|
|
42
|
+
*/
|
|
43
|
+
displayColumnFriendlyNamesForExpressions?: boolean;
|
|
31
44
|
}
|
|
32
45
|
/**
|
|
33
|
-
* Options for managing Expressions using
|
|
46
|
+
* Options for managing Expressions using AdaptableQL
|
|
34
47
|
*/
|
|
35
48
|
export interface ExpressionOptions {
|
|
36
49
|
/**
|
|
37
|
-
* Boolean Expression Functions available in
|
|
50
|
+
* Boolean Expression Functions available in AdaptableQL
|
|
38
51
|
*
|
|
39
52
|
* @defaultValue null (sets all)
|
|
40
53
|
* @gridInfoItem
|
|
41
54
|
*/
|
|
42
55
|
defaultBooleanFunctions?: ExpressionFunctionMap;
|
|
43
56
|
/**
|
|
44
|
-
* Scalar Expression Functions available in
|
|
57
|
+
* Scalar Expression Functions available in AdaptableQL
|
|
45
58
|
*
|
|
46
59
|
* @defaultValue null (sets all)
|
|
47
60
|
* @gridInfoItem
|
|
48
61
|
*/
|
|
49
62
|
defaultScalarFunctions?: ExpressionFunctionMap;
|
|
50
63
|
/**
|
|
51
|
-
* Observable Expression Functions available in
|
|
64
|
+
* Observable Expression Functions available in AdaptableQL
|
|
52
65
|
*
|
|
53
66
|
* @defaultValue null (sets all)
|
|
54
67
|
* @gridInfoItem
|
|
55
68
|
*/
|
|
56
69
|
defaultObservableFunctions?: ExpressionFunctionMap;
|
|
57
70
|
/**
|
|
58
|
-
* Aggregated Boolean Expression Functions available in
|
|
71
|
+
* Aggregated Boolean Expression Functions available in AdaptableQL
|
|
59
72
|
*
|
|
60
73
|
* @defaultValue null (sets all)
|
|
61
74
|
* @gridInfoItem
|
|
62
75
|
*/
|
|
63
76
|
defaultAggregatedBooleanFunctions?: ExpressionFunctionMap;
|
|
64
77
|
/**
|
|
65
|
-
* Aggregated Scalar Expression Functions available in
|
|
78
|
+
* Aggregated Scalar Expression Functions available in AdaptableQL
|
|
66
79
|
*
|
|
67
80
|
* @defaultValue null (sets all)
|
|
68
81
|
* @gridInfoItem
|
|
@@ -78,7 +91,7 @@ export interface ExpressionOptions {
|
|
|
78
91
|
[module in AdaptableModule]?: ModuleExpressionFunctions;
|
|
79
92
|
};
|
|
80
93
|
/**
|
|
81
|
-
* Columns that can be included in
|
|
94
|
+
* Columns that can be included in AdaptableQL Expressions; leave unset to include **ALL**, provide empty array to set **NONE**
|
|
82
95
|
*
|
|
83
96
|
* @defaultValue undefined
|
|
84
97
|
* @gridInfoItem
|
|
@@ -98,6 +111,10 @@ export interface ExpressionOptions {
|
|
|
98
111
|
* @gridInfoItem
|
|
99
112
|
*/
|
|
100
113
|
maxTimeframeSize?: number;
|
|
114
|
+
/**
|
|
115
|
+
* Custom query variables allow values to be attached to variables so that a single value can easily be expressed multiple times within a query, or quickly changed to affect the results of a query. Variables are evaluated synchronously with each expression evaluation.
|
|
116
|
+
*/
|
|
117
|
+
customQueryVariable?: Record<string, string | number | boolean | Date | ((context: CustomQueryVariableContext) => string | number | boolean | Date)>;
|
|
101
118
|
}
|
|
102
119
|
/**
|
|
103
120
|
* Module specific Expression Functions
|
|
@@ -109,3 +126,20 @@ export interface ModuleExpressionFunctions {
|
|
|
109
126
|
aggregatedBooleanFunctions?: ExpressionFunctionMap;
|
|
110
127
|
aggregatedScalarFunctions?: ExpressionFunctionMap;
|
|
111
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Context passed when evaluating `ExpressionOptions.customQueryVariable`
|
|
131
|
+
*/
|
|
132
|
+
export interface CustomQueryVariableContext extends BaseContext {
|
|
133
|
+
/**
|
|
134
|
+
* Optional variable arguments
|
|
135
|
+
*/
|
|
136
|
+
args?: any[];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Context passed when evaluating `AdaptableQLOptions.evaluateExpressionExternally()`
|
|
140
|
+
*/
|
|
141
|
+
export interface EvaluateExpressionExternallyContext extends BaseContext {
|
|
142
|
+
module: AdaptableQLModule;
|
|
143
|
+
expression?: string;
|
|
144
|
+
referencedColumns?: AdaptableColumn[];
|
|
145
|
+
}
|
|
@@ -9,7 +9,8 @@ import { BaseSchedule } from '../PredefinedConfig/Common/Schedule';
|
|
|
9
9
|
import { Layout } from '../PredefinedConfig/LayoutState';
|
|
10
10
|
import { AdaptableModule } from '../PredefinedConfig/Common/Types';
|
|
11
11
|
import { AdaptableObjectTag } from '../PredefinedConfig/Common/AdaptableObject';
|
|
12
|
-
import { BaseContext } from '../../types';
|
|
12
|
+
import { AdaptableColumn, BaseContext } from '../../types';
|
|
13
|
+
import { KeyCreatorParams } from '@ag-grid-community/all-modules';
|
|
13
14
|
/**
|
|
14
15
|
* Options for configuring Layouts; these manage Column visibility, order, sorting, grouping and width
|
|
15
16
|
*
|
|
@@ -64,6 +65,10 @@ export interface LayoutOptions {
|
|
|
64
65
|
* Options for leveraging Object Tags to extend Layouts
|
|
65
66
|
*/
|
|
66
67
|
layoutTagOptions?: LayoutTagOptions;
|
|
68
|
+
/**
|
|
69
|
+
* When defined ungrouped rows are grouped under this key.
|
|
70
|
+
*/
|
|
71
|
+
groupUnbalancedGroupsUnderKey?: string | ((context: GroupUnbalancedGroupsUnderKeyContext) => string);
|
|
67
72
|
}
|
|
68
73
|
export interface LayoutTagOptions {
|
|
69
74
|
/**
|
|
@@ -130,3 +135,7 @@ export interface AutoGenerateTagsForLayoutsContext extends BaseContext {
|
|
|
130
135
|
*/
|
|
131
136
|
objectTags: AdaptableObjectTag[];
|
|
132
137
|
}
|
|
138
|
+
export interface GroupUnbalancedGroupsUnderKeyContext extends BaseContext {
|
|
139
|
+
adaptableColumn: AdaptableColumn;
|
|
140
|
+
params: KeyCreatorParams;
|
|
141
|
+
}
|
|
@@ -313,10 +313,9 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
|
|
|
313
313
|
return scopeDescription + ' - ' + ruleDescription;
|
|
314
314
|
}
|
|
315
315
|
getAlertRuleDescription(alert) {
|
|
316
|
-
var _a, _b;
|
|
317
316
|
let ruleDescription = alert.Rule.Predicate
|
|
318
317
|
? this.adaptable.api.predicateApi.predicateToString(alert.Rule.Predicate)
|
|
319
|
-
:
|
|
318
|
+
: this.adaptable.api.internalApi.getAdaptableQueryExpressionText(alert.Rule);
|
|
320
319
|
return ruleDescription;
|
|
321
320
|
}
|
|
322
321
|
}
|
|
@@ -11,7 +11,7 @@ import { SelectedRowInfo } from '../../PredefinedConfig/Selection/SelectedRowInf
|
|
|
11
11
|
import { AdaptableModule, AdaptableQLModule } from '../../PredefinedConfig/Common/Types';
|
|
12
12
|
import { GridCell } from '../../PredefinedConfig/Selection/GridCell';
|
|
13
13
|
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
|
|
14
|
-
import { AdaptableCellChangedAlert, AdaptableOptions, AdaptableRowChangedAlert, AdaptableState, AlertFormContext, BaseContext, Layout, LayoutAssociatedObject, SystemStatusMessageInfo, SharedEntity, AdaptableIcon } from '../../types';
|
|
14
|
+
import { AdaptableCellChangedAlert, AdaptableOptions, AdaptableRowChangedAlert, AdaptableState, AlertFormContext, BaseContext, Layout, LayoutAssociatedObject, SystemStatusMessageInfo, SharedEntity, AdaptableIcon, AdaptableQuery } from '../../types';
|
|
15
15
|
import { IValidationService } from '../../Utilities/Services/Interface/IValidationService';
|
|
16
16
|
import { IModuleService } from '../../Utilities/Services/Interface/IModuleService';
|
|
17
17
|
import { IReportService } from '../../Utilities/Services/Interface/IReportService';
|
|
@@ -102,6 +102,7 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
|
|
|
102
102
|
getModules(): IModuleCollection;
|
|
103
103
|
getModuleFriendlyName(adaptableModule: AdaptableModule): string;
|
|
104
104
|
runModuleInAdaptableQL(adaptableQLModule: AdaptableQLModule): boolean;
|
|
105
|
+
evaluateExpressionInAdaptableQL(module: AdaptableQLModule, expression?: string): boolean;
|
|
105
106
|
forAllRowNodesDo(func: (rowNode: RowNode) => void): void;
|
|
106
107
|
forAllVisibleRowNodesDo(func: (rowNode: RowNode) => void): void;
|
|
107
108
|
buildStandaloneColumnHeader(column: AdaptableColumn): AdaptableMenuItem[];
|
|
@@ -140,4 +141,5 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
|
|
|
140
141
|
getLabelForTag(adaptableObjectTag: AdaptableObjectTag): string;
|
|
141
142
|
getValueForTag(adaptableObjectTag: AdaptableObjectTag): string | number;
|
|
142
143
|
getEditLookUpValuesForColumn(editLookUpItem: EditLookUpPermittedValues, column: AdaptableColumn, gridCell?: GridCell): any[] | undefined;
|
|
144
|
+
getAdaptableQueryExpressionText(query: Partial<AdaptableQuery>): string;
|
|
143
145
|
}
|
|
@@ -299,6 +299,30 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
|
|
|
299
299
|
const adaptableQLModules = this.getAdaptableQLOptions().externallyEvaluatedModules;
|
|
300
300
|
return !adaptableQLModules.includes(adaptableQLModule);
|
|
301
301
|
}
|
|
302
|
+
evaluateExpressionInAdaptableQL(module, expression) {
|
|
303
|
+
var _a;
|
|
304
|
+
// temporary, until `externallyEvaluatedModules` is removed completely
|
|
305
|
+
const externallyEvaluatedModules = this.getAdaptableQLOptions().externallyEvaluatedModules;
|
|
306
|
+
if (externallyEvaluatedModules === null || externallyEvaluatedModules === void 0 ? void 0 : externallyEvaluatedModules.length) {
|
|
307
|
+
// fallback to deprecated property
|
|
308
|
+
return this.runModuleInAdaptableQL(module);
|
|
309
|
+
}
|
|
310
|
+
const evaluateExpressionExternallyFn = (_a = this.getAdaptableQLOptions()) === null || _a === void 0 ? void 0 : _a.evaluateExpressionExternally;
|
|
311
|
+
if (typeof evaluateExpressionExternallyFn !== 'function') {
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
const context = {
|
|
315
|
+
adaptableApi: this.getAdaptableApi(),
|
|
316
|
+
module,
|
|
317
|
+
};
|
|
318
|
+
if (expression) {
|
|
319
|
+
context.expression = expression;
|
|
320
|
+
context.referencedColumns = this.getAdaptableApi()
|
|
321
|
+
.queryLanguageApi.getColumnsFromExpression(expression)
|
|
322
|
+
.map((columnId) => this.getAdaptableApi().columnApi.getColumnFromId(columnId));
|
|
323
|
+
}
|
|
324
|
+
return evaluateExpressionExternallyFn(context);
|
|
325
|
+
}
|
|
302
326
|
forAllRowNodesDo(func) {
|
|
303
327
|
this.adaptable.forAllRowNodesDo(func);
|
|
304
328
|
}
|
|
@@ -616,5 +640,15 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
|
|
|
616
640
|
// this will use the columnApi method that first looks for permitted values and then distinct values
|
|
617
641
|
return this.adaptable.api.columnApi.getDistinctDisplayValuesForColumn(column.columnId);
|
|
618
642
|
}
|
|
643
|
+
getAdaptableQueryExpressionText(query) {
|
|
644
|
+
var _a;
|
|
645
|
+
if (!query) {
|
|
646
|
+
return '';
|
|
647
|
+
}
|
|
648
|
+
const displayColumnFriendlyNames = (_a = this.adaptable.adaptableOptions.adaptableQLOptions) === null || _a === void 0 ? void 0 : _a.displayColumnFriendlyNamesForExpressions;
|
|
649
|
+
return displayColumnFriendlyNames
|
|
650
|
+
? this.adaptable.api.queryLanguageApi.getAdaptableQueryExpressionWithColumnFriendlyNames(query)
|
|
651
|
+
: this.adaptable.api.queryLanguageApi.getAdaptableQueryExpression(query);
|
|
652
|
+
}
|
|
619
653
|
}
|
|
620
654
|
exports.InternalApiImpl = InternalApiImpl;
|
|
@@ -13,4 +13,5 @@ export declare class QueryLanguageApiImpl extends ApiBase implements QueryLangua
|
|
|
13
13
|
getQueryableColumnIds(): string[] | undefined;
|
|
14
14
|
getModuleExpressionFunctionMap(): ExpressionFunctionMap;
|
|
15
15
|
getAdaptableQueryExpression(query: Partial<AdaptableQuery>): string | undefined;
|
|
16
|
+
getAdaptableQueryExpressionWithColumnFriendlyNames(query: Partial<AdaptableQuery>): string | undefined;
|
|
16
17
|
}
|
|
@@ -90,5 +90,10 @@ class QueryLanguageApiImpl extends ApiBase_1.ApiBase {
|
|
|
90
90
|
var _a, _b, _c, _d;
|
|
91
91
|
return ((_d = (_c = (_b = (_a = query.BooleanExpression) !== null && _a !== void 0 ? _a : query.ScalarExpression) !== null && _b !== void 0 ? _b : query.ObservableExpression) !== null && _c !== void 0 ? _c : query.AggregatedBooleanExpression) !== null && _d !== void 0 ? _d : query.AggregatedScalarExpression);
|
|
92
92
|
}
|
|
93
|
+
getAdaptableQueryExpressionWithColumnFriendlyNames(query) {
|
|
94
|
+
return this.adaptable.api.internalApi
|
|
95
|
+
.getQueryLanguageService()
|
|
96
|
+
.getExpressionWithColumnFriendlyNames(this.getAdaptableQueryExpression(query));
|
|
97
|
+
}
|
|
93
98
|
}
|
|
94
99
|
exports.QueryLanguageApiImpl = QueryLanguageApiImpl;
|
package/src/Api/InternalApi.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
|
|
|
17
17
|
import { Layout } from '../PredefinedConfig/LayoutState';
|
|
18
18
|
import { AdaptableAlert, AdaptableCellChangedAlert, AdaptableRowChangedAlert } from '../PredefinedConfig/Common/AdaptableAlert';
|
|
19
19
|
import { IDataService } from '../Utilities/Services/Interface/IDataService';
|
|
20
|
-
import { AdaptableIcon, AdaptableMessageType, AlertDefinition, BaseContext, CellDataChangedInfo, EditLookUpPermittedValues, LayoutAssociatedObject, SharedEntity, SystemStatusMessageInfo } from '../types';
|
|
20
|
+
import { AdaptableIcon, AdaptableMessageType, AdaptableQuery, AlertDefinition, BaseContext, CellDataChangedInfo, EditLookUpPermittedValues, LayoutAssociatedObject, SharedEntity, SystemStatusMessageInfo } from '../types';
|
|
21
21
|
import { IEntitlementService } from '../Utilities/Services/Interface/IEntitlementService';
|
|
22
22
|
import { AdaptableFlashingCell } from '../PredefinedConfig/Common/AdaptableFlashingCell';
|
|
23
23
|
import { IQueryLanguageService } from '../Utilities/Services/Interface/IQueryLanguageService';
|
|
@@ -104,7 +104,11 @@ export interface InternalApi {
|
|
|
104
104
|
getRowEditService(): IRowEditService;
|
|
105
105
|
getModules(): IModuleCollection;
|
|
106
106
|
getModuleFriendlyName(adaptableModule: AdaptableModule): string;
|
|
107
|
+
/**
|
|
108
|
+
* @deprecated use `evaluateExpressionInAdaptableQL()` instead
|
|
109
|
+
*/
|
|
107
110
|
runModuleInAdaptableQL(adaptableQLModule: AdaptableQLModule): boolean;
|
|
111
|
+
evaluateExpressionInAdaptableQL(adaptableQLModule: AdaptableQLModule, expression?: string): boolean;
|
|
108
112
|
forAllRowNodesDo(func: (rowNode: RowNode) => void): void;
|
|
109
113
|
forAllVisibleRowNodesDo(func: (rowNode: RowNode) => void): void;
|
|
110
114
|
buildStandaloneColumnHeader(column: AdaptableColumn): AdaptableMenuItem[];
|
|
@@ -139,4 +143,5 @@ export interface InternalApi {
|
|
|
139
143
|
getLabelForTag(adaptableObjectTag: AdaptableObjectTag): string;
|
|
140
144
|
getValueForTag(adaptableObjectTag: AdaptableObjectTag): string | number;
|
|
141
145
|
getEditLookUpValuesForColumn(editLookUpItem: EditLookUpPermittedValues, column: AdaptableColumn, gridCell?: GridCell): any[] | undefined;
|
|
146
|
+
getAdaptableQueryExpressionText(query: Partial<AdaptableQuery>): string;
|
|
142
147
|
}
|
|
@@ -56,4 +56,9 @@ export interface QueryLanguageApi {
|
|
|
56
56
|
* @param query - the AdaptableQuery
|
|
57
57
|
*/
|
|
58
58
|
getAdaptableQueryExpression(query: Partial<AdaptableQuery>): string | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the Expression string of the given AdaptableQuery with the column friendly names (instead of their technical IDs)
|
|
61
|
+
* @param query - the AdaptableQuery
|
|
62
|
+
*/
|
|
63
|
+
getAdaptableQueryExpressionWithColumnFriendlyNames(query: Partial<AdaptableQuery>): string | undefined;
|
|
59
64
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdaptableModuleBase } from './AdaptableModuleBase';
|
|
2
|
-
import {
|
|
2
|
+
import { BulkUpdateValidationResult, IBulkUpdateModule } from './Interface/IBulkUpdateModule';
|
|
3
3
|
import { PreviewInfo } from '../Utilities/Interface/Preview';
|
|
4
4
|
import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
|
|
5
5
|
import { AccessLevel, AdaptableApi } from '../types';
|
|
@@ -81,7 +81,7 @@ class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
81
81
|
label: 'Column Name',
|
|
82
82
|
values: [calculateColumn.FriendlyName],
|
|
83
83
|
},
|
|
84
|
-
getExpressionViewItems_1.getExpressionViewItems(calculateColumn.Query),
|
|
84
|
+
getExpressionViewItems_1.getExpressionViewItems(calculateColumn.Query, this.api),
|
|
85
85
|
].filter(Boolean);
|
|
86
86
|
if (ArrayExtensions_1.default.IsNotNullOrEmpty(settingsTags)) {
|
|
87
87
|
items.push({
|
|
@@ -38,7 +38,7 @@ class QueryModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
name: 'Expression',
|
|
41
|
-
values: [query
|
|
41
|
+
values: [this.api.internalApi.getAdaptableQueryExpressionText(query)],
|
|
42
42
|
},
|
|
43
43
|
getObjectTagsViewItems_1.getObjectTagsViewItems(query, this.api),
|
|
44
44
|
],
|
|
@@ -2,19 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getExportRowsViewItems = void 0;
|
|
4
4
|
const getExportRowsViewItems = (report, api) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const values = [];
|
|
7
|
-
switch (report.ReportRowScope) {
|
|
8
|
-
case 'AllRows':
|
|
9
|
-
values.push('All Rows');
|
|
10
|
-
break;
|
|
11
|
-
case 'VisibleRows':
|
|
12
|
-
values.push('Visible Rows');
|
|
13
|
-
break;
|
|
14
|
-
case 'ExpressionRows':
|
|
15
|
-
values.push((_a = report.Query) === null || _a === void 0 ? void 0 : _a.BooleanExpression);
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
5
|
return {
|
|
19
6
|
name: 'Rows',
|
|
20
7
|
values: [
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AdaptableCalculatedColumnQuery } from '../../PredefinedConfig/CalculatedColumnState';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
2
|
+
import { AdaptableApi } from '../../Api/AdaptableApi';
|
|
3
|
+
import { AdaptableObjectItemView } from '../Interface/IModule';
|
|
4
|
+
export declare const getExpressionViewItems: (query: AdaptableCalculatedColumnQuery, api: AdaptableApi) => AdaptableObjectItemView;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getExpressionViewItems = void 0;
|
|
4
|
-
const getExpressionViewItems = (query) => {
|
|
5
|
-
|
|
4
|
+
const getExpressionViewItems = (query, api) => {
|
|
5
|
+
const expressionText = api.internalApi.getAdaptableQueryExpressionText(query);
|
|
6
6
|
return {
|
|
7
7
|
name: 'Expression',
|
|
8
|
-
values: [
|
|
8
|
+
values: [expressionText],
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
exports.getExpressionViewItems = getExpressionViewItems;
|