d2aura 23.0.82 → 23.0.84
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/types/advancedFilter.d.ts +3 -0
- package/api/types/advancedFilter.js.map +1 -1
- package/coreui/components/advancedFilter/advancedFilterButton.d.ts +2 -2
- package/coreui/components/advancedFilter/advancedFilterButton.js.map +1 -1
- package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +2 -2
- package/coreui/components/advancedFilter/advancedFilteredGrid.js +6 -1
- package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map +1 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts +2 -2
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js +9 -1
- package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,9 @@ export interface AdvancedFilterColumnDefinition {
|
|
|
15
15
|
valueType: AdvancedFilterValueType;
|
|
16
16
|
optionList?: AdvancedFilterOptionListItem[];
|
|
17
17
|
}
|
|
18
|
+
export interface AdvancedFilterColumnContext extends AdvancedFilterColumnDefinition {
|
|
19
|
+
displayName: string;
|
|
20
|
+
}
|
|
18
21
|
export declare enum AdvancedFilterConditionError {
|
|
19
22
|
VALUE_REQUIRED = "value_required",
|
|
20
23
|
LOGICAL_OPERATOR_REQUIRED = "logical_operator_required",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedFilter.js","sourceRoot":"","sources":["../../../../api/types/advancedFilter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,yEAAU,CAAA;IACV,yEAAM,CAAA;IACN,mFAAW,CAAA;IACX,mFAAW,CAAA;IACX,+EAAS,CAAA;IACT,qEAAI,CAAA;AACR,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;
|
|
1
|
+
{"version":3,"file":"advancedFilter.js","sourceRoot":"","sources":["../../../../api/types/advancedFilter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,yEAAU,CAAA;IACV,yEAAM,CAAA;IACN,mFAAW,CAAA;IACX,mFAAW,CAAA;IACX,+EAAS,CAAA;IACT,qEAAI,CAAA;AACR,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAiBD,MAAM,CAAN,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACpC,iEAAiC,CAAA;IACjC,uFAAuD,CAAA;IACvD,6FAA6D,CAAA;AACjE,CAAC,EAJW,4BAA4B,KAA5B,4BAA4B,QAIvC","sourcesContent":["export enum AdvancedFilterValueType {\r\n STRING = 1,\r\n NUMBER,\r\n STRING_LIST,\r\n NUMBER_LIST,\r\n DATE_TIME,\r\n DATE,\r\n}\r\n\r\nexport interface AdvancedFilterOptionListItem {\r\n value: number | string\r\n title: string\r\n}\r\n\r\nexport interface AdvancedFilterColumnDefinition {\r\n columnName: string\r\n valueType: AdvancedFilterValueType\r\n optionList?: AdvancedFilterOptionListItem[]\r\n}\r\n\r\nexport interface AdvancedFilterColumnContext extends AdvancedFilterColumnDefinition {\r\n displayName: string\r\n}\r\n\r\nexport enum AdvancedFilterConditionError {\r\n VALUE_REQUIRED = \"value_required\",\r\n LOGICAL_OPERATOR_REQUIRED = \"logical_operator_required\",\r\n LOGICAL_OPERATOR_UNNECESSARY = \"logical_operator_unnecessary\",\r\n}"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AdvancedFilterApi, AdvancedFilterCondition } from "../../../api/advancedFilterApi";
|
|
3
|
-
import {
|
|
3
|
+
import { AdvancedFilterColumnContext } from "../../../api/types/advancedFilter";
|
|
4
4
|
interface Props {
|
|
5
5
|
advancedFilterApi: AdvancedFilterApi;
|
|
6
6
|
listName: string;
|
|
7
|
-
columnDefinitions:
|
|
7
|
+
columnDefinitions: AdvancedFilterColumnContext[];
|
|
8
8
|
filterConditions: AdvancedFilterCondition[];
|
|
9
9
|
onApplyFilter(filterConditions: AdvancedFilterCondition[]): void;
|
|
10
10
|
onMenuItemClicked?(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedFilterButton.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilterButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport AdvancedFilterConditionListModalDialog from \"./conditionList/advancedFilterConditionListModalDialog\";\r\nimport {AdvancedFilterApi, AdvancedFilterCondition,} from \"../../../api/advancedFilterApi\";\r\nimport {Button, Dropdown} from \"antd\";\r\nimport {\r\n CloseCircleOutlined,\r\n DownloadOutlined,\r\n EditOutlined,\r\n FilterOutlined,\r\n PlusCircleOutlined,\r\n SaveOutlined\r\n} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport FilterSaveModalDialog from \"./filterSave/filterSaveModalDialog\";\r\nimport AdvancedFilterListModalDialog from \"./filterList/advancedFilterListModalDialog\";\r\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\r\nimport {AdvancedFilterColumnDefinition} from \"../../../api/types/advancedFilter\";\r\n\r\ninterface Props {\r\n advancedFilterApi: AdvancedFilterApi\r\n listName: string\r\n columnDefinitions: AdvancedFilterColumnDefinition[]\r\n filterConditions: AdvancedFilterCondition[]\r\n\r\n onApplyFilter(filterConditions: AdvancedFilterCondition[]): void\r\n\r\n onMenuItemClicked?(): void\r\n}\r\n\r\ninterface State {\r\n conditionListModalDialogVisible: boolean\r\n filterSaveModalDialogVisible: boolean\r\n filterListModalDialogVisible: boolean\r\n\r\n saving: boolean\r\n}\r\n\r\nexport default class AdvancedFilterButton extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n props.advancedFilterApi.entityListName = props.listName;\r\n\r\n this.state = {\r\n conditionListModalDialogVisible: false,\r\n filterSaveModalDialogVisible: false,\r\n filterListModalDialogVisible: false,\r\n\r\n saving: false,\r\n }\r\n }\r\n\r\n private applyFilterConditions(filterConditions: AdvancedFilterCondition[]) {\r\n this.props.onApplyFilter(filterConditions);\r\n }\r\n\r\n private renderConditionListModalDialog() {\r\n return (\r\n <AdvancedFilterConditionListModalDialog\r\n visible={this.state.conditionListModalDialogVisible}\r\n columnDefinitions={this.props.columnDefinitions}\r\n filterConditions={this.props.filterConditions}\r\n onOk={filterConditions => {\r\n this.applyFilterConditions(filterConditions);\r\n this.setState({conditionListModalDialogVisible: false});\r\n }}\r\n onCancel={() => {\r\n this.setState({conditionListModalDialogVisible: false})\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterSaveModalDialog() {\r\n return (\r\n <FilterSaveModalDialog\r\n visible={this.state.filterSaveModalDialogVisible}\r\n saving={this.state.saving}\r\n onOk={async filterName => {\r\n this.setState({saving: true});\r\n const filter = await this.props.advancedFilterApi.createNewEntity();\r\n filter.code = filterName;\r\n filter.name = filterName;\r\n filter.filterConditions = AdvancedFilterUtils.serializeConditionValues(this.props.filterConditions);\r\n\r\n const savedEntity = await this.props.advancedFilterApi.saveEntity(filter);\r\n\r\n if (savedEntity) {\r\n this.setState({\r\n filterSaveModalDialogVisible: false,\r\n saving: false,\r\n });\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterSaveModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterListModalDialog() {\r\n return (\r\n <AdvancedFilterListModalDialog\r\n api={this.props.advancedFilterApi}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n visible={this.state.filterListModalDialogVisible}\r\n multiSelect\r\n onItemsSelected={async selectedItems => {\r\n const selectedFilter = selectedItems[0];\r\n if (selectedFilter) {\r\n const filterConditions = await this.props.advancedFilterApi.getFilterConditions(selectedFilter.id);\r\n const parsedFilterConditions = AdvancedFilterUtils.parseConditionValues(filterConditions);\r\n this.applyFilterConditions(parsedFilterConditions);\r\n this.setState({filterListModalDialogVisible: false});\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterListModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n const filterNotPresented = this.props.filterConditions.length === 0;\r\n\r\n return (\r\n <div>\r\n {this.renderConditionListModalDialog()}\r\n {this.renderFilterSaveModalDialog()}\r\n {this.renderFilterListModalDialog()}\r\n <Dropdown\r\n trigger={[\"click\"]}\r\n menu={{\r\n items: [\r\n {\r\n key: \"new\",\r\n icon: filterNotPresented ? <PlusCircleOutlined/> : <EditOutlined/>,\r\n label: i18n(filterNotPresented ? \"New Filter\" : \"Edit Filter\"),\r\n onClick: () => {\r\n this.setState({conditionListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"destroy\",\r\n style: {color: filterNotPresented ? \"rgba(0, 0, 0, 0.25)\" : undefined},\r\n danger: true,\r\n disabled: filterNotPresented,\r\n icon: <CloseCircleOutlined/>,\r\n label: i18n(\"Deactivate Filter\"),\r\n onClick: () => {\r\n this.props.onApplyFilter([]);\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"save\",\r\n disabled: filterNotPresented,\r\n icon: <SaveOutlined/>,\r\n label: i18n(\"Save Filter\"),\r\n onClick: () => {\r\n this.setState({filterSaveModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"load\",\r\n icon: <DownloadOutlined/>,\r\n label: i18n(\"Load Filter\"),\r\n onClick: () => {\r\n this.setState({filterListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n ]\r\n }}\r\n >\r\n <Button\r\n style={{width: 44}}\r\n type={this.props.filterConditions.length !== 0 ? \"primary\" : undefined}\r\n icon={<FilterOutlined/>}\r\n />\r\n </Dropdown>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
|
|
1
|
+
{"version":3,"file":"advancedFilterButton.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilterButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport AdvancedFilterConditionListModalDialog from \"./conditionList/advancedFilterConditionListModalDialog\";\r\nimport {AdvancedFilterApi, AdvancedFilterCondition,} from \"../../../api/advancedFilterApi\";\r\nimport {Button, Dropdown} from \"antd\";\r\nimport {\r\n CloseCircleOutlined,\r\n DownloadOutlined,\r\n EditOutlined,\r\n FilterOutlined,\r\n PlusCircleOutlined,\r\n SaveOutlined\r\n} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport FilterSaveModalDialog from \"./filterSave/filterSaveModalDialog\";\r\nimport AdvancedFilterListModalDialog from \"./filterList/advancedFilterListModalDialog\";\r\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\r\nimport {AdvancedFilterColumnContext} from \"../../../api/types/advancedFilter\";\r\n\r\ninterface Props {\r\n advancedFilterApi: AdvancedFilterApi\r\n listName: string\r\n columnDefinitions: AdvancedFilterColumnContext[]\r\n filterConditions: AdvancedFilterCondition[]\r\n\r\n onApplyFilter(filterConditions: AdvancedFilterCondition[]): void\r\n\r\n onMenuItemClicked?(): void\r\n}\r\n\r\ninterface State {\r\n conditionListModalDialogVisible: boolean\r\n filterSaveModalDialogVisible: boolean\r\n filterListModalDialogVisible: boolean\r\n\r\n saving: boolean\r\n}\r\n\r\nexport default class AdvancedFilterButton extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n props.advancedFilterApi.entityListName = props.listName;\r\n\r\n this.state = {\r\n conditionListModalDialogVisible: false,\r\n filterSaveModalDialogVisible: false,\r\n filterListModalDialogVisible: false,\r\n\r\n saving: false,\r\n }\r\n }\r\n\r\n private applyFilterConditions(filterConditions: AdvancedFilterCondition[]) {\r\n this.props.onApplyFilter(filterConditions);\r\n }\r\n\r\n private renderConditionListModalDialog() {\r\n return (\r\n <AdvancedFilterConditionListModalDialog\r\n visible={this.state.conditionListModalDialogVisible}\r\n columnDefinitions={this.props.columnDefinitions}\r\n filterConditions={this.props.filterConditions}\r\n onOk={filterConditions => {\r\n this.applyFilterConditions(filterConditions);\r\n this.setState({conditionListModalDialogVisible: false});\r\n }}\r\n onCancel={() => {\r\n this.setState({conditionListModalDialogVisible: false})\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterSaveModalDialog() {\r\n return (\r\n <FilterSaveModalDialog\r\n visible={this.state.filterSaveModalDialogVisible}\r\n saving={this.state.saving}\r\n onOk={async filterName => {\r\n this.setState({saving: true});\r\n const filter = await this.props.advancedFilterApi.createNewEntity();\r\n filter.code = filterName;\r\n filter.name = filterName;\r\n filter.filterConditions = AdvancedFilterUtils.serializeConditionValues(this.props.filterConditions);\r\n\r\n const savedEntity = await this.props.advancedFilterApi.saveEntity(filter);\r\n\r\n if (savedEntity) {\r\n this.setState({\r\n filterSaveModalDialogVisible: false,\r\n saving: false,\r\n });\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterSaveModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterListModalDialog() {\r\n return (\r\n <AdvancedFilterListModalDialog\r\n api={this.props.advancedFilterApi}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n visible={this.state.filterListModalDialogVisible}\r\n multiSelect\r\n onItemsSelected={async selectedItems => {\r\n const selectedFilter = selectedItems[0];\r\n if (selectedFilter) {\r\n const filterConditions = await this.props.advancedFilterApi.getFilterConditions(selectedFilter.id);\r\n const parsedFilterConditions = AdvancedFilterUtils.parseConditionValues(filterConditions);\r\n this.applyFilterConditions(parsedFilterConditions);\r\n this.setState({filterListModalDialogVisible: false});\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterListModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n const filterNotPresented = this.props.filterConditions.length === 0;\r\n\r\n return (\r\n <div>\r\n {this.renderConditionListModalDialog()}\r\n {this.renderFilterSaveModalDialog()}\r\n {this.renderFilterListModalDialog()}\r\n <Dropdown\r\n trigger={[\"click\"]}\r\n menu={{\r\n items: [\r\n {\r\n key: \"new\",\r\n icon: filterNotPresented ? <PlusCircleOutlined/> : <EditOutlined/>,\r\n label: i18n(filterNotPresented ? \"New Filter\" : \"Edit Filter\"),\r\n onClick: () => {\r\n this.setState({conditionListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"destroy\",\r\n style: {color: filterNotPresented ? \"rgba(0, 0, 0, 0.25)\" : undefined},\r\n danger: true,\r\n disabled: filterNotPresented,\r\n icon: <CloseCircleOutlined/>,\r\n label: i18n(\"Deactivate Filter\"),\r\n onClick: () => {\r\n this.props.onApplyFilter([]);\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"save\",\r\n disabled: filterNotPresented,\r\n icon: <SaveOutlined/>,\r\n label: i18n(\"Save Filter\"),\r\n onClick: () => {\r\n this.setState({filterSaveModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"load\",\r\n icon: <DownloadOutlined/>,\r\n label: i18n(\"Load Filter\"),\r\n onClick: () => {\r\n this.setState({filterListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n ]\r\n }}\r\n >\r\n <Button\r\n style={{width: 44}}\r\n type={this.props.filterConditions.length !== 0 ? \"primary\" : undefined}\r\n icon={<FilterOutlined/>}\r\n />\r\n </Dropdown>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
|
|
@@ -3,7 +3,7 @@ import { AdvancedFilterApi, AdvancedFilterCondition } from "../../../api/advance
|
|
|
3
3
|
import Entity from "../../../api/types/entity";
|
|
4
4
|
import ExtendedDataGrid from "d2coreui/components/grid/extendedDataGrid";
|
|
5
5
|
import { GridApi, IDatasource } from "ag-grid-community";
|
|
6
|
-
import { AdvancedFilterColumnDefinition } from "../../../api/types/advancedFilter";
|
|
6
|
+
import { AdvancedFilterColumnContext, AdvancedFilterColumnDefinition } from "../../../api/types/advancedFilter";
|
|
7
7
|
import { DataGridColDef, OnLoadDataCallback } from "d2coreui/components/grid/dataGrid";
|
|
8
8
|
import AbstractEntityApi, { PageableList } from "../../../api/abstractEntityApi";
|
|
9
9
|
export interface AdvancedFilterConfig {
|
|
@@ -40,7 +40,7 @@ export default abstract class AdvancedFilteredGrid<T extends Entity, P extends A
|
|
|
40
40
|
protected getLoadedData(): T[];
|
|
41
41
|
private saveConfiguration;
|
|
42
42
|
abstract getAdvancedFilterConfig(): AdvancedFilterConfig | undefined;
|
|
43
|
-
protected getAdvancedFilterColumnDefinitions():
|
|
43
|
+
protected getAdvancedFilterColumnDefinitions(): AdvancedFilterColumnContext[];
|
|
44
44
|
protected renderFloatingFilter(columnDefinition: AdvancedFilterColumnDefinition): React.JSX.Element;
|
|
45
45
|
protected onApplyFilter(filterConditions: AdvancedFilterCondition[]): void;
|
|
46
46
|
private onAddCondition;
|
|
@@ -98,7 +98,12 @@ export default class AdvancedFilteredGrid extends React.Component {
|
|
|
98
98
|
getAdvancedFilterColumnDefinitions() {
|
|
99
99
|
return this.dataGrid?.props.columnDefs
|
|
100
100
|
.filter(value => value.renderFilter && value.context)
|
|
101
|
-
.map(value =>
|
|
101
|
+
.map(value => {
|
|
102
|
+
return {
|
|
103
|
+
...value.context,
|
|
104
|
+
displayName: value.headerName ?? "",
|
|
105
|
+
};
|
|
106
|
+
})
|
|
102
107
|
?? [];
|
|
103
108
|
}
|
|
104
109
|
renderFloatingFilter(columnDefinition) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedFilteredGrid.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilteredGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n AdvancedFilterApi,\n AdvancedFilterCondition,\n AdvancedFilterLogicalOperator,\n AdvancedFilterOperator,\n AdvancedFilterValue\n} from \"../../../api/advancedFilterApi\";\nimport Entity from \"../../../api/types/entity\";\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\nimport {GridApi, IDatasource} from \"ag-grid-community\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport AdvancedFilterFloatingColumnComponent from \"./floatingColumnFilter/advancedFilterFloatingColumnComponent\";\nimport {AdvancedFilterColumnDefinition} from \"../../../api/types/advancedFilter\";\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\nimport {\n getCodeColumn,\n getDateColumn,\n getDateTimeColumn,\n getDbBooleanColumn,\n getEntityColumn,\n getIDColumn,\n getNameColumn,\n getNumberColumn,\n getStringColumn\n} from \"../grid/standardColumns\";\nimport {\n GeneralEntityColumn,\n getDateAdvancedFilterColumn,\n getDateTimeAdvancedFilterColumn,\n getDbBooleanAdvancedFilterColumn,\n getNumberAdvancedFilterColumn,\n getStringAdvancedFilterColumn\n} from \"./advancedFilterColumnDefinitions\";\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\nimport i18n from \"d2core/i18n/i18n\";\nimport AbstractEntityApi, {PageableList} from \"../../../api/abstractEntityApi\";\n\ninterface AdvancedFilterSavedConditions {\n version: number\n filterConditions: AdvancedFilterCondition[]\n}\n\nexport interface AdvancedFilterConfig {\n version: number\n listName: string\n}\n\nexport interface AdvancedFilteredGridProps<T extends Entity> {\n api: AbstractEntityApi<T>\n advancedFilterApi: AdvancedFilterApi\n filterConditions?: AdvancedFilterCondition[]\n}\n\nexport interface AdvancedFilteredGridState<T extends Entity> {\n filterConditions: AdvancedFilterCondition[]\n selectedData: T[]\n columnDefs: DataGridColDef[]\n loading: boolean\n datasource: IDatasource\n}\n\nexport default abstract class AdvancedFilteredGrid<T extends Entity, P extends AdvancedFilteredGridProps<T>, S extends AdvancedFilteredGridState<T>> extends React.Component<P, S> {\n protected dataGrid: ExtendedDataGrid<T> | null = null;\n protected gridApi?: GridApi;\n protected firstLoadedPage: PageableList<T> | null = null;\n protected manualReload = true;\n protected initialColumnDefs?: DataGridColDef[];\n\n protected constructor(props: Readonly<P>) {\n super(props);\n\n this.renderFloatingFilter = this.renderFloatingFilter.bind(this);\n this.onApplyFilter = this.onApplyFilter.bind(this);\n this.onAddCondition = this.onAddCondition.bind(this);\n this.onSetCondition = this.onSetCondition.bind(this);\n this.onClearCondition = this.onClearCondition.bind(this);\n this.onLoadData = this.onLoadData.bind(this);\n }\n\n componentDidMount() {\n // can be set in child component from url parameters\n if (this.state.filterConditions.length === 0) {\n const advancedFilterConfig = this.getAdvancedFilterConfig();\n\n if (advancedFilterConfig) {\n const item = localStorage.getItem(advancedFilterConfig.listName);\n\n if (item) {\n try {\n const savedConditions: AdvancedFilterSavedConditions = JSON.parse(item);\n if (savedConditions.version === advancedFilterConfig.version) {\n this.setState({filterConditions: savedConditions.filterConditions});\n }\n } catch {\n }\n }\n }\n }\n }\n\n protected async onLoadData(callback: OnLoadDataCallback) {\n this.manualReload = true;\n this.firstLoadedPage = await this.getRecords(0, 100);\n callback(this.firstLoadedPage.totalNumberOfRows);\n this.gridApi?.onFilterChanged();\n }\n\n protected async getRecords(from: number, to: number): Promise<PageableList<T>> {\n this.setState({loading: true});\n\n let orderBy = \"\";\n const sortModel = this.dataGrid?.getSortModel()[0];\n if (sortModel) {\n orderBy = `${sortModel.colId} ${sortModel.sort}`;\n }\n const pageableList = await this.getData(from, to, orderBy, AdvancedFilterUtils.serializeConditionValues(this.getAllFilterConditions()));\n\n await this.onRecordsLoaded();\n\n this.setState({loading: false});\n return pageableList;\n }\n\n protected async getData(from: number, to: number, orderBy: string, filterConditions: AdvancedFilterCondition[]) {\n return await this.props.api.getAllData(from, to, orderBy, filterConditions, this.getOnlyValidRecords());\n }\n\n abstract getOnlyValidRecords(): boolean\n\n protected getAdditionalFilterConditions(): AdvancedFilterCondition[] {\n return [];\n }\n\n protected getAllFilterConditions(): AdvancedFilterCondition[] {\n const filterConditions = cloneDeep(this.state.filterConditions);\n if (this.props.filterConditions) {\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(...this.props.filterConditions);\n }\n\n const additionalFilterConditions = this.getAdditionalFilterConditions();\n if (additionalFilterConditions.length > 0) {\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(...additionalFilterConditions);\n }\n\n return filterConditions;\n }\n\n protected async onRecordsLoaded() {\n }\n\n protected getLoadedData(): T[] {\n const data: T[] = [];\n this.gridApi?.forEachNode(value => data.push(value.data));\n\n return data;\n }\n\n private saveConfiguration() {\n const advancedFilterConfig = this.getAdvancedFilterConfig();\n\n if (advancedFilterConfig) {\n const conditionsToSave: AdvancedFilterSavedConditions = {\n version: advancedFilterConfig.version,\n filterConditions: this.state.filterConditions,\n }\n\n localStorage.setItem(advancedFilterConfig.listName, JSON.stringify(conditionsToSave));\n }\n }\n\n abstract getAdvancedFilterConfig(): AdvancedFilterConfig | undefined\n\n protected getAdvancedFilterColumnDefinitions(): AdvancedFilterColumnDefinition[] {\n return this.dataGrid?.props.columnDefs\n .filter(value => value.renderFilter && value.context)\n .map(value => value.context as AdvancedFilterColumnDefinition)\n ?? [];\n }\n\n protected renderFloatingFilter(columnDefinition: AdvancedFilterColumnDefinition) {\n const filterCondition = this.state.filterConditions.find(value => value.column_name === columnDefinition.columnName);\n return (\n <AdvancedFilterFloatingColumnComponent\n filterCondition={filterCondition}\n columnDefinition={columnDefinition}\n onAddCondition={(operator, value) => this.onAddCondition(columnDefinition, operator, value)}\n onSetCondition={(operator, value) => this.onSetCondition(columnDefinition, operator, value)}\n onClearCondition={() => this.onClearCondition(columnDefinition)}\n />\n );\n }\n\n protected onApplyFilter(filterConditions: AdvancedFilterCondition[]) {\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n private onAddCondition(columnDefinition: AdvancedFilterColumnDefinition, operator: AdvancedFilterOperator, value: AdvancedFilterValue) {\n const filterConditions = cloneDeep(this.state.filterConditions);\n\n const filterConditionIndex = filterConditions.findIndex(filterCondition => filterCondition.column_name === columnDefinition.columnName);\n\n if (filterConditionIndex >= 0) {\n if (filterConditions[filterConditionIndex + 1]) {\n filterConditions[filterConditionIndex].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions[filterConditionIndex].operator = operator;\n filterConditions[filterConditionIndex].value = value;\n } else {\n const newId = filterConditions.length === 0 ? 0 : Math.max(...filterConditions.map(value => value.id)) + 1;\n const newCondition = AdvancedFilterUtils.newCondition(columnDefinition, {operator, value});\n newCondition.id = newId;\n\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(newCondition);\n }\n\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n private onSetCondition(columnDefinition: AdvancedFilterColumnDefinition, operator: AdvancedFilterOperator, value: AdvancedFilterValue) {\n const newCondition = AdvancedFilterUtils.newCondition(columnDefinition, {operator, value});\n\n this.setState({filterConditions: [newCondition]}, () => {\n this.dataGrid?.loadData()\n this.saveConfiguration();\n });\n }\n\n private onClearCondition(columnDefinition: AdvancedFilterColumnDefinition) {\n const filterConditions = this.state.filterConditions.filter(value => value.column_name !== columnDefinition.columnName);\n\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = null;\n }\n\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n // columns\n protected getIdColumn(columnName: string) {\n return getIDColumn(() => this.renderFloatingFilter(getNumberAdvancedFilterColumn(columnName)), {colId: columnName, context: getNumberAdvancedFilterColumn(columnName)});\n }\n\n protected getCodeColumn(params?: Partial<DataGridColDef>) {\n return getCodeColumn(() => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE)), {context: getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), ...params});\n }\n\n protected getCodeColumnWithBackgroundColor() {\n return this.getEntityColumn({codeColumn: GeneralEntityColumn.CODE, nameColumn: GeneralEntityColumn.NAME, backgroundColorColumn: GeneralEntityColumn.BG_COLOR}, {headerName: i18n(\"Code\")});\n }\n\n protected getNameColumn(params?: Partial<DataGridColDef>) {\n return getNameColumn(() => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME)), {context: getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), ...params});\n }\n\n protected getNoteColumn(params?: Partial<DataGridColDef>) {\n return getStringColumn(GeneralEntityColumn.NOTE, () => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE)), {headerName: i18n(\"Note\"), initialWidth: 200, context: getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE), ...params});\n }\n\n protected getEntityColumn(columnConfig: {codeColumn: string, nameColumn: string, backgroundColorColumn?: string}, params?: Partial<DataGridColDef>, omitFilter?: boolean) {\n return getEntityColumn(\n columnConfig,\n omitFilter ? undefined : () => this.renderFloatingFilter(getStringAdvancedFilterColumn(columnConfig.codeColumn)),\n {context: getStringAdvancedFilterColumn(columnConfig.codeColumn), ...params}\n );\n }\n\n protected getDateColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDateColumn(columnName, () => this.renderFloatingFilter(getDateAdvancedFilterColumn(columnName)), {context: getDateAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getDateTimeColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDateTimeColumn(columnName, () => this.renderFloatingFilter(getDateTimeAdvancedFilterColumn(columnName)), {context: getDateTimeAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getDbBooleanColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDbBooleanColumn(columnName, () => this.renderFloatingFilter(getDbBooleanAdvancedFilterColumn(columnName)), {context: getDbBooleanAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getStringColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getStringColumn(columnName, () => this.renderFloatingFilter(getStringAdvancedFilterColumn(columnName)), {context: getStringAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getNumberColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getNumberColumn(columnName, () => this.renderFloatingFilter(getNumberAdvancedFilterColumn(columnName)), {context: getNumberAdvancedFilterColumn(columnName), ...params});\n }\n\n}"]}
|
|
1
|
+
{"version":3,"file":"advancedFilteredGrid.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilteredGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n AdvancedFilterApi,\n AdvancedFilterCondition,\n AdvancedFilterLogicalOperator,\n AdvancedFilterOperator,\n AdvancedFilterValue\n} from \"../../../api/advancedFilterApi\";\nimport Entity from \"../../../api/types/entity\";\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\nimport {GridApi, IDatasource} from \"ag-grid-community\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport AdvancedFilterFloatingColumnComponent from \"./floatingColumnFilter/advancedFilterFloatingColumnComponent\";\nimport {AdvancedFilterColumnContext, AdvancedFilterColumnDefinition} from \"../../../api/types/advancedFilter\";\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\nimport {\n getCodeColumn,\n getDateColumn,\n getDateTimeColumn,\n getDbBooleanColumn,\n getEntityColumn,\n getIDColumn,\n getNameColumn,\n getNumberColumn,\n getStringColumn\n} from \"../grid/standardColumns\";\nimport {\n GeneralEntityColumn,\n getDateAdvancedFilterColumn,\n getDateTimeAdvancedFilterColumn,\n getDbBooleanAdvancedFilterColumn,\n getNumberAdvancedFilterColumn,\n getStringAdvancedFilterColumn\n} from \"./advancedFilterColumnDefinitions\";\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\nimport i18n from \"d2core/i18n/i18n\";\nimport AbstractEntityApi, {PageableList} from \"../../../api/abstractEntityApi\";\n\ninterface AdvancedFilterSavedConditions {\n version: number\n filterConditions: AdvancedFilterCondition[]\n}\n\nexport interface AdvancedFilterConfig {\n version: number\n listName: string\n}\n\nexport interface AdvancedFilteredGridProps<T extends Entity> {\n api: AbstractEntityApi<T>\n advancedFilterApi: AdvancedFilterApi\n filterConditions?: AdvancedFilterCondition[]\n}\n\nexport interface AdvancedFilteredGridState<T extends Entity> {\n filterConditions: AdvancedFilterCondition[]\n selectedData: T[]\n columnDefs: DataGridColDef[]\n loading: boolean\n datasource: IDatasource\n}\n\nexport default abstract class AdvancedFilteredGrid<T extends Entity, P extends AdvancedFilteredGridProps<T>, S extends AdvancedFilteredGridState<T>> extends React.Component<P, S> {\n protected dataGrid: ExtendedDataGrid<T> | null = null;\n protected gridApi?: GridApi;\n protected firstLoadedPage: PageableList<T> | null = null;\n protected manualReload = true;\n protected initialColumnDefs?: DataGridColDef[];\n\n protected constructor(props: Readonly<P>) {\n super(props);\n\n this.renderFloatingFilter = this.renderFloatingFilter.bind(this);\n this.onApplyFilter = this.onApplyFilter.bind(this);\n this.onAddCondition = this.onAddCondition.bind(this);\n this.onSetCondition = this.onSetCondition.bind(this);\n this.onClearCondition = this.onClearCondition.bind(this);\n this.onLoadData = this.onLoadData.bind(this);\n }\n\n componentDidMount() {\n // can be set in child component from url parameters\n if (this.state.filterConditions.length === 0) {\n const advancedFilterConfig = this.getAdvancedFilterConfig();\n\n if (advancedFilterConfig) {\n const item = localStorage.getItem(advancedFilterConfig.listName);\n\n if (item) {\n try {\n const savedConditions: AdvancedFilterSavedConditions = JSON.parse(item);\n if (savedConditions.version === advancedFilterConfig.version) {\n this.setState({filterConditions: savedConditions.filterConditions});\n }\n } catch {\n }\n }\n }\n }\n }\n\n protected async onLoadData(callback: OnLoadDataCallback) {\n this.manualReload = true;\n this.firstLoadedPage = await this.getRecords(0, 100);\n callback(this.firstLoadedPage.totalNumberOfRows);\n this.gridApi?.onFilterChanged();\n }\n\n protected async getRecords(from: number, to: number): Promise<PageableList<T>> {\n this.setState({loading: true});\n\n let orderBy = \"\";\n const sortModel = this.dataGrid?.getSortModel()[0];\n if (sortModel) {\n orderBy = `${sortModel.colId} ${sortModel.sort}`;\n }\n const pageableList = await this.getData(from, to, orderBy, AdvancedFilterUtils.serializeConditionValues(this.getAllFilterConditions()));\n\n await this.onRecordsLoaded();\n\n this.setState({loading: false});\n return pageableList;\n }\n\n protected async getData(from: number, to: number, orderBy: string, filterConditions: AdvancedFilterCondition[]) {\n return await this.props.api.getAllData(from, to, orderBy, filterConditions, this.getOnlyValidRecords());\n }\n\n abstract getOnlyValidRecords(): boolean\n\n protected getAdditionalFilterConditions(): AdvancedFilterCondition[] {\n return [];\n }\n\n protected getAllFilterConditions(): AdvancedFilterCondition[] {\n const filterConditions = cloneDeep(this.state.filterConditions);\n if (this.props.filterConditions) {\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(...this.props.filterConditions);\n }\n\n const additionalFilterConditions = this.getAdditionalFilterConditions();\n if (additionalFilterConditions.length > 0) {\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(...additionalFilterConditions);\n }\n\n return filterConditions;\n }\n\n protected async onRecordsLoaded() {\n }\n\n protected getLoadedData(): T[] {\n const data: T[] = [];\n this.gridApi?.forEachNode(value => data.push(value.data));\n\n return data;\n }\n\n private saveConfiguration() {\n const advancedFilterConfig = this.getAdvancedFilterConfig();\n\n if (advancedFilterConfig) {\n const conditionsToSave: AdvancedFilterSavedConditions = {\n version: advancedFilterConfig.version,\n filterConditions: this.state.filterConditions,\n }\n\n localStorage.setItem(advancedFilterConfig.listName, JSON.stringify(conditionsToSave));\n }\n }\n\n abstract getAdvancedFilterConfig(): AdvancedFilterConfig | undefined\n\n protected getAdvancedFilterColumnDefinitions(): AdvancedFilterColumnContext[] {\n return this.dataGrid?.props.columnDefs\n .filter(value => value.renderFilter && value.context)\n .map(value => {\n return {\n ...value.context as AdvancedFilterColumnDefinition,\n displayName: value.headerName ?? \"\",\n }\n })\n ?? [];\n }\n\n protected renderFloatingFilter(columnDefinition: AdvancedFilterColumnDefinition) {\n const filterCondition = this.state.filterConditions.find(value => value.column_name === columnDefinition.columnName);\n return (\n <AdvancedFilterFloatingColumnComponent\n filterCondition={filterCondition}\n columnDefinition={columnDefinition}\n onAddCondition={(operator, value) => this.onAddCondition(columnDefinition, operator, value)}\n onSetCondition={(operator, value) => this.onSetCondition(columnDefinition, operator, value)}\n onClearCondition={() => this.onClearCondition(columnDefinition)}\n />\n );\n }\n\n protected onApplyFilter(filterConditions: AdvancedFilterCondition[]) {\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n private onAddCondition(columnDefinition: AdvancedFilterColumnDefinition, operator: AdvancedFilterOperator, value: AdvancedFilterValue) {\n const filterConditions = cloneDeep(this.state.filterConditions);\n\n const filterConditionIndex = filterConditions.findIndex(filterCondition => filterCondition.column_name === columnDefinition.columnName);\n\n if (filterConditionIndex >= 0) {\n if (filterConditions[filterConditionIndex + 1]) {\n filterConditions[filterConditionIndex].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions[filterConditionIndex].operator = operator;\n filterConditions[filterConditionIndex].value = value;\n } else {\n const newId = filterConditions.length === 0 ? 0 : Math.max(...filterConditions.map(value => value.id)) + 1;\n const newCondition = AdvancedFilterUtils.newCondition(columnDefinition, {operator, value});\n newCondition.id = newId;\n\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\n }\n filterConditions.push(newCondition);\n }\n\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n private onSetCondition(columnDefinition: AdvancedFilterColumnDefinition, operator: AdvancedFilterOperator, value: AdvancedFilterValue) {\n const newCondition = AdvancedFilterUtils.newCondition(columnDefinition, {operator, value});\n\n this.setState({filterConditions: [newCondition]}, () => {\n this.dataGrid?.loadData()\n this.saveConfiguration();\n });\n }\n\n private onClearCondition(columnDefinition: AdvancedFilterColumnDefinition) {\n const filterConditions = this.state.filterConditions.filter(value => value.column_name !== columnDefinition.columnName);\n\n if (filterConditions.length > 0) {\n filterConditions[filterConditions.length - 1].logical_operator = null;\n }\n\n this.setState({filterConditions: filterConditions}, () => {\n this.dataGrid?.loadData();\n this.saveConfiguration();\n });\n }\n\n // columns\n protected getIdColumn(columnName: string) {\n return getIDColumn(() => this.renderFloatingFilter(getNumberAdvancedFilterColumn(columnName)), {colId: columnName, context: getNumberAdvancedFilterColumn(columnName)});\n }\n\n protected getCodeColumn(params?: Partial<DataGridColDef>) {\n return getCodeColumn(() => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE)), {context: getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), ...params});\n }\n\n protected getCodeColumnWithBackgroundColor() {\n return this.getEntityColumn({codeColumn: GeneralEntityColumn.CODE, nameColumn: GeneralEntityColumn.NAME, backgroundColorColumn: GeneralEntityColumn.BG_COLOR}, {headerName: i18n(\"Code\")});\n }\n\n protected getNameColumn(params?: Partial<DataGridColDef>) {\n return getNameColumn(() => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME)), {context: getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), ...params});\n }\n\n protected getNoteColumn(params?: Partial<DataGridColDef>) {\n return getStringColumn(GeneralEntityColumn.NOTE, () => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE)), {headerName: i18n(\"Note\"), initialWidth: 200, context: getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE), ...params});\n }\n\n protected getEntityColumn(columnConfig: {codeColumn: string, nameColumn: string, backgroundColorColumn?: string}, params?: Partial<DataGridColDef>, omitFilter?: boolean) {\n return getEntityColumn(\n columnConfig,\n omitFilter ? undefined : () => this.renderFloatingFilter(getStringAdvancedFilterColumn(columnConfig.codeColumn)),\n {context: getStringAdvancedFilterColumn(columnConfig.codeColumn), ...params}\n );\n }\n\n protected getDateColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDateColumn(columnName, () => this.renderFloatingFilter(getDateAdvancedFilterColumn(columnName)), {context: getDateAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getDateTimeColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDateTimeColumn(columnName, () => this.renderFloatingFilter(getDateTimeAdvancedFilterColumn(columnName)), {context: getDateTimeAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getDbBooleanColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getDbBooleanColumn(columnName, () => this.renderFloatingFilter(getDbBooleanAdvancedFilterColumn(columnName)), {context: getDbBooleanAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getStringColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getStringColumn(columnName, () => this.renderFloatingFilter(getStringAdvancedFilterColumn(columnName)), {context: getStringAdvancedFilterColumn(columnName), ...params});\n }\n\n protected getNumberColumn(columnName: string, params?: Partial<DataGridColDef>) {\n return getNumberColumn(columnName, () => this.renderFloatingFilter(getNumberAdvancedFilterColumn(columnName)), {context: getNumberAdvancedFilterColumn(columnName), ...params});\n }\n\n}"]}
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
3
|
-
import {
|
|
3
|
+
import { AdvancedFilterColumnContext } from "../../../../api/types/advancedFilter";
|
|
4
4
|
interface Props {
|
|
5
5
|
editedCondition: AdvancedFilterCondition;
|
|
6
|
-
columnDefinitions:
|
|
6
|
+
columnDefinitions: AdvancedFilterColumnContext[];
|
|
7
7
|
onClose(): void;
|
|
8
8
|
onNextRecord(): void;
|
|
9
9
|
onPrevRecord(): void;
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js
CHANGED
|
@@ -43,7 +43,7 @@ export default class AdvancedFilterConditionDetailPanel extends React.Component
|
|
|
43
43
|
editedCondition.operator = newAllowedOperators[0];
|
|
44
44
|
this.props.onChange(editedCondition);
|
|
45
45
|
} }, this.props.columnDefinitions.map(value => {
|
|
46
|
-
return (React.createElement(Select.Option, { value: value.columnName, key: value.columnName }, value.
|
|
46
|
+
return (React.createElement(Select.Option, { value: value.columnName, key: value.columnName }, value.displayName));
|
|
47
47
|
}))),
|
|
48
48
|
React.createElement(Form.Item, { label: i18n("Operator") },
|
|
49
49
|
React.createElement(AdvancedFilterOperatorSelect, { operator: editedCondition.operator, value: editedCondition.value, valueType: editedCondition.value_type, onChange: (operator, value) => {
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map
CHANGED
|
@@ -1 +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 {getAdvancedFilterErrorInfo} 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] = getAdvancedFilterErrorInfo([AdvancedFilterConditionError.VALUE_REQUIRED], editedCondition._errors ?? []);\r\n const [logicalOperatorValidateStatus, logicalOperatorErrorMessage] = getAdvancedFilterErrorInfo([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}"]}
|
|
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 {getAdvancedFilterErrorInfo} from \"../advancedFilterValidationUtils\";\r\nimport AdvancedFilterOperatorSelect from \"../components/advancedFilterOperatorSelect\";\r\nimport AdvancedFilterValueInput from \"../components/advancedFilterValueInput\";\r\nimport {AdvancedFilterColumnContext, AdvancedFilterConditionError} from \"../../../../api/types/advancedFilter\";\r\nimport DetailHeaderPanel from \"../../grid/detailHeaderPanel\";\r\n\r\ninterface Props {\r\n editedCondition: AdvancedFilterCondition\r\n columnDefinitions: AdvancedFilterColumnContext[]\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] = getAdvancedFilterErrorInfo([AdvancedFilterConditionError.VALUE_REQUIRED], editedCondition._errors ?? []);\r\n const [logicalOperatorValidateStatus, logicalOperatorErrorMessage] = getAdvancedFilterErrorInfo([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.displayName}\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
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
3
|
-
import {
|
|
3
|
+
import { AdvancedFilterColumnContext } from "../../../../api/types/advancedFilter";
|
|
4
4
|
interface AdvancedFilterConditionListModalDialogProps {
|
|
5
5
|
visible: boolean;
|
|
6
6
|
filterConditions: AdvancedFilterCondition[];
|
|
7
|
-
columnDefinitions:
|
|
7
|
+
columnDefinitions: AdvancedFilterColumnContext[];
|
|
8
8
|
onOk(filterConditions: AdvancedFilterCondition[]): void;
|
|
9
9
|
onCancel(): void;
|
|
10
10
|
}
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map
CHANGED
|
@@ -1 +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 {
|
|
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 {AdvancedFilterColumnContext} from \"../../../../api/types/advancedFilter\";\r\n\r\ninterface AdvancedFilterConditionListModalDialogProps {\r\n visible: boolean\r\n filterConditions: AdvancedFilterCondition[]\r\n columnDefinitions: AdvancedFilterColumnContext[]\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}"]}
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ import React from "react";
|
|
|
2
2
|
import { DataGridColDef } from "d2coreui/components/grid/dataGrid";
|
|
3
3
|
import { AdvancedFilterCondition } from "../../../../api/advancedFilterApi";
|
|
4
4
|
import { SelectionChangedEvent } from "ag-grid-community";
|
|
5
|
-
import {
|
|
5
|
+
import { AdvancedFilterColumnContext } from "../../../../api/types/advancedFilter";
|
|
6
6
|
interface AdvancedFilterConditionListPanelProps {
|
|
7
7
|
filterConditions: AdvancedFilterCondition[];
|
|
8
|
-
columnDefinitions:
|
|
8
|
+
columnDefinitions: AdvancedFilterColumnContext[];
|
|
9
9
|
isParenthesisError: boolean;
|
|
10
10
|
onChange(filterConditions: AdvancedFilterCondition[]): void;
|
|
11
11
|
}
|
|
@@ -60,7 +60,15 @@ export default class AdvancedFilterConditionListPanel extends React.Component {
|
|
|
60
60
|
headerName: i18n("Column"),
|
|
61
61
|
colId: "column_name",
|
|
62
62
|
field: "column_name",
|
|
63
|
-
initialWidth:
|
|
63
|
+
initialWidth: 220,
|
|
64
|
+
cellRenderer: (params) => {
|
|
65
|
+
const data = params.data;
|
|
66
|
+
const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === data.column_name);
|
|
67
|
+
if (columnDefinition) {
|
|
68
|
+
return columnDefinition.displayName;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
},
|
|
64
72
|
enableCellChangeFlash: true,
|
|
65
73
|
group: i18n("Basic Columns"),
|
|
66
74
|
}, {
|
package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancedFilterConditionListPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {AdvancedFilterCondition, getAdvancedFilterOperatorString} from \"../../../../api/advancedFilterApi\";\r\nimport {GridApi, GridReadyEvent, RowDragEndEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {Button} from \"antd\";\r\nimport {CloseCircleOutlined, ExclamationCircleOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport AdvancedFilterConditionDetailPanel from \"./advancedFilterConditionDetailPanel\";\r\nimport {AdvancedFilterColumnDefinition} from \"../../../../api/types/advancedFilter\";\r\nimport AdvancedFilterUtils from \"../advancedFilterUtils\";\r\nimport ColorTag from \"../../colorTag/colorTag\";\r\n\r\ninterface AdvancedFilterConditionListPanelProps {\r\n filterConditions: AdvancedFilterCondition[]\r\n columnDefinitions: AdvancedFilterColumnDefinition[]\r\n isParenthesisError: boolean\r\n\r\n onChange(filterConditions: AdvancedFilterCondition[]): void\r\n}\r\n\r\ninterface AdvancedFilterConditionListPanelState {\r\n selectedCondition: AdvancedFilterCondition | null\r\n loading: boolean\r\n}\r\n\r\nexport default class AdvancedFilterConditionListPanel extends React.Component<AdvancedFilterConditionListPanelProps, AdvancedFilterConditionListPanelState> {\r\n private initialColumnDefs?: DataGridColDef[];\r\n private dataGrid: ExtendedDataGrid<AdvancedFilterCondition> | null = null;\r\n private gridApi?: GridApi;\r\n\r\n constructor(props: Readonly<AdvancedFilterConditionListPanelProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedCondition: null,\r\n loading: false,\r\n }\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onAddNewCondition = this.onAddNewCondition.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.filterConditions.length === 0) {\r\n this.onAddNewCondition();\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.gridApi?.applyTransaction({update: this.props.filterConditions});\r\n\r\n const selectedRows = this.gridApi?.getSelectedRows();\r\n this.setState({selectedCondition: selectedRows?.[0] ?? null});\r\n }\r\n\r\n getInitialColumnDefs(): DataGridColDef[] {\r\n if (!this.initialColumnDefs) {\r\n this.initialColumnDefs = [\r\n {\r\n headerName: i18n(\"Negation\"),\r\n colId: \"not_flag\",\r\n field: \"not_flag\",\r\n initialWidth: 80,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.not_flag === 1 ? \"NOT\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n rowDrag: true,\r\n }, {\r\n headerName: \"(\",\r\n colId: \"left_par\",\r\n field: \"left_par\",\r\n initialWidth: 44,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.left_par === 1 ? \"(\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Column\"),\r\n colId: \"column_name\",\r\n field: \"column_name\",\r\n initialWidth: 120,\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Operator\"),\r\n colId: \"operator\",\r\n field: \"operator\",\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return getAdvancedFilterOperatorString(data.operator);\r\n },\r\n initialWidth: 120,\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Value\"),\r\n colId: \"value\",\r\n field: \"value\",\r\n initialWidth: 160,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === data.column_name);\r\n if (columnDefinition) {\r\n return AdvancedFilterUtils.humanizeCondition(columnDefinition, false, data);\r\n }\r\n return \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: \")\",\r\n colId: \"right_par\",\r\n field: \"right_par\",\r\n initialWidth: 44,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.right_par === 1 ? \")\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Logical Operator\"),\r\n colId: \"logical_operator\",\r\n field: \"logical_operator\",\r\n initialWidth: 120,\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n ]\r\n }\r\n\r\n return this.initialColumnDefs;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedCondition: selectedRows[0]});\r\n } else {\r\n this.setState({selectedCondition: null});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n private onAddNewCondition() {\r\n const filterConditions = this.props.filterConditions;\r\n const newId = filterConditions.length === 0 ? 0 : Math.max(...filterConditions.map(value => value.id)) + 1;\r\n const newCondition = AdvancedFilterUtils.newCondition(this.props.columnDefinitions[0]);\r\n newCondition.id = newId;\r\n\r\n filterConditions.push(newCondition);\r\n this.setState({selectedCondition: newCondition});\r\n\r\n this.props.onChange(filterConditions);\r\n\r\n // add new expression to grid and preselect new row\r\n this.gridApi?.applyTransaction({add: [newCondition]});\r\n const rowNode = this.gridApi?.getRowNode(newCondition.id.toString());\r\n rowNode?.setSelected(true, true);\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n\r\n // show conditionList panel\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n\r\n renderToolbarButtons() {\r\n const operationsDisabled = this.state.loading;\r\n\r\n return <>\r\n <Button\r\n title={i18n(\"New Condition\")}\r\n disabled={operationsDisabled}\r\n onClick={this.onAddNewCondition}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Remove Expression\")}\r\n disabled={operationsDisabled || this.state.selectedCondition === null}\r\n onClick={() => {\r\n const conditionToRemove = this.state.selectedCondition;\r\n if (conditionToRemove) {\r\n let filterConditions = this.props.filterConditions;\r\n filterConditions = filterConditions.filter(value => value.id !== conditionToRemove.id);\r\n\r\n this.props.onChange(filterConditions);\r\n\r\n // remove expression from grid\r\n this.gridApi?.applyTransaction({remove: [conditionToRemove]});\r\n\r\n // show conditionList panel\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>\r\n }\r\n\r\n renderDetailPanel() {\r\n if (this.state.selectedCondition) {\r\n return (\r\n <AdvancedFilterConditionDetailPanel\r\n editedCondition={this.state.selectedCondition}\r\n columnDefinitions={this.props.columnDefinitions}\r\n onClose={() => this.dataGrid?.showDetailPanel(false)}\r\n onNextRecord={() => this.dataGrid?.selectNextPreviousRecord(false)}\r\n onPrevRecord={() => this.dataGrid?.selectNextPreviousRecord(true)}\r\n onChange={editedCondition => {\r\n this.setState({selectedCondition: editedCondition});\r\n this.gridApi?.applyTransaction({update: [editedCondition]});\r\n this.props.onChange(this.props.filterConditions);\r\n }}\r\n />\r\n );\r\n }\r\n return <div/>;\r\n }\r\n\r\n renderControlPanel() {\r\n if (this.props.isParenthesisError) {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"center\", padding: \"0px 12px 8px\"}}>\r\n <ColorTag icon={<ExclamationCircleOutlined/>} color=\"error\">\r\n {i18n(\"Parentheses match error\")}\r\n </ColorTag>\r\n </div>\r\n );\r\n }\r\n\r\n return <div/>;\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{position: \"relative\", width: \"100%\", height: \"100%\"}}>\r\n <ExtendedDataGrid<AdvancedFilterCondition>\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n columnDefs={this.getInitialColumnDefs()}\r\n onLoadData={callback => callback(this.props.filterConditions.length)}\r\n rowData={this.props.filterConditions}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"single\"\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onRowDoubleClicked={(event) => {\r\n this.setState({selectedCondition: event.data});\r\n this.dataGrid?.showDetailPanel(true);\r\n }}\r\n detailPanel={{\r\n defaultWidth: 400,\r\n renderer: this.renderDetailPanel\r\n }}\r\n suppressMovableColumns\r\n rowDragManaged\r\n animateRows\r\n onRowDragEnd={(event: RowDragEndEvent) => {\r\n const draggedCondition = event.node.data as AdvancedFilterCondition;\r\n const filterConditions = this.props.filterConditions;\r\n\r\n const toIndex = event.overIndex !== -1 ? event.overIndex : filterConditions.length;\r\n const fromIndex = filterConditions.findIndex(value => value.id === draggedCondition.id);\r\n\r\n filterConditions.splice(toIndex, 0, filterConditions.splice(fromIndex, 1)[0]);\r\n\r\n this.props.onChange(filterConditions);\r\n }}\r\n noRecordsOverlayRenderer={() =>\r\n <div>\r\n <Button\r\n type=\"primary\"\r\n onClick={this.onAddNewCondition}\r\n >\r\n <PlusCircleOutlined/> {i18n(\"Add Condition\")}\r\n </Button>\r\n </div>\r\n }\r\n getRowStyle={params => {\r\n const data = params.data as AdvancedFilterCondition;\r\n if (data._errors && data._errors.length > 0) {\r\n return {color: \"#d4380d\", background: \"#fff2e8\"}\r\n }\r\n return;\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
|
|
1
|
+
{"version":3,"file":"advancedFilterConditionListPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {AdvancedFilterCondition, getAdvancedFilterOperatorString} from \"../../../../api/advancedFilterApi\";\r\nimport {GridApi, GridReadyEvent, RowDragEndEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {Button} from \"antd\";\r\nimport {CloseCircleOutlined, ExclamationCircleOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport AdvancedFilterConditionDetailPanel from \"./advancedFilterConditionDetailPanel\";\r\nimport {AdvancedFilterColumnContext} from \"../../../../api/types/advancedFilter\";\r\nimport AdvancedFilterUtils from \"../advancedFilterUtils\";\r\nimport ColorTag from \"../../colorTag/colorTag\";\r\n\r\ninterface AdvancedFilterConditionListPanelProps {\r\n filterConditions: AdvancedFilterCondition[]\r\n columnDefinitions: AdvancedFilterColumnContext[]\r\n isParenthesisError: boolean\r\n\r\n onChange(filterConditions: AdvancedFilterCondition[]): void\r\n}\r\n\r\ninterface AdvancedFilterConditionListPanelState {\r\n selectedCondition: AdvancedFilterCondition | null\r\n loading: boolean\r\n}\r\n\r\nexport default class AdvancedFilterConditionListPanel extends React.Component<AdvancedFilterConditionListPanelProps, AdvancedFilterConditionListPanelState> {\r\n private initialColumnDefs?: DataGridColDef[];\r\n private dataGrid: ExtendedDataGrid<AdvancedFilterCondition> | null = null;\r\n private gridApi?: GridApi;\r\n\r\n constructor(props: Readonly<AdvancedFilterConditionListPanelProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedCondition: null,\r\n loading: false,\r\n }\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onAddNewCondition = this.onAddNewCondition.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.filterConditions.length === 0) {\r\n this.onAddNewCondition();\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.gridApi?.applyTransaction({update: this.props.filterConditions});\r\n\r\n const selectedRows = this.gridApi?.getSelectedRows();\r\n this.setState({selectedCondition: selectedRows?.[0] ?? null});\r\n }\r\n\r\n getInitialColumnDefs(): DataGridColDef[] {\r\n if (!this.initialColumnDefs) {\r\n this.initialColumnDefs = [\r\n {\r\n headerName: i18n(\"Negation\"),\r\n colId: \"not_flag\",\r\n field: \"not_flag\",\r\n initialWidth: 80,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.not_flag === 1 ? \"NOT\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n rowDrag: true,\r\n }, {\r\n headerName: \"(\",\r\n colId: \"left_par\",\r\n field: \"left_par\",\r\n initialWidth: 44,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.left_par === 1 ? \"(\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Column\"),\r\n colId: \"column_name\",\r\n field: \"column_name\",\r\n initialWidth: 220,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === data.column_name);\r\n\r\n if (columnDefinition) {\r\n return columnDefinition.displayName;\r\n }\r\n\r\n return null;\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Operator\"),\r\n colId: \"operator\",\r\n field: \"operator\",\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return getAdvancedFilterOperatorString(data.operator);\r\n },\r\n initialWidth: 120,\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Value\"),\r\n colId: \"value\",\r\n field: \"value\",\r\n initialWidth: 160,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n const columnDefinition = this.props.columnDefinitions.find(value => value.columnName === data.column_name);\r\n if (columnDefinition) {\r\n return AdvancedFilterUtils.humanizeCondition(columnDefinition, false, data);\r\n }\r\n return \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: \")\",\r\n colId: \"right_par\",\r\n field: \"right_par\",\r\n initialWidth: 44,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as AdvancedFilterCondition;\r\n return data.right_par === 1 ? \")\" : \"\";\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }, {\r\n headerName: i18n(\"Logical Operator\"),\r\n colId: \"logical_operator\",\r\n field: \"logical_operator\",\r\n initialWidth: 120,\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n ]\r\n }\r\n\r\n return this.initialColumnDefs;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedCondition: selectedRows[0]});\r\n } else {\r\n this.setState({selectedCondition: null});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n private onAddNewCondition() {\r\n const filterConditions = this.props.filterConditions;\r\n const newId = filterConditions.length === 0 ? 0 : Math.max(...filterConditions.map(value => value.id)) + 1;\r\n const newCondition = AdvancedFilterUtils.newCondition(this.props.columnDefinitions[0]);\r\n newCondition.id = newId;\r\n\r\n filterConditions.push(newCondition);\r\n this.setState({selectedCondition: newCondition});\r\n\r\n this.props.onChange(filterConditions);\r\n\r\n // add new expression to grid and preselect new row\r\n this.gridApi?.applyTransaction({add: [newCondition]});\r\n const rowNode = this.gridApi?.getRowNode(newCondition.id.toString());\r\n rowNode?.setSelected(true, true);\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n\r\n // show conditionList panel\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n\r\n renderToolbarButtons() {\r\n const operationsDisabled = this.state.loading;\r\n\r\n return <>\r\n <Button\r\n title={i18n(\"New Condition\")}\r\n disabled={operationsDisabled}\r\n onClick={this.onAddNewCondition}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Remove Expression\")}\r\n disabled={operationsDisabled || this.state.selectedCondition === null}\r\n onClick={() => {\r\n const conditionToRemove = this.state.selectedCondition;\r\n if (conditionToRemove) {\r\n let filterConditions = this.props.filterConditions;\r\n filterConditions = filterConditions.filter(value => value.id !== conditionToRemove.id);\r\n\r\n this.props.onChange(filterConditions);\r\n\r\n // remove expression from grid\r\n this.gridApi?.applyTransaction({remove: [conditionToRemove]});\r\n\r\n // show conditionList panel\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>\r\n }\r\n\r\n renderDetailPanel() {\r\n if (this.state.selectedCondition) {\r\n return (\r\n <AdvancedFilterConditionDetailPanel\r\n editedCondition={this.state.selectedCondition}\r\n columnDefinitions={this.props.columnDefinitions}\r\n onClose={() => this.dataGrid?.showDetailPanel(false)}\r\n onNextRecord={() => this.dataGrid?.selectNextPreviousRecord(false)}\r\n onPrevRecord={() => this.dataGrid?.selectNextPreviousRecord(true)}\r\n onChange={editedCondition => {\r\n this.setState({selectedCondition: editedCondition});\r\n this.gridApi?.applyTransaction({update: [editedCondition]});\r\n this.props.onChange(this.props.filterConditions);\r\n }}\r\n />\r\n );\r\n }\r\n return <div/>;\r\n }\r\n\r\n renderControlPanel() {\r\n if (this.props.isParenthesisError) {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"center\", padding: \"0px 12px 8px\"}}>\r\n <ColorTag icon={<ExclamationCircleOutlined/>} color=\"error\">\r\n {i18n(\"Parentheses match error\")}\r\n </ColorTag>\r\n </div>\r\n );\r\n }\r\n\r\n return <div/>;\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{position: \"relative\", width: \"100%\", height: \"100%\"}}>\r\n <ExtendedDataGrid<AdvancedFilterCondition>\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n columnDefs={this.getInitialColumnDefs()}\r\n onLoadData={callback => callback(this.props.filterConditions.length)}\r\n rowData={this.props.filterConditions}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"single\"\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onRowDoubleClicked={(event) => {\r\n this.setState({selectedCondition: event.data});\r\n this.dataGrid?.showDetailPanel(true);\r\n }}\r\n detailPanel={{\r\n defaultWidth: 400,\r\n renderer: this.renderDetailPanel\r\n }}\r\n suppressMovableColumns\r\n rowDragManaged\r\n animateRows\r\n onRowDragEnd={(event: RowDragEndEvent) => {\r\n const draggedCondition = event.node.data as AdvancedFilterCondition;\r\n const filterConditions = this.props.filterConditions;\r\n\r\n const toIndex = event.overIndex !== -1 ? event.overIndex : filterConditions.length;\r\n const fromIndex = filterConditions.findIndex(value => value.id === draggedCondition.id);\r\n\r\n filterConditions.splice(toIndex, 0, filterConditions.splice(fromIndex, 1)[0]);\r\n\r\n this.props.onChange(filterConditions);\r\n }}\r\n noRecordsOverlayRenderer={() =>\r\n <div>\r\n <Button\r\n type=\"primary\"\r\n onClick={this.onAddNewCondition}\r\n >\r\n <PlusCircleOutlined/> {i18n(\"Add Condition\")}\r\n </Button>\r\n </div>\r\n }\r\n getRowStyle={params => {\r\n const data = params.data as AdvancedFilterCondition;\r\n if (data._errors && data._errors.length > 0) {\r\n return {color: \"#d4380d\", background: \"#fff2e8\"}\r\n }\r\n return;\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
|