d2aura 23.0.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/api/abstractApi.d.ts +21 -0
- package/api/abstractApi.js +56 -0
- package/api/abstractApi.js.map +1 -0
- package/api/abstractEntityApi.d.ts +37 -0
- package/api/abstractEntityApi.js +145 -0
- package/api/abstractEntityApi.js.map +1 -0
- package/api/advancedFilterApi.d.ts +56 -0
- package/api/advancedFilterApi.js +108 -0
- package/api/advancedFilterApi.js.map +1 -0
- package/api/archiveApi.d.ts +14 -0
- package/api/archiveApi.js +25 -0
- package/api/archiveApi.js.map +1 -0
- package/api/comparison/entityComparisonUtils.d.ts +4 -0
- package/api/comparison/entityComparisonUtils.js +15 -0
- package/api/comparison/entityComparisonUtils.js.map +1 -0
- package/api/constants/constants.d.ts +5 -0
- package/api/constants/constants.js +6 -0
- package/api/constants/constants.js.map +1 -0
- package/api/constants/d2ChartConstants.d.ts +5 -0
- package/api/constants/d2ChartConstants.js +6 -0
- package/api/constants/d2ChartConstants.js.map +1 -0
- package/api/edaApi.d.ts +36 -0
- package/api/edaApi.js +109 -0
- package/api/edaApi.js.map +1 -0
- package/api/impl/errorHandling.d.ts +1 -0
- package/api/impl/errorHandling.js +72 -0
- package/api/impl/errorHandling.js.map +1 -0
- package/api/impl/utils/reportError.d.ts +2 -0
- package/api/impl/utils/reportError.js +157 -0
- package/api/impl/utils/reportError.js.map +1 -0
- package/api/impl/utils/reportServiceMessage.d.ts +1 -0
- package/api/impl/utils/reportServiceMessage.js +29 -0
- package/api/impl/utils/reportServiceMessage.js.map +1 -0
- package/api/types/accessRight.d.ts +5 -0
- package/api/types/accessRight.js +7 -0
- package/api/types/accessRight.js.map +1 -0
- package/api/types/advancedFilter.d.ts +22 -0
- package/api/types/advancedFilter.js +16 -0
- package/api/types/advancedFilter.js.map +1 -0
- package/api/types/apiResult.d.ts +5 -0
- package/api/types/apiResult.js +2 -0
- package/api/types/apiResult.js.map +1 -0
- package/api/types/auditableEntity.d.ts +10 -0
- package/api/types/auditableEntity.js +2 -0
- package/api/types/auditableEntity.js.map +1 -0
- package/api/types/d2ArTypes.d.ts +5 -0
- package/api/types/d2ArTypes.js +2 -0
- package/api/types/d2ArTypes.js.map +1 -0
- package/api/types/d2ChartTypes.d.ts +26 -0
- package/api/types/d2ChartTypes.js +7 -0
- package/api/types/d2ChartTypes.js.map +1 -0
- package/api/types/dbBoolean.d.ts +5 -0
- package/api/types/dbBoolean.js +15 -0
- package/api/types/dbBoolean.js.map +1 -0
- package/api/types/entity.d.ts +7 -0
- package/api/types/entity.js +2 -0
- package/api/types/entity.js.map +1 -0
- package/api/types/entityListResult.d.ts +4 -0
- package/api/types/entityListResult.js +2 -0
- package/api/types/entityListResult.js.map +1 -0
- package/api/types/entityResult.d.ts +4 -0
- package/api/types/entityResult.js +2 -0
- package/api/types/entityResult.js.map +1 -0
- package/api/types/nounGender.d.ts +5 -0
- package/api/types/nounGender.js +7 -0
- package/api/types/nounGender.js.map +1 -0
- package/api/util/d2Boolean.d.ts +8 -0
- package/api/util/d2Boolean.js +14 -0
- package/api/util/d2Boolean.js.map +1 -0
- package/api/util/d2ChartUtils.d.ts +7 -0
- package/api/util/d2ChartUtils.js +62 -0
- package/api/util/d2ChartUtils.js.map +1 -0
- package/api/util/edaUtils.d.ts +5 -0
- package/api/util/edaUtils.js +33 -0
- package/api/util/edaUtils.js.map +1 -0
- package/api/util/fileUtils.d.ts +3 -0
- package/api/util/fileUtils.js +22 -0
- package/api/util/fileUtils.js.map +1 -0
- package/api/validation/abstractEntityValidationUtils.d.ts +8 -0
- package/api/validation/abstractEntityValidationUtils.js +24 -0
- package/api/validation/abstractEntityValidationUtils.js.map +1 -0
- package/core/types/panelConfiguration.d.ts +3 -0
- package/core/types/panelConfiguration.js +2 -0
- package/core/types/panelConfiguration.js.map +1 -0
- package/core/util/humanizeDuration.d.ts +1 -0
- package/core/util/humanizeDuration.js +24 -0
- package/core/util/humanizeDuration.js.map +1 -0
- package/core/util/isStringEmpty.d.ts +1 -0
- package/core/util/isStringEmpty.js +4 -0
- package/core/util/isStringEmpty.js.map +1 -0
- package/core/util/locationUtils.d.ts +10 -0
- package/core/util/locationUtils.js +34 -0
- package/core/util/locationUtils.js.map +1 -0
- package/coreui/abstractApp.d.ts +22 -0
- package/coreui/abstractApp.js +49 -0
- package/coreui/abstractApp.js.map +1 -0
- package/coreui/abstractListPanel.d.ts +88 -0
- package/coreui/abstractListPanel.js +426 -0
- package/coreui/abstractListPanel.js.map +1 -0
- package/coreui/abstractPage.d.ts +18 -0
- package/coreui/abstractPage.js +104 -0
- package/coreui/abstractPage.js.map +1 -0
- package/coreui/auth/loginForm.d.ts +27 -0
- package/coreui/auth/loginForm.js +47 -0
- package/coreui/auth/loginForm.js.map +1 -0
- package/coreui/auth/logoutButton.d.ts +9 -0
- package/coreui/auth/logoutButton.js +23 -0
- package/coreui/auth/logoutButton.js.map +1 -0
- package/coreui/components/about/aboutModalDialog.d.ts +30 -0
- package/coreui/components/about/aboutModalDialog.js +96 -0
- package/coreui/components/about/aboutModalDialog.js.map +1 -0
- package/coreui/components/advancedFilter/advancedFilterButton.d.ts +26 -0
- package/coreui/components/advancedFilter/advancedFilterButton.js +115 -0
- package/coreui/components/advancedFilter/advancedFilterButton.js.map +1 -0
- package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.d.ts +18 -0
- package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.js +39 -0
- package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.js.map +1 -0
- package/coreui/components/advancedFilter/advancedFilterUtils.d.ts +12 -0
- package/coreui/components/advancedFilter/advancedFilterUtils.js +101 -0
- package/coreui/components/advancedFilter/advancedFilterUtils.js.map +1 -0
- package/coreui/components/advancedFilter/advancedFilterValidationUtils.d.ts +11 -0
- package/coreui/components/advancedFilter/advancedFilterValidationUtils.js +59 -0
- package/coreui/components/advancedFilter/advancedFilterValidationUtils.js.map +1 -0
- package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +55 -0
- package/coreui/components/advancedFilter/advancedFilteredGrid.js +165 -0
- package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -0
- package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.d.ts +14 -0
- package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.js +35 -0
- package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.js.map +1 -0
- package/coreui/components/advancedFilter/components/advancedFilterValueInput.d.ts +23 -0
- package/coreui/components/advancedFilter/components/advancedFilterValueInput.js +148 -0
- package/coreui/components/advancedFilter/components/advancedFilterValueInput.js.map +1 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts +18 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js +82 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map +1 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts +23 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js +58 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map +1 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts +31 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js +211 -0
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map +1 -0
- package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.d.ts +15 -0
- package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.js +48 -0
- package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.js.map +1 -0
- package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.d.ts +18 -0
- package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.js +37 -0
- package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.js.map +1 -0
- package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.d.ts +26 -0
- package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.js +81 -0
- package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.js.map +1 -0
- package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.d.ts +32 -0
- package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.js +102 -0
- package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.js.map +1 -0
- package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.d.ts +23 -0
- package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.js +83 -0
- package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.js.map +1 -0
- package/coreui/components/colorTag/colorTag.d.ts +9 -0
- package/coreui/components/colorTag/colorTag.js +17 -0
- package/coreui/components/colorTag/colorTag.js.map +1 -0
- package/coreui/components/d2Chart/d2ChartOptions.d.ts +3 -0
- package/coreui/components/d2Chart/d2ChartOptions.js +73 -0
- package/coreui/components/d2Chart/d2ChartOptions.js.map +1 -0
- package/coreui/components/d2Chart/d2ChartPanel.d.ts +48 -0
- package/coreui/components/d2Chart/d2ChartPanel.js +325 -0
- package/coreui/components/d2Chart/d2ChartPanel.js.map +1 -0
- package/coreui/components/d2Chart/d2ChartTablePanel.d.ts +31 -0
- package/coreui/components/d2Chart/d2ChartTablePanel.js +121 -0
- package/coreui/components/d2Chart/d2ChartTablePanel.js.map +1 -0
- package/coreui/components/d2Chart/d2ChartToolboxPanel.d.ts +27 -0
- package/coreui/components/d2Chart/d2ChartToolboxPanel.js +116 -0
- package/coreui/components/d2Chart/d2ChartToolboxPanel.js.map +1 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.d.ts +51 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +169 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.d.ts +32 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js +87 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js.map +1 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.d.ts +24 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.js +98 -0
- package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.js.map +1 -0
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.d.ts +19 -0
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js +52 -0
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js.map +1 -0
- package/coreui/components/edaManager/compactPanel/initialLayout.d.ts +2 -0
- package/coreui/components/edaManager/compactPanel/initialLayout.js +26 -0
- package/coreui/components/edaManager/compactPanel/initialLayout.js.map +1 -0
- package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.d.ts +38 -0
- package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js +182 -0
- package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js.map +1 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.d.ts +23 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.js +122 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.js.map +1 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.d.ts +16 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.js +63 -0
- package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.js.map +1 -0
- package/coreui/components/edaManager/components/detail/initialLayout.d.ts +2 -0
- package/coreui/components/edaManager/components/detail/initialLayout.js +29 -0
- package/coreui/components/edaManager/components/detail/initialLayout.js.map +1 -0
- package/coreui/components/edaManager/components/edaManagerTablePanel.d.ts +22 -0
- package/coreui/components/edaManager/components/edaManagerTablePanel.js +80 -0
- package/coreui/components/edaManager/components/edaManagerTablePanel.js.map +1 -0
- package/coreui/components/edaManager/components/edaManagerTimePanel.d.ts +22 -0
- package/coreui/components/edaManager/components/edaManagerTimePanel.js +38 -0
- package/coreui/components/edaManager/components/edaManagerTimePanel.js.map +1 -0
- package/coreui/components/edaManager/components/edaManagerVectorList.d.ts +11 -0
- package/coreui/components/edaManager/components/edaManagerVectorList.js +35 -0
- package/coreui/components/edaManager/components/edaManagerVectorList.js.map +1 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.d.ts +0 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.js +2 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.js.map +1 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.d.ts +13 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.js +14 -0
- package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.js.map +1 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.d.ts +10 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.js +20 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.js.map +1 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.d.ts +13 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.js +22 -0
- package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.js.map +1 -0
- package/coreui/components/edaManager/constants.d.ts +2 -0
- package/coreui/components/edaManager/constants.js +11 -0
- package/coreui/components/edaManager/constants.js.map +1 -0
- package/coreui/components/edaManager/panel/edaManagerPanel.d.ts +13 -0
- package/coreui/components/edaManager/panel/edaManagerPanel.js +32 -0
- package/coreui/components/edaManager/panel/edaManagerPanel.js.map +1 -0
- package/coreui/components/edaManager/panel/initialLayout.d.ts +2 -0
- package/coreui/components/edaManager/panel/initialLayout.js +39 -0
- package/coreui/components/edaManager/panel/initialLayout.js.map +1 -0
- package/coreui/components/editor/abstractEntityConfigPanel.d.ts +82 -0
- package/coreui/components/editor/abstractEntityConfigPanel.js +307 -0
- package/coreui/components/editor/abstractEntityConfigPanel.js.map +1 -0
- package/coreui/components/filePicker/filePicker.d.ts +20 -0
- package/coreui/components/filePicker/filePicker.js +57 -0
- package/coreui/components/filePicker/filePicker.js.map +1 -0
- package/coreui/components/grid/auditEntityRowStyleRules.d.ts +3 -0
- package/coreui/components/grid/auditEntityRowStyleRules.js +34 -0
- package/coreui/components/grid/auditEntityRowStyleRules.js.map +1 -0
- package/coreui/components/grid/detailHeaderPanel.d.ts +13 -0
- package/coreui/components/grid/detailHeaderPanel.js +29 -0
- package/coreui/components/grid/detailHeaderPanel.js.map +1 -0
- package/coreui/components/grid/standardColumns.d.ts +14 -0
- package/coreui/components/grid/standardColumns.js +150 -0
- package/coreui/components/grid/standardColumns.js.map +1 -0
- package/coreui/components/history/entityHistoryListPanel.d.ts +38 -0
- package/coreui/components/history/entityHistoryListPanel.js +154 -0
- package/coreui/components/history/entityHistoryListPanel.js.map +1 -0
- package/coreui/components/languageSelect/languageSelect.d.ts +17 -0
- package/coreui/components/languageSelect/languageSelect.js +28 -0
- package/coreui/components/languageSelect/languageSelect.js.map +1 -0
- package/coreui/components/modalWithIcon/openModalWithIcon.d.ts +8 -0
- package/coreui/components/modalWithIcon/openModalWithIcon.js +30 -0
- package/coreui/components/modalWithIcon/openModalWithIcon.js.map +1 -0
- package/coreui/components/select/abstractSelect.d.ts +57 -0
- package/coreui/components/select/abstractSelect.js +233 -0
- package/coreui/components/select/abstractSelect.js.map +1 -0
- package/coreui/components/select/abstractSelectModalDialog.d.ts +33 -0
- package/coreui/components/select/abstractSelectModalDialog.js +110 -0
- package/coreui/components/select/abstractSelectModalDialog.js.map +1 -0
- package/coreui/components/select/selectUtils.d.ts +4 -0
- package/coreui/components/select/selectUtils.js +14 -0
- package/coreui/components/select/selectUtils.js.map +1 -0
- package/coreui/components/titleWithCodePanel/titleWithCodePanel.d.ts +10 -0
- package/coreui/components/titleWithCodePanel/titleWithCodePanel.js +20 -0
- package/coreui/components/titleWithCodePanel/titleWithCodePanel.js.map +1 -0
- package/coreui/icons/icons.d.ts +3 -0
- package/coreui/icons/icons.js +18 -0
- package/coreui/icons/icons.js.map +1 -0
- package/coreui/layout/contextToolbar.d.ts +15 -0
- package/coreui/layout/contextToolbar.js +41 -0
- package/coreui/layout/contextToolbar.js.map +1 -0
- package/coreui/style/index.less +165 -0
- package/coreui/style/login.css +214 -0
- package/package.json +65 -0
- package/tsconfig.json +38 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdvancedFilterOperator } from "../../../../api/advancedFilterApi";
|
|
3
|
+
import { Input, InputNumber, Select } from "antd";
|
|
4
|
+
import dayjs from "d2core/dayjs";
|
|
5
|
+
import DateTimeInput from "d2coreui/components/date/dateTimeInput";
|
|
6
|
+
import { LocaleHolder } from "d2core/i18n/localeHolder";
|
|
7
|
+
import { AdvancedFilterValueType } from "../../../../api/types/advancedFilter";
|
|
8
|
+
export const ADVANCED_FILTER_DATE_FORMAT = "YYYY-MM-DD HH:mm:ss";
|
|
9
|
+
export default class AdvancedFilterValueInput extends React.Component {
|
|
10
|
+
constructor(props) {
|
|
11
|
+
super(props);
|
|
12
|
+
this.inputComponent = null;
|
|
13
|
+
}
|
|
14
|
+
focusInput() {
|
|
15
|
+
this.inputComponent?.focus();
|
|
16
|
+
}
|
|
17
|
+
renderInputComponent() {
|
|
18
|
+
let { operator, editedValue } = this.props;
|
|
19
|
+
if (operator === AdvancedFilterOperator.LIKE && editedValue === undefined) {
|
|
20
|
+
editedValue = "%";
|
|
21
|
+
}
|
|
22
|
+
return (React.createElement(Input, { ref: instance => this.inputComponent = instance, disabled: operator === AdvancedFilterOperator.IS_NULL, onPressEnter: event => {
|
|
23
|
+
this.props.onPressEnter?.(event.ctrlKey, event.altKey);
|
|
24
|
+
}, value: editedValue, onChange: event => {
|
|
25
|
+
editedValue = event.target.value;
|
|
26
|
+
this.props.onChange(editedValue);
|
|
27
|
+
} }));
|
|
28
|
+
}
|
|
29
|
+
renderInputNumberComponent() {
|
|
30
|
+
let editedValue = this.props.editedValue;
|
|
31
|
+
let value = undefined;
|
|
32
|
+
if (this.props.operator === AdvancedFilterOperator.IS_NULL) {
|
|
33
|
+
value = "NULL";
|
|
34
|
+
}
|
|
35
|
+
else if (typeof editedValue === "number") {
|
|
36
|
+
value = editedValue;
|
|
37
|
+
}
|
|
38
|
+
return (React.createElement(InputNumber, { ref: instance => this.inputComponent = instance, style: { width: "100%" }, disabled: this.props.operator === AdvancedFilterOperator.IS_NULL, onPressEnter: event => {
|
|
39
|
+
this.props.onPressEnter?.(event.ctrlKey, event.altKey);
|
|
40
|
+
}, value: value, onChange: value => {
|
|
41
|
+
editedValue = value !== null ? value : undefined;
|
|
42
|
+
this.props.onChange(editedValue);
|
|
43
|
+
} }));
|
|
44
|
+
}
|
|
45
|
+
renderSelectListComponent(mode) {
|
|
46
|
+
let editedValue = this.props.editedValue;
|
|
47
|
+
return (React.createElement(Select, { ref: instance => this.inputComponent = instance, mode: mode, showSearch: true, allowClear: true, style: { width: "100%" }, onInputKeyDown: event => {
|
|
48
|
+
if (event.key === "Enter") {
|
|
49
|
+
this.props.onPressEnter?.(event.ctrlKey, event.altKey);
|
|
50
|
+
}
|
|
51
|
+
}, value: editedValue, onChange: value => {
|
|
52
|
+
if (mode === "tags" && [AdvancedFilterValueType.NUMBER, AdvancedFilterValueType.NUMBER_LIST].includes(this.props.columnDefinition.valueType)) {
|
|
53
|
+
editedValue = value.filter(value => Number.isInteger(Number(value)));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
editedValue = value;
|
|
57
|
+
}
|
|
58
|
+
this.props.onChange(editedValue);
|
|
59
|
+
}, filterOption: mode === "tags" ?
|
|
60
|
+
undefined
|
|
61
|
+
:
|
|
62
|
+
(input, option) => {
|
|
63
|
+
return (option?.children).toLowerCase().includes(input.toLowerCase());
|
|
64
|
+
}, dropdownStyle: { display: mode === "tags" ? "none" : undefined }, tokenSeparators: ["@#@"] }, this.props.columnDefinition?.optionList?.map(option => {
|
|
65
|
+
return React.createElement(Select.Option, { value: option.value, key: option.value }, option.title);
|
|
66
|
+
})));
|
|
67
|
+
}
|
|
68
|
+
renderDateComponent(withTime) {
|
|
69
|
+
const mask = withTime ? LocaleHolder.getDateTimeFormat(true, true, false) : LocaleHolder.getDateFormat(true);
|
|
70
|
+
let { operator, editedValue } = this.props;
|
|
71
|
+
const value = dayjs(editedValue, ADVANCED_FILTER_DATE_FORMAT, true);
|
|
72
|
+
if (operator !== AdvancedFilterOperator.IS_NULL) {
|
|
73
|
+
return (React.createElement(DateTimeInput, { ref: instance => this.inputComponent = instance, style: { width: "100%" }, mask: mask, onKeyDown: event => {
|
|
74
|
+
if (event.key === "Enter") {
|
|
75
|
+
this.props.onPressEnter?.(event.ctrlKey, event.altKey);
|
|
76
|
+
}
|
|
77
|
+
}, value: value.isValid() ? value : null, onChange: time => {
|
|
78
|
+
editedValue = time?.format(ADVANCED_FILTER_DATE_FORMAT);
|
|
79
|
+
this.props.onChange(editedValue);
|
|
80
|
+
} }));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return (React.createElement(Input, { disabled: true, value: editedValue }));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
renderValueComponent() {
|
|
87
|
+
const { operator } = this.props;
|
|
88
|
+
switch (this.props.columnDefinition.valueType) {
|
|
89
|
+
case AdvancedFilterValueType.STRING:
|
|
90
|
+
switch (operator) {
|
|
91
|
+
case AdvancedFilterOperator.EQUALS:
|
|
92
|
+
case AdvancedFilterOperator.LESS_THAN:
|
|
93
|
+
case AdvancedFilterOperator.GREATER_THAN:
|
|
94
|
+
case AdvancedFilterOperator.NOT_EQUALS:
|
|
95
|
+
case AdvancedFilterOperator.LESS_THAN_EQUALS:
|
|
96
|
+
case AdvancedFilterOperator.GREATER_THAN_EQUALS:
|
|
97
|
+
case AdvancedFilterOperator.LIKE:
|
|
98
|
+
case AdvancedFilterOperator.IS_NULL:
|
|
99
|
+
return this.renderInputComponent();
|
|
100
|
+
case AdvancedFilterOperator.IN:
|
|
101
|
+
return this.renderSelectListComponent("tags");
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case AdvancedFilterValueType.NUMBER:
|
|
105
|
+
switch (operator) {
|
|
106
|
+
case AdvancedFilterOperator.EQUALS:
|
|
107
|
+
case AdvancedFilterOperator.LESS_THAN:
|
|
108
|
+
case AdvancedFilterOperator.GREATER_THAN:
|
|
109
|
+
case AdvancedFilterOperator.NOT_EQUALS:
|
|
110
|
+
case AdvancedFilterOperator.LESS_THAN_EQUALS:
|
|
111
|
+
case AdvancedFilterOperator.GREATER_THAN_EQUALS:
|
|
112
|
+
case AdvancedFilterOperator.IS_NULL:
|
|
113
|
+
return this.renderInputNumberComponent();
|
|
114
|
+
case AdvancedFilterOperator.IN:
|
|
115
|
+
return this.renderSelectListComponent("tags");
|
|
116
|
+
case AdvancedFilterOperator.LIKE:
|
|
117
|
+
return "Unsupported operator";
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case AdvancedFilterValueType.STRING_LIST:
|
|
121
|
+
case AdvancedFilterValueType.NUMBER_LIST:
|
|
122
|
+
switch (operator) {
|
|
123
|
+
case AdvancedFilterOperator.IN:
|
|
124
|
+
return this.renderSelectListComponent("multiple");
|
|
125
|
+
case AdvancedFilterOperator.IS_NULL:
|
|
126
|
+
return this.renderInputComponent();
|
|
127
|
+
case AdvancedFilterOperator.EQUALS:
|
|
128
|
+
return this.renderSelectListComponent();
|
|
129
|
+
case AdvancedFilterOperator.LESS_THAN:
|
|
130
|
+
case AdvancedFilterOperator.GREATER_THAN:
|
|
131
|
+
case AdvancedFilterOperator.NOT_EQUALS:
|
|
132
|
+
case AdvancedFilterOperator.LESS_THAN_EQUALS:
|
|
133
|
+
case AdvancedFilterOperator.GREATER_THAN_EQUALS:
|
|
134
|
+
case AdvancedFilterOperator.LIKE:
|
|
135
|
+
return "Unsupported operator";
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
case AdvancedFilterValueType.DATE_TIME:
|
|
139
|
+
return this.renderDateComponent(true);
|
|
140
|
+
case AdvancedFilterValueType.DATE:
|
|
141
|
+
return this.renderDateComponent(false);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
render() {
|
|
145
|
+
return this.renderValueComponent();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=advancedFilterValueInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advancedFilterValueInput.js","sourceRoot":"","sources":["../../../../../../coreui/components/advancedFilter/components/advancedFilterValueInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {AdvancedFilterOperator, AdvancedFilterValue} from \"../../../../api/advancedFilterApi\";\r\nimport {Input, InputNumber, InputRef, Select} from \"antd\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport DateTimeInput from \"d2coreui/components/date/dateTimeInput\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {AdvancedFilterColumnDefinition, AdvancedFilterValueType} from \"../../../../api/types/advancedFilter\";\r\nimport {RefSelectProps} from \"antd/es/select\";\r\n\r\nexport const ADVANCED_FILTER_DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss\";\r\n\r\ninterface AdvancedFilterValueInputProps {\r\n operator: AdvancedFilterOperator\r\n editedValue: AdvancedFilterValue\r\n columnDefinition: AdvancedFilterColumnDefinition\r\n\r\n onPressEnter?(isCtrl: boolean, isAlt: boolean): void\r\n\r\n onChange(value: AdvancedFilterValue): void\r\n}\r\n\r\nexport default class AdvancedFilterValueInput extends React.Component<AdvancedFilterValueInputProps> {\r\n private inputComponent: InputRef | HTMLInputElement | RefSelectProps | DateTimeInput | null = null;\r\n\r\n constructor(props: Readonly<AdvancedFilterValueInputProps>) {\r\n super(props);\r\n }\r\n\r\n focusInput() {\r\n this.inputComponent?.focus();\r\n }\r\n\r\n private renderInputComponent() {\r\n let {operator, editedValue} = this.props;\r\n if (operator === AdvancedFilterOperator.LIKE && editedValue === undefined) {\r\n editedValue = \"%\";\r\n }\r\n\r\n return (\r\n <Input\r\n ref={instance => this.inputComponent = instance}\r\n disabled={operator === AdvancedFilterOperator.IS_NULL}\r\n onPressEnter={event => {\r\n this.props.onPressEnter?.(event.ctrlKey, event.altKey);\r\n }}\r\n value={editedValue as string | undefined}\r\n onChange={event => {\r\n editedValue = event.target.value;\r\n this.props.onChange(editedValue);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderInputNumberComponent() {\r\n let editedValue = this.props.editedValue;\r\n\r\n let value = undefined;\r\n if (this.props.operator === AdvancedFilterOperator.IS_NULL) {\r\n value = \"NULL\";\r\n } else if (typeof editedValue === \"number\") {\r\n value = editedValue;\r\n }\r\n\r\n return (\r\n <InputNumber\r\n ref={instance => this.inputComponent = instance}\r\n style={{width: \"100%\"}}\r\n disabled={this.props.operator === AdvancedFilterOperator.IS_NULL}\r\n onPressEnter={event => {\r\n this.props.onPressEnter?.(event.ctrlKey, event.altKey);\r\n }}\r\n value={value}\r\n onChange={value => {\r\n editedValue = value !== null ? value : undefined;\r\n this.props.onChange(editedValue);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n // private renderCustomValueSetComponent() {\r\n // const editedCondition = this.props.editedCondition;\r\n //\r\n // return (\r\n // <AdvancedFilterValueSetPanel\r\n // value={Array.isArray(editedCondition.value) ? editedCondition.value : undefined}\r\n // onChange={value => {\r\n // editedCondition.value = value;\r\n // this.props.onChange(editedCondition);\r\n // }}\r\n // />\r\n // );\r\n // }\r\n\r\n private renderSelectListComponent(mode?: \"multiple\" | \"tags\") {\r\n let editedValue = this.props.editedValue;\r\n\r\n return (\r\n <Select\r\n ref={instance => this.inputComponent = instance}\r\n mode={mode}\r\n showSearch\r\n allowClear\r\n style={{width: \"100%\"}}\r\n onInputKeyDown={event => {\r\n if (event.key === \"Enter\") {\r\n this.props.onPressEnter?.(event.ctrlKey, event.altKey);\r\n }\r\n }}\r\n value={editedValue}\r\n onChange={value => {\r\n if (mode === \"tags\" && [AdvancedFilterValueType.NUMBER, AdvancedFilterValueType.NUMBER_LIST].includes(this.props.columnDefinition.valueType)) {\r\n editedValue = (value as string[]).filter(value => Number.isInteger(Number(value)));\r\n } else {\r\n editedValue = value;\r\n }\r\n this.props.onChange(editedValue);\r\n }}\r\n filterOption={\r\n mode === \"tags\" ?\r\n undefined\r\n :\r\n (input, option) => {\r\n return (option?.children as unknown as string).toLowerCase().includes(input.toLowerCase());\r\n }\r\n }\r\n dropdownStyle={{display: mode === \"tags\" ? \"none\" : undefined}}\r\n tokenSeparators={[\"@#@\"]}\r\n >\r\n {this.props.columnDefinition?.optionList?.map(option => {\r\n return <Select.Option value={option.value} key={option.value}>{option.title}</Select.Option>\r\n })}\r\n </Select>\r\n );\r\n }\r\n\r\n private renderDateComponent(withTime: boolean) {\r\n const mask = withTime ? LocaleHolder.getDateTimeFormat(true, true, false) : LocaleHolder.getDateFormat(true);\r\n let {operator, editedValue} = this.props;\r\n const value = dayjs(editedValue as string, ADVANCED_FILTER_DATE_FORMAT, true);\r\n\r\n if (operator !== AdvancedFilterOperator.IS_NULL) {\r\n return (\r\n <DateTimeInput\r\n ref={instance => this.inputComponent = instance}\r\n style={{width: \"100%\"}}\r\n mask={mask}\r\n onKeyDown={event => {\r\n if (event.key === \"Enter\") {\r\n this.props.onPressEnter?.(event.ctrlKey, event.altKey);\r\n }\r\n }}\r\n value={value.isValid() ? value : null}\r\n onChange={time => {\r\n editedValue = time?.format(ADVANCED_FILTER_DATE_FORMAT);\r\n this.props.onChange(editedValue);\r\n }}\r\n />\r\n );\r\n } else {\r\n return (\r\n <Input\r\n disabled\r\n value={editedValue as string | undefined}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private renderValueComponent() {\r\n const {operator} = this.props;\r\n\r\n switch (this.props.columnDefinition.valueType) {\r\n case AdvancedFilterValueType.STRING:\r\n switch (operator) {\r\n case AdvancedFilterOperator.EQUALS:\r\n case AdvancedFilterOperator.LESS_THAN:\r\n case AdvancedFilterOperator.GREATER_THAN:\r\n case AdvancedFilterOperator.NOT_EQUALS:\r\n case AdvancedFilterOperator.LESS_THAN_EQUALS:\r\n case AdvancedFilterOperator.GREATER_THAN_EQUALS:\r\n case AdvancedFilterOperator.LIKE:\r\n case AdvancedFilterOperator.IS_NULL:\r\n return this.renderInputComponent();\r\n case AdvancedFilterOperator.IN:\r\n return this.renderSelectListComponent(\"tags\");\r\n }\r\n break;\r\n case AdvancedFilterValueType.NUMBER:\r\n switch (operator) {\r\n case AdvancedFilterOperator.EQUALS:\r\n case AdvancedFilterOperator.LESS_THAN:\r\n case AdvancedFilterOperator.GREATER_THAN:\r\n case AdvancedFilterOperator.NOT_EQUALS:\r\n case AdvancedFilterOperator.LESS_THAN_EQUALS:\r\n case AdvancedFilterOperator.GREATER_THAN_EQUALS:\r\n case AdvancedFilterOperator.IS_NULL:\r\n return this.renderInputNumberComponent();\r\n case AdvancedFilterOperator.IN:\r\n return this.renderSelectListComponent(\"tags\");\r\n case AdvancedFilterOperator.LIKE:\r\n return \"Unsupported operator\"; // should never happen\r\n }\r\n break;\r\n case AdvancedFilterValueType.STRING_LIST:\r\n case AdvancedFilterValueType.NUMBER_LIST:\r\n switch (operator) {\r\n case AdvancedFilterOperator.IN:\r\n return this.renderSelectListComponent(\"multiple\");\r\n case AdvancedFilterOperator.IS_NULL:\r\n return this.renderInputComponent();\r\n case AdvancedFilterOperator.EQUALS:\r\n return this.renderSelectListComponent();\r\n case AdvancedFilterOperator.LESS_THAN:\r\n case AdvancedFilterOperator.GREATER_THAN:\r\n case AdvancedFilterOperator.NOT_EQUALS:\r\n case AdvancedFilterOperator.LESS_THAN_EQUALS:\r\n case AdvancedFilterOperator.GREATER_THAN_EQUALS:\r\n case AdvancedFilterOperator.LIKE:\r\n return \"Unsupported operator\"; // should never happen\r\n }\r\n break;\r\n case AdvancedFilterValueType.DATE_TIME:\r\n return this.renderDateComponent(true);\r\n case AdvancedFilterValueType.DATE:\r\n return this.renderDateComponent(false);\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderValueComponent();\r\n }\r\n\r\n}"]}
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
3
|
+
import { AdvancedFilterColumnDefinition } from "../../../../api/types/advancedFilter";
|
|
4
|
+
interface Props {
|
|
5
|
+
editedCondition: AdvancedFilterCondition;
|
|
6
|
+
columnDefinitions: AdvancedFilterColumnDefinition[];
|
|
7
|
+
onClose(): void;
|
|
8
|
+
onNextRecord(): void;
|
|
9
|
+
onPrevRecord(): void;
|
|
10
|
+
onChange(editedCondition: AdvancedFilterCondition): void;
|
|
11
|
+
}
|
|
12
|
+
export default class AdvancedFilterConditionDetailPanel extends React.Component<Props> {
|
|
13
|
+
constructor(props: Readonly<Props>);
|
|
14
|
+
renderConfigHeader(): React.JSX.Element;
|
|
15
|
+
private renderConfigForm;
|
|
16
|
+
render(): React.JSX.Element;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Button, Form, Select } from "antd";
|
|
3
|
+
import i18n from "d2core/i18n/i18n";
|
|
4
|
+
import { AdvancedFilterLogicalOperator, } from "../../../../api/advancedFilterApi";
|
|
5
|
+
import AdvancedFilterUtils from "../advancedFilterUtils";
|
|
6
|
+
import { getErrorInfo } from "../advancedFilterValidationUtils";
|
|
7
|
+
import AdvancedFilterOperatorSelect from "../components/advancedFilterOperatorSelect";
|
|
8
|
+
import AdvancedFilterValueInput from "../components/advancedFilterValueInput";
|
|
9
|
+
import { AdvancedFilterConditionError } from "../../../../api/types/advancedFilter";
|
|
10
|
+
import DetailHeaderPanel from "../../grid/detailHeaderPanel";
|
|
11
|
+
export default class AdvancedFilterConditionDetailPanel extends React.Component {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
}
|
|
15
|
+
renderConfigHeader() {
|
|
16
|
+
return (React.createElement(DetailHeaderPanel, { onPrevRecord: this.props.onPrevRecord, onNextRecord: this.props.onNextRecord, onClose: this.props.onClose }));
|
|
17
|
+
}
|
|
18
|
+
renderConfigForm() {
|
|
19
|
+
const editedCondition = this.props.editedCondition;
|
|
20
|
+
const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === editedCondition.column_name);
|
|
21
|
+
const [valueValidateStatus, valueErrorMessage] = getErrorInfo([AdvancedFilterConditionError.VALUE_REQUIRED], editedCondition._errors ?? []);
|
|
22
|
+
const [logicalOperatorValidateStatus, logicalOperatorErrorMessage] = getErrorInfo([AdvancedFilterConditionError.LOGICAL_OPERATOR_REQUIRED, AdvancedFilterConditionError.LOGICAL_OPERATOR_UNNECESSARY], editedCondition._errors ?? []);
|
|
23
|
+
return (React.createElement(Form, { className: "record-config-form", layout: "horizontal", labelCol: { sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 } },
|
|
24
|
+
React.createElement("div", { style: { display: "flex", marginTop: 8 } },
|
|
25
|
+
React.createElement(Button, { type: editedCondition.not_flag ? "primary" : "default", onClick: () => {
|
|
26
|
+
editedCondition.not_flag = editedCondition.not_flag === 1 ? 0 : 1;
|
|
27
|
+
this.props.onChange(editedCondition);
|
|
28
|
+
} }, i18n("Negation")),
|
|
29
|
+
React.createElement(Button, { style: { marginLeft: 8 }, type: editedCondition.left_par ? "primary" : "default", onClick: () => {
|
|
30
|
+
editedCondition.left_par = editedCondition.left_par === 1 ? 0 : 1;
|
|
31
|
+
this.props.onChange(editedCondition);
|
|
32
|
+
} }, "(")),
|
|
33
|
+
React.createElement("div", { style: { marginLeft: 32 } },
|
|
34
|
+
React.createElement(Form.Item, { label: i18n("Column") },
|
|
35
|
+
React.createElement(Select, { value: editedCondition.column_name, onChange: value => {
|
|
36
|
+
const newValueType = this.props.columnDefinitions.find(columnDefinition => columnDefinition.columnName === value).valueType;
|
|
37
|
+
if (editedCondition.value_type !== newValueType) {
|
|
38
|
+
editedCondition.value = undefined;
|
|
39
|
+
}
|
|
40
|
+
editedCondition.column_name = value;
|
|
41
|
+
editedCondition.value_type = newValueType;
|
|
42
|
+
const newAllowedOperators = AdvancedFilterUtils.getOperatorsForValueType(newValueType);
|
|
43
|
+
editedCondition.operator = newAllowedOperators[0];
|
|
44
|
+
this.props.onChange(editedCondition);
|
|
45
|
+
} }, this.props.columnDefinitions.map(value => {
|
|
46
|
+
return (React.createElement(Select.Option, { value: value.columnName, key: value.columnName }, value.columnName));
|
|
47
|
+
}))),
|
|
48
|
+
React.createElement(Form.Item, { label: i18n("Operator") },
|
|
49
|
+
React.createElement(AdvancedFilterOperatorSelect, { operator: editedCondition.operator, value: editedCondition.value, valueType: editedCondition.value_type, onChange: (operator, value) => {
|
|
50
|
+
editedCondition.operator = operator;
|
|
51
|
+
editedCondition.value = value;
|
|
52
|
+
this.props.onChange(editedCondition);
|
|
53
|
+
} })),
|
|
54
|
+
React.createElement(Form.Item, { label: i18n("Value"), validateStatus: valueValidateStatus, help: valueErrorMessage }, columnDefinition &&
|
|
55
|
+
React.createElement(AdvancedFilterValueInput, { operator: editedCondition.operator, editedValue: editedCondition.value, columnDefinition: columnDefinition, onChange: value => {
|
|
56
|
+
editedCondition.value = value;
|
|
57
|
+
this.props.onChange(editedCondition);
|
|
58
|
+
} }))),
|
|
59
|
+
React.createElement("div", { style: { display: "flex", marginTop: 12 } },
|
|
60
|
+
React.createElement(Button, { type: editedCondition.right_par ? "primary" : "default", onClick: () => {
|
|
61
|
+
editedCondition.right_par = editedCondition.right_par === 1 ? 0 : 1;
|
|
62
|
+
this.props.onChange(editedCondition);
|
|
63
|
+
} }, ")"),
|
|
64
|
+
React.createElement(Form.Item, { style: { width: 160, marginLeft: 8 }, validateStatus: logicalOperatorValidateStatus, help: logicalOperatorErrorMessage },
|
|
65
|
+
React.createElement(Select, { value: editedCondition.logical_operator ?? undefined, onChange: value => {
|
|
66
|
+
editedCondition.logical_operator = value ?? null;
|
|
67
|
+
this.props.onChange(editedCondition);
|
|
68
|
+
}, allowClear: true }, Object.values(AdvancedFilterLogicalOperator).map(value => {
|
|
69
|
+
return React.createElement(Select.Option, { value: value, key: value }, value);
|
|
70
|
+
}))))));
|
|
71
|
+
}
|
|
72
|
+
render() {
|
|
73
|
+
const editedCondition = this.props.editedCondition;
|
|
74
|
+
return (React.createElement("div", { style: { display: "flex", flexDirection: "column", overflow: "hidden", height: "100%" } },
|
|
75
|
+
this.renderConfigHeader(),
|
|
76
|
+
React.createElement("div", { style: { flex: "1 1 auto", overflow: "hidden" } },
|
|
77
|
+
React.createElement("div", { style: { height: "calc(100% - 8px)" } },
|
|
78
|
+
React.createElement("div", { style: { height: "100%", overflow: "auto" } },
|
|
79
|
+
React.createElement("div", { style: { margin: "0px 12px 16px" } }, editedCondition && this.renderConfigForm()))))));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=advancedFilterConditionDetailPanel.js.map
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advancedFilterConditionDetailPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {Button, Form, Select} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {AdvancedFilterCondition, AdvancedFilterLogicalOperator,} from \"../../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilterUtils\";\r\nimport {getErrorInfo} from \"../advancedFilterValidationUtils\";\r\nimport AdvancedFilterOperatorSelect from \"../components/advancedFilterOperatorSelect\";\r\nimport AdvancedFilterValueInput from \"../components/advancedFilterValueInput\";\r\nimport {AdvancedFilterColumnDefinition, AdvancedFilterConditionError} from \"../../../../api/types/advancedFilter\";\r\nimport DetailHeaderPanel from \"../../grid/detailHeaderPanel\";\r\n\r\ninterface Props {\r\n editedCondition: AdvancedFilterCondition\r\n columnDefinitions: AdvancedFilterColumnDefinition[]\r\n\r\n // conditionList close handler\r\n onClose(): void\r\n\r\n // next record handler\r\n onNextRecord(): void\r\n\r\n // previous record handler\r\n onPrevRecord(): void\r\n\r\n onChange(editedCondition: AdvancedFilterCondition): void\r\n}\r\n\r\nexport default class AdvancedFilterConditionDetailPanel extends React.Component<Props> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n }\r\n\r\n renderConfigHeader() {\r\n return (\r\n <DetailHeaderPanel\r\n onPrevRecord={this.props.onPrevRecord}\r\n onNextRecord={this.props.onNextRecord}\r\n onClose={this.props.onClose}\r\n />\r\n );\r\n }\r\n\r\n private renderConfigForm() {\r\n const editedCondition = this.props.editedCondition;\r\n const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === editedCondition.column_name);\r\n\r\n const [valueValidateStatus, valueErrorMessage] = getErrorInfo([AdvancedFilterConditionError.VALUE_REQUIRED], editedCondition._errors ?? []);\r\n const [logicalOperatorValidateStatus, logicalOperatorErrorMessage] = getErrorInfo([AdvancedFilterConditionError.LOGICAL_OPERATOR_REQUIRED, AdvancedFilterConditionError.LOGICAL_OPERATOR_UNNECESSARY], editedCondition._errors ?? []);\r\n\r\n return (\r\n <Form\r\n className=\"record-config-form\"\r\n layout=\"horizontal\"\r\n labelCol={{sm: 24, md: 24, lg: 24, xl: 24, xxl: 24}}\r\n >\r\n <div style={{display: \"flex\", marginTop: 8}}>\r\n <Button\r\n type={editedCondition.not_flag ? \"primary\" : \"default\"}\r\n onClick={() => {\r\n editedCondition.not_flag = editedCondition.not_flag === 1 ? 0 : 1;\r\n this.props.onChange(editedCondition);\r\n }}\r\n >\r\n {i18n(\"Negation\")}\r\n </Button>\r\n <Button\r\n style={{marginLeft: 8}}\r\n type={editedCondition.left_par ? \"primary\" : \"default\"}\r\n onClick={() => {\r\n editedCondition.left_par = editedCondition.left_par === 1 ? 0 : 1;\r\n this.props.onChange(editedCondition);\r\n }}\r\n >\r\n (\r\n </Button>\r\n </div>\r\n <div style={{marginLeft: 32}}>\r\n <Form.Item label={i18n(\"Column\")}>\r\n <Select\r\n value={editedCondition.column_name}\r\n onChange={value => {\r\n const newValueType = this.props.columnDefinitions.find(columnDefinition => columnDefinition.columnName === value)!.valueType;\r\n\r\n if (editedCondition.value_type !== newValueType) {\r\n editedCondition.value = undefined;\r\n }\r\n\r\n editedCondition.column_name = value;\r\n editedCondition.value_type = newValueType;\r\n\r\n const newAllowedOperators = AdvancedFilterUtils.getOperatorsForValueType(newValueType);\r\n editedCondition.operator = newAllowedOperators[0];\r\n\r\n this.props.onChange(editedCondition);\r\n }}\r\n >\r\n {this.props.columnDefinitions.map(value => {\r\n return (\r\n <Select.Option value={value.columnName} key={value.columnName}>\r\n {value.columnName}\r\n </Select.Option>\r\n );\r\n })}\r\n </Select>\r\n </Form.Item>\r\n <Form.Item label={i18n(\"Operator\")}>\r\n <AdvancedFilterOperatorSelect\r\n operator={editedCondition.operator}\r\n value={editedCondition.value}\r\n valueType={editedCondition.value_type}\r\n onChange={(operator, value) => {\r\n editedCondition.operator = operator;\r\n editedCondition.value = value;\r\n this.props.onChange(editedCondition);\r\n }}\r\n />\r\n </Form.Item>\r\n <Form.Item\r\n label={i18n(\"Value\")}\r\n validateStatus={valueValidateStatus}\r\n help={valueErrorMessage}\r\n >\r\n {columnDefinition &&\r\n <AdvancedFilterValueInput\r\n operator={editedCondition.operator}\r\n editedValue={editedCondition.value}\r\n columnDefinition={columnDefinition}\r\n onChange={value => {\r\n editedCondition.value = value;\r\n this.props.onChange(editedCondition);\r\n }}\r\n />\r\n }\r\n </Form.Item>\r\n </div>\r\n <div style={{display: \"flex\", marginTop: 12}}>\r\n <Button\r\n type={editedCondition.right_par ? \"primary\" : \"default\"}\r\n onClick={() => {\r\n editedCondition.right_par = editedCondition.right_par === 1 ? 0 : 1;\r\n this.props.onChange(editedCondition);\r\n }}\r\n >\r\n )\r\n </Button>\r\n <Form.Item\r\n style={{width: 160, marginLeft: 8}}\r\n validateStatus={logicalOperatorValidateStatus}\r\n help={logicalOperatorErrorMessage}\r\n >\r\n <Select\r\n value={editedCondition.logical_operator ?? undefined}\r\n onChange={value => {\r\n editedCondition.logical_operator = value ?? null;\r\n this.props.onChange(editedCondition);\r\n }}\r\n allowClear\r\n >\r\n {Object.values(AdvancedFilterLogicalOperator).map(value => {\r\n return <Select.Option value={value} key={value}>{value}</Select.Option>\r\n })}\r\n </Select>\r\n </Form.Item>\r\n </div>\r\n </Form>\r\n );\r\n }\r\n\r\n render() {\r\n const editedCondition = this.props.editedCondition;\r\n\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", overflow: \"hidden\", height: \"100%\"}}>\r\n {this.renderConfigHeader()}\r\n <div style={{flex: \"1 1 auto\", overflow: \"hidden\"}}>\r\n <div style={{height: \"calc(100% - 8px)\"}}>\r\n <div style={{height: \"100%\", overflow: \"auto\"}}>\r\n <div style={{margin: \"0px 12px 16px\"}}>\r\n {editedCondition && this.renderConfigForm()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
3
|
+
import { AdvancedFilterColumnDefinition } from "../../../../api/types/advancedFilter";
|
|
4
|
+
interface AdvancedFilterConditionListModalDialogProps {
|
|
5
|
+
visible: boolean;
|
|
6
|
+
filterConditions: AdvancedFilterCondition[];
|
|
7
|
+
columnDefinitions: AdvancedFilterColumnDefinition[];
|
|
8
|
+
onOk(filterConditions: AdvancedFilterCondition[]): void;
|
|
9
|
+
onCancel(): void;
|
|
10
|
+
}
|
|
11
|
+
interface AdvancedFilterConditionListModalDialogState {
|
|
12
|
+
editedFilterConditions: AdvancedFilterCondition[];
|
|
13
|
+
validateOnChange: boolean;
|
|
14
|
+
isConditionError: boolean;
|
|
15
|
+
isParenthesisError: boolean;
|
|
16
|
+
}
|
|
17
|
+
export default class AdvancedFilterConditionListModalDialog extends React.Component<AdvancedFilterConditionListModalDialogProps, AdvancedFilterConditionListModalDialogState> {
|
|
18
|
+
private advancedFilterConditionListPanel;
|
|
19
|
+
constructor(props: Readonly<AdvancedFilterConditionListModalDialogProps>);
|
|
20
|
+
componentDidUpdate(prevProps: Readonly<AdvancedFilterConditionListModalDialogProps>): void;
|
|
21
|
+
render(): React.JSX.Element;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ModalDialog } from "d2coreui/components/modal/modalDialog";
|
|
3
|
+
import i18n from "d2core/i18n/i18n";
|
|
4
|
+
import AdvancedFilterConditionListPanel from "./advancedFilterConditionListPanel";
|
|
5
|
+
import cloneDeep from "lodash/cloneDeep";
|
|
6
|
+
import isEqual from "lodash/isEqual";
|
|
7
|
+
import AdvancedFilterValidationUtils from "../advancedFilterValidationUtils";
|
|
8
|
+
export default class AdvancedFilterConditionListModalDialog extends React.Component {
|
|
9
|
+
constructor(props) {
|
|
10
|
+
super(props);
|
|
11
|
+
this.advancedFilterConditionListPanel = null;
|
|
12
|
+
this.state = {
|
|
13
|
+
editedFilterConditions: cloneDeep(props.filterConditions),
|
|
14
|
+
validateOnChange: false,
|
|
15
|
+
isConditionError: false,
|
|
16
|
+
isParenthesisError: false,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
componentDidUpdate(prevProps) {
|
|
20
|
+
if (!isEqual(prevProps.filterConditions, this.props.filterConditions)) {
|
|
21
|
+
this.setState({ editedFilterConditions: cloneDeep(this.props.filterConditions) });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
return (React.createElement(ModalDialog, { mode: "OK_CANCEL", open: this.props.visible, title: i18n("Condition List"), initialWidth: window.innerWidth * 0.9, initialHeight: window.innerHeight * 0.75, styles: { body: { padding: 0 } }, okText: i18n("Apply Filter"), okButtonProps: { disabled: this.state.editedFilterConditions.length === 0 || this.state.isConditionError || this.state.isParenthesisError }, onOk: () => {
|
|
26
|
+
const validationResult = AdvancedFilterValidationUtils.validade(this.state.editedFilterConditions);
|
|
27
|
+
this.setState({
|
|
28
|
+
isConditionError: validationResult.isConditionError,
|
|
29
|
+
isParenthesisError: validationResult.isParenthesisError,
|
|
30
|
+
validateOnChange: true,
|
|
31
|
+
});
|
|
32
|
+
this.advancedFilterConditionListPanel?.refreshData();
|
|
33
|
+
if (!validationResult.isConditionError && !validationResult.isParenthesisError) {
|
|
34
|
+
this.props.onOk(this.state.editedFilterConditions);
|
|
35
|
+
}
|
|
36
|
+
}, onCancel: () => {
|
|
37
|
+
this.setState({
|
|
38
|
+
editedFilterConditions: cloneDeep(this.props.filterConditions),
|
|
39
|
+
validateOnChange: false,
|
|
40
|
+
isConditionError: false,
|
|
41
|
+
isParenthesisError: false,
|
|
42
|
+
});
|
|
43
|
+
this.props.onCancel();
|
|
44
|
+
} },
|
|
45
|
+
React.createElement(AdvancedFilterConditionListPanel, { ref: instance => this.advancedFilterConditionListPanel = instance, columnDefinitions: this.props.columnDefinitions, filterConditions: this.state.editedFilterConditions, isParenthesisError: this.state.isParenthesisError, onChange: filterConditions => {
|
|
46
|
+
if (this.state.validateOnChange) {
|
|
47
|
+
const validationResult = AdvancedFilterValidationUtils.validade(filterConditions);
|
|
48
|
+
this.advancedFilterConditionListPanel?.refreshData();
|
|
49
|
+
this.setState({
|
|
50
|
+
isConditionError: validationResult.isConditionError,
|
|
51
|
+
isParenthesisError: validationResult.isParenthesisError,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
this.setState({ editedFilterConditions: filterConditions });
|
|
55
|
+
} })));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=advancedFilterConditionListModalDialog.js.map
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advancedFilterConditionListModalDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport AdvancedFilterConditionListPanel from \"./advancedFilterConditionListPanel\";\r\nimport {AdvancedFilterCondition} from \"../../../../api/advancedFilterApi\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport isEqual from \"lodash/isEqual\";\r\nimport AdvancedFilterValidationUtils from \"../advancedFilterValidationUtils\";\r\nimport {AdvancedFilterColumnDefinition} from \"../../../../api/types/advancedFilter\";\r\n\r\ninterface AdvancedFilterConditionListModalDialogProps {\r\n visible: boolean\r\n filterConditions: AdvancedFilterCondition[]\r\n columnDefinitions: AdvancedFilterColumnDefinition[]\r\n\r\n onOk(filterConditions: AdvancedFilterCondition[]): void\r\n\r\n onCancel(): void\r\n}\r\n\r\ninterface AdvancedFilterConditionListModalDialogState {\r\n editedFilterConditions: AdvancedFilterCondition[]\r\n validateOnChange: boolean\r\n isConditionError: boolean\r\n isParenthesisError: boolean\r\n}\r\n\r\nexport default class AdvancedFilterConditionListModalDialog extends React.Component<AdvancedFilterConditionListModalDialogProps, AdvancedFilterConditionListModalDialogState> {\r\n private advancedFilterConditionListPanel: AdvancedFilterConditionListPanel | null = null;\r\n\r\n constructor(props: Readonly<AdvancedFilterConditionListModalDialogProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n editedFilterConditions: cloneDeep(props.filterConditions),\r\n validateOnChange: false,\r\n isConditionError: false,\r\n isParenthesisError: false,\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<AdvancedFilterConditionListModalDialogProps>) {\r\n if (!isEqual(prevProps.filterConditions, this.props.filterConditions)) {\r\n this.setState({editedFilterConditions: cloneDeep(this.props.filterConditions)});\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <ModalDialog\r\n mode={ModalDialogMode.OK_CANCEL}\r\n open={this.props.visible}\r\n title={i18n(\"Condition List\")}\r\n initialWidth={window.innerWidth * 0.9}\r\n initialHeight={window.innerHeight * 0.75}\r\n styles={{body: {padding: 0}}}\r\n okText={i18n(\"Apply Filter\")}\r\n okButtonProps={{disabled: this.state.editedFilterConditions.length === 0 || this.state.isConditionError || this.state.isParenthesisError}}\r\n onOk={() => {\r\n const validationResult = AdvancedFilterValidationUtils.validade(this.state.editedFilterConditions);\r\n this.setState({\r\n isConditionError: validationResult.isConditionError,\r\n isParenthesisError: validationResult.isParenthesisError,\r\n validateOnChange: true,\r\n });\r\n\r\n this.advancedFilterConditionListPanel?.refreshData();\r\n if (!validationResult.isConditionError && !validationResult.isParenthesisError) {\r\n this.props.onOk(this.state.editedFilterConditions);\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({\r\n editedFilterConditions: cloneDeep(this.props.filterConditions),\r\n validateOnChange: false,\r\n isConditionError: false,\r\n isParenthesisError: false,\r\n });\r\n this.props.onCancel();\r\n }}\r\n >\r\n <AdvancedFilterConditionListPanel\r\n ref={instance => this.advancedFilterConditionListPanel = instance}\r\n columnDefinitions={this.props.columnDefinitions}\r\n filterConditions={this.state.editedFilterConditions}\r\n isParenthesisError={this.state.isParenthesisError}\r\n onChange={filterConditions => {\r\n if (this.state.validateOnChange) {\r\n const validationResult = AdvancedFilterValidationUtils.validade(filterConditions);\r\n this.advancedFilterConditionListPanel?.refreshData();\r\n\r\n this.setState({\r\n isConditionError: validationResult.isConditionError,\r\n isParenthesisError: validationResult.isParenthesisError,\r\n });\r\n }\r\n\r\n this.setState({editedFilterConditions: filterConditions});\r\n }}\r\n />\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n}"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DataGridColDef } from "d2coreui/components/grid/dataGrid";
|
|
3
|
+
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
4
|
+
import { SelectionChangedEvent } from "ag-grid-community";
|
|
5
|
+
import { AdvancedFilterColumnDefinition } from "../../../../api/types/advancedFilter";
|
|
6
|
+
interface AdvancedFilterConditionListPanelProps {
|
|
7
|
+
filterConditions: AdvancedFilterCondition[];
|
|
8
|
+
columnDefinitions: AdvancedFilterColumnDefinition[];
|
|
9
|
+
isParenthesisError: boolean;
|
|
10
|
+
onChange(filterConditions: AdvancedFilterCondition[]): void;
|
|
11
|
+
}
|
|
12
|
+
interface AdvancedFilterConditionListPanelState {
|
|
13
|
+
selectedCondition: AdvancedFilterCondition | null;
|
|
14
|
+
loading: boolean;
|
|
15
|
+
}
|
|
16
|
+
export default class AdvancedFilterConditionListPanel extends React.Component<AdvancedFilterConditionListPanelProps, AdvancedFilterConditionListPanelState> {
|
|
17
|
+
private initialColumnDefs?;
|
|
18
|
+
private dataGrid;
|
|
19
|
+
private gridApi?;
|
|
20
|
+
constructor(props: Readonly<AdvancedFilterConditionListPanelProps>);
|
|
21
|
+
componentDidMount(): void;
|
|
22
|
+
refreshData(): void;
|
|
23
|
+
getInitialColumnDefs(): DataGridColDef[];
|
|
24
|
+
onSelectionChanged(event: SelectionChangedEvent): void;
|
|
25
|
+
private onAddNewCondition;
|
|
26
|
+
renderToolbarButtons(): React.JSX.Element;
|
|
27
|
+
renderDetailPanel(): React.JSX.Element;
|
|
28
|
+
renderControlPanel(): React.JSX.Element;
|
|
29
|
+
render(): React.JSX.Element;
|
|
30
|
+
}
|
|
31
|
+
export {};
|