d2aura 23.0.53 → 23.0.56
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/coreui/components/advancedFilter/advancedFilteredGrid.js +1 -1
- package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -1
- package/coreui/components/d2Chart/d2ChartPanel.js +1 -1
- package/coreui/components/d2Chart/d2ChartPanel.js.map +1 -1
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.d.ts +7 -3
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +25 -7
- package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -1
- package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.d.ts +2 -1
- package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js.map +1 -1
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.d.ts +2 -1
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js +3 -1
- package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js.map +1 -1
- package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.js.map +1 -1
- package/coreui/components/edaManager/components/edaManagerTablePanel.d.ts +3 -1
- package/coreui/components/edaManager/components/edaManagerTablePanel.js +65 -41
- package/coreui/components/edaManager/components/edaManagerTablePanel.js.map +1 -1
- package/coreui/components/edaManager/panel/edaManagerPanel.js.map +1 -1
- package/coreui/components/editor/abstractEntityConfigPanel.d.ts +8 -1
- package/coreui/components/editor/abstractEntityConfigPanel.js +5 -4
- package/coreui/components/editor/abstractEntityConfigPanel.js.map +1 -1
- package/coreui/components/grid/detailHeaderPanel.d.ts +1 -0
- package/coreui/components/grid/detailHeaderPanel.js +6 -4
- package/coreui/components/grid/detailHeaderPanel.js.map +1 -1
- package/coreui/components/select/abstractSelect.d.ts +2 -1
- package/coreui/components/select/abstractSelect.js +6 -6
- package/coreui/components/select/abstractSelect.js.map +1 -1
- package/coreui/style/index.less +5 -1
- package/package.json +1 -1
|
@@ -182,7 +182,7 @@ export default class AbstractSelect extends React.Component {
|
|
|
182
182
|
return undefined;
|
|
183
183
|
}
|
|
184
184
|
render() {
|
|
185
|
-
const selectedItem = this.props
|
|
185
|
+
const { api, advancedFilterApi, disabled, selectedItem, filterConditions, onItemSelected, ...rest } = this.props;
|
|
186
186
|
const hasDetailPanel = !!this.renderDetailPanel();
|
|
187
187
|
let value;
|
|
188
188
|
if (selectedItem && selectedItem.id >= 0) {
|
|
@@ -199,15 +199,15 @@ export default class AbstractSelect extends React.Component {
|
|
|
199
199
|
value = undefined;
|
|
200
200
|
}
|
|
201
201
|
return (React.createElement("div", { onDoubleClick: () => {
|
|
202
|
-
if (!
|
|
202
|
+
if (!disabled && !this.state.detailDialogVisible) {
|
|
203
203
|
this.setState({ selectDialogVisible: true });
|
|
204
204
|
}
|
|
205
205
|
} },
|
|
206
206
|
this.renderSelectDialog(),
|
|
207
207
|
this.renderDetailPanelModalDialog(),
|
|
208
|
-
React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement(Select, { className: !
|
|
208
|
+
React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement(Select, { className: !disabled && hasDetailPanel ? css.styles.abstractSelectWithDetail : undefined, disabled: disabled, style: { width: "100%" }, labelInValue: true, showSearch: true, filterOption: false, value: value, notFoundContent: null, onChange: (value) => {
|
|
209
209
|
if (!value) {
|
|
210
|
-
|
|
210
|
+
onItemSelected?.(undefined);
|
|
211
211
|
}
|
|
212
212
|
}, onFocus: () => {
|
|
213
213
|
this.onLoadData();
|
|
@@ -219,8 +219,8 @@ export default class AbstractSelect extends React.Component {
|
|
|
219
219
|
this.onLoadData(searchString);
|
|
220
220
|
}, onSelect: (selectedValue) => {
|
|
221
221
|
const item = this.state.suggestedItems.find(value => value.id === selectedValue.value);
|
|
222
|
-
|
|
223
|
-
}, suffixIcon: React.createElement("span", { style: { display: "flex", gap: 4, fontSize: 14, color: "rgba(0, 0, 0, 0.55)" } }, this.getSuffixIcon()) }, this.state.suggestedItems.map(suggestedItem => {
|
|
222
|
+
onItemSelected?.(item);
|
|
223
|
+
}, suffixIcon: React.createElement("span", { style: { display: "flex", gap: 4, fontSize: 14, color: "rgba(0, 0, 0, 0.55)" } }, this.getSuffixIcon()), ...rest }, this.state.suggestedItems.map(suggestedItem => {
|
|
224
224
|
const extraValueForDropdown = this.getExtraValueForDropdown(suggestedItem);
|
|
225
225
|
const displayName = `${suggestedItem.name ?? ""} ${extraValueForDropdown ?? ""}`;
|
|
226
226
|
return (React.createElement(Select.Option, { value: suggestedItem.id, key: suggestedItem.id },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n MonitorOutlined,\r\n PlusCircleOutlined,\r\n SelectOutlined\r\n} from \"@ant-design/icons\";\r\nimport {LabeledValue} from \"antd/es/select\";\r\nimport {Select} from \"antd\";\r\nimport AbstractEntityApi from \"../../../api/abstractEntityApi\";\r\nimport {\r\n AdvancedFilterApi,\r\n AdvancedFilterCondition,\r\n AdvancedFilterLogicalOperator,\r\n AdvancedFilterOperator\r\n} from \"../../../api/advancedFilterApi\";\r\nimport debounce from \"lodash/debounce\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {GeneralEntityColumn, getStringAdvancedFilterColumn} from \"../advancedFilter/advancedFilterColumnDefinitions\";\r\nimport {ERROR_COLOR} from \"../../../api/constants/constants\";\r\nimport TitleWithCodePanel from \"../titleWithCodePanel/titleWithCodePanel\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\n\r\nconst useStyles = createStyles(({css}) => {\r\n return {\r\n abstractSelectWithDetail: css`\r\n .ant-select-selection-item {\r\n max-width: calc(100% - 52px);\r\n }\r\n `\r\n }\r\n});\r\n\r\nexport enum DetailModalDialogMode {\r\n NEW, DETAIL\r\n}\r\n\r\nexport interface SelectedEntity {\r\n id: number\r\n name: string | null\r\n code: string | null\r\n extra?: string\r\n}\r\n\r\nexport interface AbstractSelectProps<T extends Entity> {\r\n api: AbstractEntityApi<T>\r\n advancedFilterApi: AdvancedFilterApi\r\n disabled?: boolean\r\n\r\n selectedItem?: SelectedEntity\r\n filterConditions?: AdvancedFilterCondition[]\r\n\r\n onItemSelected?(selectedItem?: T): void\r\n}\r\n\r\nexport interface AbstractSelectState<T extends Entity> {\r\n selectDialogVisible: boolean\r\n detailDialogVisible: boolean\r\n detailModalDialogMode?: DetailModalDialogMode\r\n entityToCreateOrEdit?: T\r\n loading: boolean\r\n suggestedItems: T[]\r\n waitingForNewEntity: boolean\r\n waitingForEntityDetail: boolean\r\n}\r\n\r\nexport default abstract class AbstractSelect<T extends Entity,\r\n P extends AbstractSelectProps<T>,\r\n S extends AbstractSelectState<T> = AbstractSelectState<T>> extends React.Component<P, S> {\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadData = debounce(this.onLoadData.bind(this), 500);\r\n this.onSaveEntity = this.onSaveEntity.bind(this);\r\n }\r\n\r\n protected initialState: AbstractSelectState<T> = {\r\n selectDialogVisible: false,\r\n detailDialogVisible: false,\r\n loading: false,\r\n suggestedItems: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityDetail: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.selectedItem?.id !== this.props.selectedItem?.id) {\r\n this.setState({suggestedItems: []});\r\n }\r\n }\r\n\r\n protected getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n }\r\n\r\n protected getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n }\r\n\r\n protected getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = this.getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = this.getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n }\r\n\r\n private async onLoadData(searchString?: string) {\r\n this.setState({loading: true});\r\n\r\n const filterConditions = this.getFilterConditions(searchString);\r\n if (this.props.filterConditions) {\r\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\r\n filterConditions.push(...this.props.filterConditions);\r\n }\r\n\r\n const pageableList = await this.props.api.getAllData(\r\n 0,\r\n 10,\r\n \"\",\r\n filterConditions,\r\n true\r\n );\r\n\r\n this.setState({suggestedItems: pageableList.data, loading: false});\r\n }\r\n\r\n protected async createNewEntity(): Promise<T> {\r\n return await this.props.api.createNewEntity();\r\n }\r\n\r\n protected async getEntity(id: number): Promise<T> {\r\n return await this.props.api.getEntity(id);\r\n }\r\n\r\n private renderNewEntityButton() {\r\n if (this.state.waitingForNewEntity) {\r\n return <LoadingOutlined/>\r\n } else {\r\n return (\r\n <PlusCircleOutlined\r\n title={i18n(\"Create New Entity\")}\r\n style={{cursor: \"pointer\"}}\r\n disabled={this.state.waitingForEntityDetail}\r\n onClick={async () => {\r\n this.setState({\r\n waitingForNewEntity: true,\r\n detailModalDialogMode: DetailModalDialogMode.NEW\r\n });\r\n const newEntity = await this.createNewEntity();\r\n this.setState({\r\n entityToCreateOrEdit: newEntity,\r\n detailDialogVisible: true,\r\n waitingForNewEntity: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private renderDetailEntityButton(id: number) {\r\n if (this.state.waitingForEntityDetail) {\r\n return <LoadingOutlined/>\r\n } else {\r\n return (\r\n <MonitorOutlined\r\n title={i18n(\"Show Detail\")}\r\n disabled={this.state.waitingForNewEntity}\r\n onClick={async () => {\r\n this.setState({\r\n waitingForEntityDetail: true,\r\n detailModalDialogMode: DetailModalDialogMode.DETAIL\r\n });\r\n const entity = await this.getEntity(id);\r\n this.setState({\r\n entityToCreateOrEdit: entity,\r\n detailDialogVisible: true,\r\n waitingForEntityDetail: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private showCancelButton(): boolean {\r\n return !!this.props.selectedItem;\r\n }\r\n\r\n private showDetailButton(): boolean {\r\n return !!this.props.selectedItem && !!this.renderDetailPanel();\r\n }\r\n\r\n private showNewEntityButton(): boolean {\r\n return !!this.renderDetailPanel();\r\n }\r\n\r\n protected getSuffixIcon(): React.ReactNode {\r\n if (this.props.disabled) {\r\n if (this.showDetailButton()) {\r\n return this.renderDetailEntityButton(this.props.selectedItem!.id)\r\n } else {\r\n return <span/>;\r\n }\r\n } else if (this.state.loading) {\r\n return <LoadingOutlined/>;\r\n } else {\r\n return (\r\n <>\r\n {this.showCancelButton() &&\r\n <CloseCircleOutlined\r\n style={{color: ERROR_COLOR}}\r\n title={i18n(\"Cancel Selected Entity\")}\r\n onClick={() => {\r\n this.props.onItemSelected?.(undefined);\r\n }}\r\n />\r\n }\r\n {this.showDetailButton() && this.renderDetailEntityButton(this.props.selectedItem!.id)}\r\n {this.showNewEntityButton() && this.renderNewEntityButton()}\r\n <SelectOutlined\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n this.setState({selectDialogVisible: true})\r\n }}\r\n />\r\n </>\r\n );\r\n }\r\n }\r\n\r\n abstract renderSelectDialog(): React.ReactNode;\r\n\r\n protected onSaveEntity(savedEntity: T) {\r\n this.props.onItemSelected?.(savedEntity);\r\n this.setState({detailDialogVisible: false, entityToCreateOrEdit: undefined});\r\n }\r\n\r\n renderDetailPanel(): React.ReactNode {\r\n return undefined;\r\n }\r\n\r\n protected getNewEntityModalDialogTitle(): string {\r\n return i18n(\"New Entity\");\r\n }\r\n\r\n private getModalDialogTitle() {\r\n if (this.state.detailModalDialogMode === DetailModalDialogMode.NEW) {\r\n return this.getNewEntityModalDialogTitle();\r\n } else if (this.state.detailModalDialogMode === DetailModalDialogMode.DETAIL) {\r\n return <TitleWithCodePanel title={i18n(\"Detail\")} code={this.state.entityToCreateOrEdit?.code ?? \"\"}/>\r\n }\r\n return undefined;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.detailDialogVisible}\r\n onCancel={() => this.setState({detailDialogVisible: false})}\r\n styles={{body: {padding: 0}}}\r\n title={this.getModalDialogTitle()}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.95}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n protected getExtraValueForDropdown(_suggestedItem: T): string | undefined {\r\n return undefined;\r\n }\r\n\r\n render() {\r\n const selectedItem = this.props.selectedItem;\r\n const hasDetailPanel = !!this.renderDetailPanel();\r\n\r\n let value: LabeledValue | undefined;\r\n if (selectedItem && selectedItem.id >= 0) {\r\n value = {\r\n key: selectedItem.id.toString(),\r\n value: selectedItem.id,\r\n label:\r\n <span>\r\n {selectedItem.code}\r\n {(selectedItem.code && selectedItem.name) ? ` (${selectedItem.name})` : selectedItem.name}\r\n {selectedItem.extra && ` ${selectedItem.extra}`}\r\n </span>\r\n };\r\n } else {\r\n value = undefined;\r\n }\r\n\r\n return (\r\n <div\r\n onDoubleClick={() => {\r\n if (!this.props.disabled && !this.state.detailDialogVisible) {\r\n this.setState({selectDialogVisible: true});\r\n }\r\n }}\r\n >\r\n {this.renderSelectDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <Select\r\n className={!this.props.disabled && hasDetailPanel ? css.styles.abstractSelectWithDetail : undefined}\r\n disabled={this.props.disabled}\r\n style={{width: \"100%\"}}\r\n labelInValue\r\n showSearch\r\n filterOption={false}\r\n value={value}\r\n notFoundContent={null}\r\n onChange={(value: any) => {\r\n if (!value) {\r\n this.props.onItemSelected?.(undefined);\r\n }\r\n }}\r\n onFocus={() => {\r\n this.onLoadData();\r\n }}\r\n onClick={event => {\r\n if (event.target instanceof HTMLInputElement || event.target instanceof HTMLSpanElement) {\r\n this.onLoadData();\r\n }\r\n }}\r\n onSearch={searchString => {\r\n this.onLoadData(searchString);\r\n }}\r\n onSelect={(selectedValue: LabeledValue) => {\r\n const item = this.state.suggestedItems.find(value => value.id === selectedValue.value);\r\n this.props.onItemSelected?.(item);\r\n }}\r\n suffixIcon={\r\n <span style={{display: \"flex\", gap: 4, fontSize: 14, color: \"rgba(0, 0, 0, 0.55)\"}}>\r\n {this.getSuffixIcon()}\r\n </span>\r\n }\r\n >\r\n {this.state.suggestedItems.map(suggestedItem => {\r\n const extraValueForDropdown = this.getExtraValueForDropdown(suggestedItem);\r\n const displayName = `${suggestedItem.name ?? \"\"} ${extraValueForDropdown ?? \"\"}`\r\n return (\r\n <Select.Option value={suggestedItem.id} key={suggestedItem.id}>\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n {suggestedItem.code && <ColorTag>{suggestedItem.code}</ColorTag>}\r\n <div title={displayName}>{displayName}</div>\r\n </div>\r\n </Select.Option>\r\n );\r\n })}\r\n </Select>\r\n }</WithCss>\r\n </div>\r\n )\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"abstractSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n MonitorOutlined,\r\n PlusCircleOutlined,\r\n SelectOutlined\r\n} from \"@ant-design/icons\";\r\nimport {LabeledValue, SelectProps} from \"antd/es/select\";\r\nimport {Select} from \"antd\";\r\nimport AbstractEntityApi from \"../../../api/abstractEntityApi\";\r\nimport {\r\n AdvancedFilterApi,\r\n AdvancedFilterCondition,\r\n AdvancedFilterLogicalOperator,\r\n AdvancedFilterOperator\r\n} from \"../../../api/advancedFilterApi\";\r\nimport debounce from \"lodash/debounce\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {GeneralEntityColumn, getStringAdvancedFilterColumn} from \"../advancedFilter/advancedFilterColumnDefinitions\";\r\nimport {ERROR_COLOR} from \"../../../api/constants/constants\";\r\nimport TitleWithCodePanel from \"../titleWithCodePanel/titleWithCodePanel\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\n\r\nconst useStyles = createStyles(({css}) => {\r\n return {\r\n abstractSelectWithDetail: css`\r\n .ant-select-selection-item {\r\n max-width: calc(100% - 52px);\r\n }\r\n `\r\n }\r\n});\r\n\r\nexport enum DetailModalDialogMode {\r\n NEW, DETAIL\r\n}\r\n\r\nexport interface SelectedEntity {\r\n id: number\r\n name: string | null\r\n code: string | null\r\n extra?: string\r\n}\r\n\r\nexport interface AbstractSelectProps<T extends Entity> extends SelectProps {\r\n api: AbstractEntityApi<T>\r\n advancedFilterApi: AdvancedFilterApi\r\n disabled?: boolean\r\n\r\n selectedItem?: SelectedEntity\r\n filterConditions?: AdvancedFilterCondition[]\r\n\r\n onItemSelected?(selectedItem?: T): void\r\n}\r\n\r\nexport interface AbstractSelectState<T extends Entity> {\r\n selectDialogVisible: boolean\r\n detailDialogVisible: boolean\r\n detailModalDialogMode?: DetailModalDialogMode\r\n entityToCreateOrEdit?: T\r\n loading: boolean\r\n suggestedItems: T[]\r\n waitingForNewEntity: boolean\r\n waitingForEntityDetail: boolean\r\n}\r\n\r\nexport default abstract class AbstractSelect<T extends Entity,\r\n P extends AbstractSelectProps<T>,\r\n S extends AbstractSelectState<T> = AbstractSelectState<T>> extends React.Component<P, S> {\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadData = debounce(this.onLoadData.bind(this), 500);\r\n this.onSaveEntity = this.onSaveEntity.bind(this);\r\n }\r\n\r\n protected initialState: AbstractSelectState<T> = {\r\n selectDialogVisible: false,\r\n detailDialogVisible: false,\r\n loading: false,\r\n suggestedItems: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityDetail: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.selectedItem?.id !== this.props.selectedItem?.id) {\r\n this.setState({suggestedItems: []});\r\n }\r\n }\r\n\r\n protected getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n }\r\n\r\n protected getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n }\r\n\r\n protected getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = this.getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = this.getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n }\r\n\r\n private async onLoadData(searchString?: string) {\r\n this.setState({loading: true});\r\n\r\n const filterConditions = this.getFilterConditions(searchString);\r\n if (this.props.filterConditions) {\r\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\r\n filterConditions.push(...this.props.filterConditions);\r\n }\r\n\r\n const pageableList = await this.props.api.getAllData(\r\n 0,\r\n 10,\r\n \"\",\r\n filterConditions,\r\n true\r\n );\r\n\r\n this.setState({suggestedItems: pageableList.data, loading: false});\r\n }\r\n\r\n protected async createNewEntity(): Promise<T> {\r\n return await this.props.api.createNewEntity();\r\n }\r\n\r\n protected async getEntity(id: number): Promise<T> {\r\n return await this.props.api.getEntity(id);\r\n }\r\n\r\n private renderNewEntityButton() {\r\n if (this.state.waitingForNewEntity) {\r\n return <LoadingOutlined/>\r\n } else {\r\n return (\r\n <PlusCircleOutlined\r\n title={i18n(\"Create New Entity\")}\r\n style={{cursor: \"pointer\"}}\r\n disabled={this.state.waitingForEntityDetail}\r\n onClick={async () => {\r\n this.setState({\r\n waitingForNewEntity: true,\r\n detailModalDialogMode: DetailModalDialogMode.NEW\r\n });\r\n const newEntity = await this.createNewEntity();\r\n this.setState({\r\n entityToCreateOrEdit: newEntity,\r\n detailDialogVisible: true,\r\n waitingForNewEntity: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private renderDetailEntityButton(id: number) {\r\n if (this.state.waitingForEntityDetail) {\r\n return <LoadingOutlined/>\r\n } else {\r\n return (\r\n <MonitorOutlined\r\n title={i18n(\"Show Detail\")}\r\n disabled={this.state.waitingForNewEntity}\r\n onClick={async () => {\r\n this.setState({\r\n waitingForEntityDetail: true,\r\n detailModalDialogMode: DetailModalDialogMode.DETAIL\r\n });\r\n const entity = await this.getEntity(id);\r\n this.setState({\r\n entityToCreateOrEdit: entity,\r\n detailDialogVisible: true,\r\n waitingForEntityDetail: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private showCancelButton(): boolean {\r\n return !!this.props.selectedItem;\r\n }\r\n\r\n private showDetailButton(): boolean {\r\n return !!this.props.selectedItem && !!this.renderDetailPanel();\r\n }\r\n\r\n private showNewEntityButton(): boolean {\r\n return !!this.renderDetailPanel();\r\n }\r\n\r\n protected getSuffixIcon(): React.ReactNode {\r\n if (this.props.disabled) {\r\n if (this.showDetailButton()) {\r\n return this.renderDetailEntityButton(this.props.selectedItem!.id)\r\n } else {\r\n return <span/>;\r\n }\r\n } else if (this.state.loading) {\r\n return <LoadingOutlined/>;\r\n } else {\r\n return (\r\n <>\r\n {this.showCancelButton() &&\r\n <CloseCircleOutlined\r\n style={{color: ERROR_COLOR}}\r\n title={i18n(\"Cancel Selected Entity\")}\r\n onClick={() => {\r\n this.props.onItemSelected?.(undefined);\r\n }}\r\n />\r\n }\r\n {this.showDetailButton() && this.renderDetailEntityButton(this.props.selectedItem!.id)}\r\n {this.showNewEntityButton() && this.renderNewEntityButton()}\r\n <SelectOutlined\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n this.setState({selectDialogVisible: true})\r\n }}\r\n />\r\n </>\r\n );\r\n }\r\n }\r\n\r\n abstract renderSelectDialog(): React.ReactNode;\r\n\r\n protected onSaveEntity(savedEntity: T) {\r\n this.props.onItemSelected?.(savedEntity);\r\n this.setState({detailDialogVisible: false, entityToCreateOrEdit: undefined});\r\n }\r\n\r\n renderDetailPanel(): React.ReactNode {\r\n return undefined;\r\n }\r\n\r\n protected getNewEntityModalDialogTitle(): string {\r\n return i18n(\"New Entity\");\r\n }\r\n\r\n private getModalDialogTitle() {\r\n if (this.state.detailModalDialogMode === DetailModalDialogMode.NEW) {\r\n return this.getNewEntityModalDialogTitle();\r\n } else if (this.state.detailModalDialogMode === DetailModalDialogMode.DETAIL) {\r\n return <TitleWithCodePanel title={i18n(\"Detail\")} code={this.state.entityToCreateOrEdit?.code ?? \"\"}/>\r\n }\r\n return undefined;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.detailDialogVisible}\r\n onCancel={() => this.setState({detailDialogVisible: false})}\r\n styles={{body: {padding: 0}}}\r\n title={this.getModalDialogTitle()}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.95}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n protected getExtraValueForDropdown(_suggestedItem: T): string | undefined {\r\n return undefined;\r\n }\r\n\r\n render() {\r\n const {\r\n api,\r\n advancedFilterApi,\r\n disabled,\r\n selectedItem,\r\n filterConditions,\r\n onItemSelected,\r\n ...rest\r\n } = this.props;\r\n\r\n const hasDetailPanel = !!this.renderDetailPanel();\r\n\r\n let value: LabeledValue | undefined;\r\n if (selectedItem && selectedItem.id >= 0) {\r\n value = {\r\n key: selectedItem.id.toString(),\r\n value: selectedItem.id,\r\n label:\r\n <span>\r\n {selectedItem.code}\r\n {(selectedItem.code && selectedItem.name) ? ` (${selectedItem.name})` : selectedItem.name}\r\n {selectedItem.extra && ` ${selectedItem.extra}`}\r\n </span>\r\n };\r\n } else {\r\n value = undefined;\r\n }\r\n\r\n return (\r\n <div\r\n onDoubleClick={() => {\r\n if (!disabled && !this.state.detailDialogVisible) {\r\n this.setState({selectDialogVisible: true});\r\n }\r\n }}\r\n >\r\n {this.renderSelectDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <Select\r\n className={!disabled && hasDetailPanel ? css.styles.abstractSelectWithDetail : undefined}\r\n disabled={disabled}\r\n style={{width: \"100%\"}}\r\n labelInValue\r\n showSearch\r\n filterOption={false}\r\n value={value}\r\n notFoundContent={null}\r\n onChange={(value: any) => {\r\n if (!value) {\r\n onItemSelected?.(undefined);\r\n }\r\n }}\r\n onFocus={() => {\r\n this.onLoadData();\r\n }}\r\n onClick={event => {\r\n if (event.target instanceof HTMLInputElement || event.target instanceof HTMLSpanElement) {\r\n this.onLoadData();\r\n }\r\n }}\r\n onSearch={searchString => {\r\n this.onLoadData(searchString);\r\n }}\r\n onSelect={(selectedValue: LabeledValue) => {\r\n const item = this.state.suggestedItems.find(value => value.id === selectedValue.value);\r\n onItemSelected?.(item);\r\n }}\r\n suffixIcon={\r\n <span style={{display: \"flex\", gap: 4, fontSize: 14, color: \"rgba(0, 0, 0, 0.55)\"}}>\r\n {this.getSuffixIcon()}\r\n </span>\r\n }\r\n {...rest}\r\n >\r\n {this.state.suggestedItems.map(suggestedItem => {\r\n const extraValueForDropdown = this.getExtraValueForDropdown(suggestedItem);\r\n const displayName = `${suggestedItem.name ?? \"\"} ${extraValueForDropdown ?? \"\"}`\r\n return (\r\n <Select.Option value={suggestedItem.id} key={suggestedItem.id}>\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n {suggestedItem.code && <ColorTag>{suggestedItem.code}</ColorTag>}\r\n <div title={displayName}>{displayName}</div>\r\n </div>\r\n </Select.Option>\r\n );\r\n })}\r\n </Select>\r\n }</WithCss>\r\n </div>\r\n )\r\n }\r\n}"]}
|
package/coreui/style/index.less
CHANGED
|
@@ -47,10 +47,14 @@
|
|
|
47
47
|
font-weight: 600;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.record-config-form .ant-col-sm-24.ant-form-item-label
|
|
50
|
+
.record-config-form .ant-col-sm-24.ant-form-item-label {
|
|
51
51
|
font-weight: @label-font-weight;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
.record-config-form.ant-form-small .ant-form-item-label {
|
|
55
|
+
margin-bottom: -5px;
|
|
56
|
+
}
|
|
57
|
+
|
|
54
58
|
.compact-label {
|
|
55
59
|
font-size: @label-font-size;
|
|
56
60
|
color: @label-color;
|