d2aura 23.0.46 → 23.0.47

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.
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { FilterPanelRendererParams, GridConfiguration } from "d2coreui/components/grid/extendedDataGrid";
2
+ import { ExtendedDataGridProps, GridConfiguration } from "d2coreui/components/grid/extendedDataGrid";
3
3
  import { DataGridColDef, OnLoadDataCallback } from "d2coreui/components/grid/dataGrid";
4
4
  import { RowDoubleClickedEvent, RowModelType, SelectionChangedEvent } from "ag-grid-community";
5
5
  import { Closeable } from "../api/abstractEntityApi";
@@ -58,7 +58,7 @@ export declare abstract class AbstractListPanel<T extends AuditableEntity, P ext
58
58
  protected onCloseDetailPanel(): void;
59
59
  protected onRowDoubleClicked(event: RowDoubleClickedEvent): void;
60
60
  protected getDetailPanelDefaultWidth(): number;
61
- protected getFilterPanelDefaultWidth(): number | undefined;
61
+ protected getExtendedDataGridFilterPanel(): ExtendedDataGridProps["filterPanel"] | undefined;
62
62
  onSelectionChanged(event: SelectionChangedEvent): void;
63
63
  protected adaptNewRecord(newRecord: T): void;
64
64
  protected getDataToDelete(): T[];
@@ -77,7 +77,6 @@ export declare abstract class AbstractListPanel<T extends AuditableEntity, P ext
77
77
  protected renderShortcutPanel(): React.ReactNode | undefined;
78
78
  protected renderShortcutDrawer(): React.JSX.Element;
79
79
  protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement;
80
- protected renderFilterPanel(_parameters?: FilterPanelRendererParams): React.ReactElement | undefined;
81
80
  renderToolbarButtons(): React.JSX.Element;
82
81
  protected renderControlPanel(): JSX.Element | null;
83
82
  protected getRowSelection(): "single" | "multiple";
@@ -94,7 +94,6 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
94
94
  this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);
95
95
  this.renderControlPanel = this.renderControlPanel.bind(this);
96
96
  this.renderToolbar = this.renderToolbar.bind(this);
97
- this.renderFilterPanel = this.renderFilterPanel.bind(this);
98
97
  }
99
98
  async onLoadData(callback) {
100
99
  await super.onLoadData(callback);
@@ -167,7 +166,7 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
167
166
  getDetailPanelDefaultWidth() {
168
167
  return DETAIL_PANEL_DEFAULT_WIDTH;
169
168
  }
170
- getFilterPanelDefaultWidth() {
169
+ getExtendedDataGridFilterPanel() {
171
170
  return undefined;
172
171
  }
173
172
  onSelectionChanged(event) {
@@ -323,9 +322,6 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
323
322
  renderToolbar(originalSearchBar) {
324
323
  return originalSearchBar;
325
324
  }
326
- renderFilterPanel(_parameters) {
327
- return undefined;
328
- }
329
325
  renderToolbarButtons() {
330
326
  if (this.isMobile()) {
331
327
  return (React.createElement(React.Fragment, null,
@@ -417,15 +413,6 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
417
413
  ];
418
414
  }
419
415
  render() {
420
- const extendedDataGridProps = {};
421
- if (this.renderFilterPanel() !== undefined) {
422
- extendedDataGridProps.filterPanel = {
423
- renderer: (parameters) => {
424
- return this.renderFilterPanel(parameters);
425
- },
426
- defaultWidth: this.getFilterPanelDefaultWidth(),
427
- };
428
- }
429
416
  return (React.createElement("div", { style: { display: "flex", flexDirection: "column", height: "100%" } },
430
417
  React.createElement("div", { style: { padding: "10px 12px 0px", borderBottom: "2px solid #f5f5f5", fontWeight: 500 } }, this.renderBreadcrumb()),
431
418
  React.createElement("div", { style: { position: "relative", height: "100%" } },
@@ -457,7 +444,7 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
457
444
  renderToolbar: this.renderToolbar,
458
445
  }, rowSelection: this.getRowSelection(), controlPanel: {
459
446
  renderer: this.renderControlPanel
460
- }, noRecordsOverlayRenderer: () => React.createElement("div", null), ...extendedDataGridProps }))));
447
+ }, noRecordsOverlayRenderer: () => React.createElement("div", null), ...this.getExtendedDataGridFilterPanel() }))));
461
448
  }
462
449
  }
463
450
  //# sourceMappingURL=abstractListPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractListPanel.js","sourceRoot":"","sources":["../../../coreui/abstractListPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport ExtendedDataGrid, {\r\n ExtendedDataGridProps,\r\n FilterPanelRendererParams,\r\n GridConfiguration\r\n} from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\r\nimport {\r\n GridReadyEvent,\r\n IGetRowsParams,\r\n RowDoubleClickedEvent,\r\n RowModelType,\r\n SelectionChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {Closeable, PageableList} from \"../api/abstractEntityApi\";\r\nimport {Breadcrumb, Button, Drawer, Popover} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {\r\n BulbOutlined,\r\n CheckCircleOutlined,\r\n CloseCircleOutlined,\r\n CopyOutlined,\r\n DeleteOutlined,\r\n HistoryOutlined,\r\n MoreOutlined,\r\n PlusCircleOutlined,\r\n ProfileOutlined\r\n} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AuditableEntity from \"../api/types/auditableEntity\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"./components/advancedFilter/advancedFilteredGrid\";\r\nimport {GeneralEntityColumn} from \"./components/advancedFilter/advancedFilterColumnDefinitions\";\r\nimport AdvancedFilterButton from \"./components/advancedFilter/advancedFilterButton\";\r\nimport {PanelConfiguration} from \"../core/types/panelConfiguration\";\r\nimport auditEntityRowStyleRules from \"./components/grid/auditEntityRowStyleRules\";\r\nimport TitleWithCodePanel from \"./components/titleWithCodePanel/titleWithCodePanel\";\r\nimport EntityHistoryListPanel from \"./components/history/entityHistoryListPanel\";\r\nimport {AccessRight} from \"../api/types/accessRight\";\r\nimport {ERROR_COLOR, SUCCESS_COLOR} from \"../api/constants/constants\";\r\nimport AbstractEntityConfigPanel from \"./components/editor/abstractEntityConfigPanel\";\r\nimport {DbBoolean} from \"../api/types/dbBoolean\";\r\nimport {ItemType} from \"antd/es/breadcrumb/Breadcrumb\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport ColorTag from \"./components/colorTag/colorTag\";\r\n\r\nconst useStyles = createStyles(({css}) => {\r\n return {\r\n compactBreadcrumb: css`\r\n ol {\r\n display: table;\r\n }\r\n\r\n ol li {\r\n display: table-cell;\r\n white-space: nowrap;\r\n }\r\n `\r\n }\r\n});\r\n\r\nexport const DETAIL_PANEL_DEFAULT_WIDTH = 560;\r\nconst MAX_WIDTH_MOBILE = 500;\r\n\r\nexport interface AbstractBreadcrumbItem {\r\n pageName: string\r\n code: string\r\n}\r\n\r\nexport interface AbstractListPanelConfiguration extends PanelConfiguration {\r\n gridConfiguration: GridConfiguration\r\n}\r\n\r\nexport interface AbstractListPanelProps<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridProps<T> {\r\n breadcrumbPath?: AbstractBreadcrumbItem[]\r\n\r\n getConfiguration(initialConfiguration: C): C\r\n\r\n onPanelConfigurationChanged(): void\r\n}\r\n\r\nexport interface AbstractListPanelState<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridState<T> {\r\n panelConfiguration: C\r\n detailPanelVisible: boolean\r\n modalDetailPanelVisible: boolean\r\n deletedRecordsVisible: boolean\r\n historyModalVisible: boolean\r\n dropdownMenuVisible: boolean\r\n waitingForNewEntity: boolean\r\n waitingForEntityCopy: boolean\r\n quickActionsListVisible: boolean\r\n accessRight: AccessRight\r\n}\r\n\r\nexport abstract class AbstractListPanel<\r\n T extends AuditableEntity,\r\n P extends AbstractListPanelProps<T, C>,\r\n S extends AbstractListPanelState<T, C>,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration,\r\n> extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n protected detailPanel: AbstractEntityConfigPanel<any, any> | null = null;\r\n protected entityHistoryListPanel: EntityHistoryListPanel<T> | null = null;\r\n protected refreshListHandler: Closeable | null = null;\r\n private idToSelect: number | undefined = undefined;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onHistoryListPanelSelectionChanged = this.onHistoryListPanelSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.renderToolbar = this.renderToolbar.bind(this);\r\n this.renderFilterPanel = this.renderFilterPanel.bind(this);\r\n }\r\n\r\n protected initialState: Omit<AbstractListPanelState<T, C>, \"panelConfiguration\"> = {\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false,\r\n deletedRecordsVisible: false,\r\n historyModalVisible: false,\r\n dropdownMenuVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n loading: false,\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n params.successCallback(pageableList.data, pageableList.totalNumberOfRows);\r\n\r\n setTimeout(() => {\r\n this.setState({selectedData: this.gridApi?.getSelectedRows() ?? []});\r\n\r\n if (this.idToSelect !== undefined && pageableList.data.some(value => value.id === this.idToSelect)) {\r\n const rowNode = this.gridApi?.getRowNode(this.idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n rowNode?.setSelected(true, true);\r\n this.idToSelect = undefined;\r\n }\r\n }, 200);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityCopy: false,\r\n quickActionsListVisible: false,\r\n accessRight: AccessRight.NONE,\r\n filterConditions: [],\r\n }\r\n\r\n protected async onLoadData(callback: OnLoadDataCallback): Promise<void> {\r\n await super.onLoadData(callback);\r\n this.subscribeRefreshList();\r\n }\r\n\r\n protected subscribeRefreshList() {\r\n this.refreshListHandler = this.props.api.subscribeRefreshList(() => {\r\n this.gridApi?.refreshInfiniteCache();\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n this.refreshListHandler?.close();\r\n }\r\n\r\n protected initialGridConfiguration: GridConfiguration = {\r\n pageSize: -1,\r\n columnSearchVisible: true,\r\n rowStyleRules: auditEntityRowStyleRules(),\r\n defaultRowStyleRules: auditEntityRowStyleRules(),\r\n }\r\n\r\n getPanelConfiguration(): AbstractListPanelConfiguration {\r\n return this.state.panelConfiguration;\r\n }\r\n\r\n onPanelConfigurationChanged(configuration: Partial<AbstractListPanelConfiguration>) {\r\n const panelConfiguration = this.state.panelConfiguration;\r\n Object.assign(panelConfiguration, configuration);\r\n this.setState({panelConfiguration: panelConfiguration}, () => {\r\n this.props.onPanelConfigurationChanged();\r\n });\r\n }\r\n\r\n protected async onRecordsLoaded(): Promise<void> {\r\n const accessRight = await this.props.api.getAccessRight();\r\n this.setState({accessRight: accessRight});\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return !this.state.deletedRecordsVisible;\r\n }\r\n\r\n updateGrid(entity: T) {\r\n this.setState({modalDetailPanelVisible: false});\r\n this.idToSelect = entity.id;\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract renderDetailPanel(): React.ReactElement;\r\n\r\n abstract renderDetailPanelForHistory(entity: T | undefined, differences: string[]): React.ReactElement;\r\n\r\n protected focusFieldInDetailPanel(): void {\r\n this.detailPanel?.focusFirstField();\r\n }\r\n\r\n protected getAuditColumnDefs(): DataGridColDef[] {\r\n const auditColumnParams: Partial<DataGridColDef> = {\r\n group: i18n(\"Audit\"),\r\n initialHide: true,\r\n }\r\n\r\n return [\r\n this.getDateTimeColumn(GeneralEntityColumn.CREATE_DATE, {headerName: i18n(\"Date of Insert\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.CREATED_BY, {headerName: i18n(\"Created By\"), ...auditColumnParams}),\r\n this.getDateTimeColumn(GeneralEntityColumn.MODIFY_DATE, {headerName: i18n(\"Modify Date\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.MODIFIED_BY, {headerName: i18n(\"Modified By\"), ...auditColumnParams}),\r\n this.getDbBooleanColumn(GeneralEntityColumn.VALIDITY, {headerName: i18n(\"Valid\"), ...auditColumnParams}),\r\n ]\r\n }\r\n\r\n protected onCloseDetailPanel() {\r\n this.setState({\r\n selectedData: this.gridApi?.getSelectedRows() ?? [],\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false\r\n });\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent) {\r\n this.setState({\r\n selectedData: [event.data],\r\n detailPanelVisible: true,\r\n modalDetailPanelVisible: this.isMobile(),\r\n });\r\n\r\n if (!this.isMobile()) {\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n }\r\n\r\n protected getDetailPanelDefaultWidth(): number {\r\n return DETAIL_PANEL_DEFAULT_WIDTH;\r\n }\r\n\r\n protected getFilterPanelDefaultWidth(): number | undefined {\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedData: selectedRows});\r\n } else {\r\n this.setState({selectedData: [], detailPanelVisible: false});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n protected adaptNewRecord(newRecord: T) {\r\n newRecord;\r\n }\r\n\r\n protected getDataToDelete() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.TRUE);\r\n }\r\n\r\n protected getDataToRecover() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.FALSE);\r\n }\r\n\r\n protected isValidityChangeDisabled(): boolean {\r\n return this.state.loading || this.state.selectedData[0]?.id === undefined;\r\n }\r\n\r\n protected renderValidityButton(): React.ReactNode | undefined {\r\n const operationDisabled = this.isValidityChangeDisabled();\r\n\r\n const dataToDelete = this.getDataToDelete();\r\n const dataToRecover = this.getDataToRecover();\r\n\r\n let allowedAction: \"delete\" | \"recover\" | \"none\" = \"none\";\r\n if (dataToDelete.length > 0) {\r\n allowedAction = \"delete\";\r\n } else if (dataToRecover.length > 0) {\r\n allowedAction = \"recover\";\r\n } else {\r\n allowedAction = \"none\";\r\n }\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={allowedAction === \"recover\" ? i18n(\"Mark Record As Valid\") : i18n(\"Mark Record As Deleted\")}\r\n disabled={operationDisabled || allowedAction === \"none\"}\r\n icon={allowedAction === \"recover\" ? <CheckCircleOutlined/> : <CloseCircleOutlined/>}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title: <span style={{whiteSpace: \"nowrap\"}}>\r\n {allowedAction === \"recover\" ? i18n(\"Mark %n records as valid?\", dataToRecover.length) : i18n(\"Mark %n records as deleted?\", dataToDelete.length)}\r\n </span>,\r\n icon:\r\n allowedAction === \"delete\" ?\r\n <CloseCircleOutlined style={{color: ERROR_COLOR}}/>\r\n :\r\n <CheckCircleOutlined style={{color: SUCCESS_COLOR}}/>,\r\n onOk: async () => {\r\n for (const data of allowedAction === \"delete\" ? dataToDelete : dataToRecover) {\r\n const isOk = await this.props.api.setValidity(data, allowedAction === \"recover\");\r\n if (!isOk) {\r\n return;\r\n }\r\n }\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderAdvancedFilterButton(): React.ReactNode | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n onMenuItemClicked={() => {\r\n this.setState({dropdownMenuVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected isMobile(): boolean {\r\n return window.innerWidth <= MAX_WIDTH_MOBILE;\r\n }\r\n\r\n protected renderCopyButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Create Copy\")}\r\n disabled={disabled}\r\n loading={this.state.waitingForEntityCopy}\r\n icon={<CopyOutlined/>}\r\n onClick={async () => {\r\n this.setState({waitingForEntityCopy: true});\r\n const newRecord = await this.props.api.createNewEntity(this.state.selectedData[0]);\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], dropdownMenuVisible: false, waitingForEntityCopy: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n setTimeout(() => this.focusFieldInDetailPanel());\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderNewRecordButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"New Record\")}\r\n disabled={this.state.loading}\r\n loading={this.state.waitingForNewEntity}\r\n icon={<PlusCircleOutlined/>}\r\n onClick={() => {\r\n this.gridApi?.deselectAll();\r\n setTimeout(async () => {\r\n this.setState({waitingForNewEntity: true});\r\n const newRecord = await this.props.api.createNewEntity();\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], waitingForNewEntity: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n this.focusFieldInDetailPanel();\r\n }\r\n })\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderDetailPanelButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.detailPanelVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.detailPanelVisible ? \"Hide Detail\" : \"Show Detail\")}\r\n disabled={disabled}\r\n icon={<ProfileOutlined/>}\r\n onClick={() => {\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n const detailPanelVisible = this.state.detailPanelVisible;\r\n this.setState({detailPanelVisible: !detailPanelVisible});\r\n this.dataGrid?.showDetailPanel(!detailPanelVisible);\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderTrashButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.deletedRecordsVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.deletedRecordsVisible ? \"Hide Deleted Records\" : \"Show Deleted Records\")}\r\n icon={<DeleteOutlined/>}\r\n onClick={() => {\r\n this.setState({deletedRecordsVisible: !this.state.deletedRecordsVisible}, () => {\r\n this.gridApi?.refreshInfiniteCache();\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderShortcutButton(): React.ReactNode | undefined {\r\n if (this.renderShortcutPanel()) {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Quick Actions\")}\r\n disabled={disabled}\r\n icon={<BulbOutlined/>}\r\n onClick={() => {\r\n this.setState({quickActionsListVisible: true, dropdownMenuVisible: false});\r\n }}\r\n />\r\n )\r\n }\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalButtons(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderHistoryButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n disabled={this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined}\r\n onClick={() => {\r\n this.setState({historyModalVisible: true});\r\n }}\r\n >\r\n <HistoryOutlined/>\r\n </Button>\r\n );\r\n }\r\n\r\n protected renderShortcutPanel(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderShortcutDrawer() {\r\n return (\r\n <Drawer\r\n title={<TitleWithCodePanel title={this.getPageTitle()} code={this.getBreadcrumbCode() ?? \"\"}/>}\r\n styles={{body: {padding: 0}}}\r\n placement=\"top\"\r\n height={240}\r\n onClose={() => {\r\n this.setState({quickActionsListVisible: false})\r\n }}\r\n open={this.state.quickActionsListVisible}\r\n >\r\n {this.renderShortcutPanel()}\r\n </Drawer>\r\n );\r\n }\r\n\r\n protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement {\r\n return originalSearchBar;\r\n }\r\n\r\n protected renderFilterPanel(_parameters?: FilterPanelRendererParams): React.ReactElement | undefined {\r\n return undefined;\r\n }\r\n\r\n renderToolbarButtons() {\r\n if (this.isMobile()) {\r\n return (\r\n <>\r\n <Popover\r\n open={this.state.dropdownMenuVisible}\r\n onOpenChange={visible => {\r\n this.setState({dropdownMenuVisible: visible})\r\n }}\r\n content={\r\n <>\r\n <div>{this.renderAdvancedFilterButton()}</div>\r\n <div>{this.renderCopyButton()}</div>\r\n <div>{this.renderValidityButton()}</div>\r\n <div>{this.renderTrashButton()}</div>\r\n <div>{this.renderShortcutButton()}</div>\r\n <div>{this.renderAdditionalButtons()}</div>\r\n </>\r\n }\r\n trigger=\"click\"\r\n >\r\n <Button>\r\n <MoreOutlined/>\r\n </Button>\r\n </Popover>\r\n {this.renderNewRecordButton()}\r\n {this.renderDetailPanelButton()}\r\n </>\r\n )\r\n } else {\r\n return <>\r\n {this.renderAdvancedFilterButton()}\r\n {this.renderNewRecordButton()}\r\n {this.renderCopyButton()}\r\n {this.renderDetailPanelButton()}\r\n {this.renderValidityButton()}\r\n {this.renderTrashButton()}\r\n {this.renderHistoryButton()}\r\n {this.renderShortcutButton()}\r\n {this.renderAdditionalButtons()}\r\n </>\r\n }\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected getRowSelection(): \"single\" | \"multiple\" {\r\n return \"multiple\";\r\n }\r\n\r\n protected getRowModelType(): RowModelType {\r\n return \"infinite\";\r\n }\r\n\r\n protected getRowData(): T[] | undefined {\r\n return undefined;\r\n }\r\n\r\n abstract getPageTitle(): string\r\n\r\n protected getLoadedData(): T[] {\r\n const data: T[] = [];\r\n this.gridApi?.forEachNode(value => data.push(value.data));\r\n\r\n return data;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n className=\"modal-no-header full-screen-modal\"\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n closable={false}\r\n open={this.state.modalDetailPanelVisible}\r\n styles={{body: {padding: 0}}}\r\n initialWidth={window.innerWidth}\r\n initialHeight={window.innerHeight}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected onHistoryListPanelSelectionChanged() {\r\n }\r\n\r\n protected isEqualCustomizerForHistory(key: string, value: any, other: any): boolean | undefined {\r\n key; value; other;\r\n return undefined;\r\n }\r\n\r\n private renderHistoryModalDialog(): React.ReactElement {\r\n const selectedEntity = this.state.selectedData[0];\r\n\r\n return (\r\n <ModalDialog\r\n styles={{body: {padding: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.historyModalVisible}\r\n onCancel={() => this.setState({historyModalVisible: false})}\r\n title={<TitleWithCodePanel title={i18n(\"History\")} code={selectedEntity?.code ?? \"\"}/>}\r\n initialWidth={window.innerWidth * 0.99}\r\n initialHeight={window.innerHeight * 0.95}\r\n >\r\n <EntityHistoryListPanel\r\n ref={component => this.entityHistoryListPanel = component}\r\n api={this.props.api}\r\n entity={selectedEntity}\r\n renderDetail={this.renderDetailPanelForHistory}\r\n detailPanelWidth={this.getDetailPanelDefaultWidth() * 2}\r\n onSelectionChanged={this.onHistoryListPanelSelectionChanged}\r\n isEqualCustomizer={this.isEqualCustomizerForHistory}\r\n />\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n private renderBreadcrumbItem(pageName: React.ReactNode, code?: string): ItemType {\r\n return {\r\n title: <>\r\n {pageName}\r\n {code && <ColorTag style={{marginLeft: 4, fontSize: 14}}>{code}</ColorTag>}\r\n </>,\r\n }\r\n }\r\n\r\n private renderBreadcrumb() {\r\n const pageTitle = this.getPageTitle();\r\n\r\n if (pageTitle) {\r\n const breadcrumbCode = this.getBreadcrumbCode();\r\n return (\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <Breadcrumb\r\n className={css.styles.compactBreadcrumb}\r\n style={{paddingBottom: 10, fontSize: 20, overflowX: \"auto\"}}\r\n items={\r\n [\r\n ...this.props.breadcrumbPath?.map(value => this.renderBreadcrumbItem(value.pageName, value.code)) ?? [],\r\n this.renderBreadcrumbItem(pageTitle, breadcrumbCode),\r\n ]\r\n }\r\n >\r\n </Breadcrumb>\r\n }</WithCss>\r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n protected getBreadcrumbCode() {\r\n return this.state.selectedData[0]?.code ?? undefined;\r\n }\r\n\r\n protected getExtendedBreadcrumbPath() {\r\n return [\r\n ...this.props.breadcrumbPath ?? [],\r\n {pageName: this.getPageTitle() ?? \"\", code: this.getBreadcrumbCode() ?? \"\"}\r\n ]\r\n }\r\n\r\n render() {\r\n const extendedDataGridProps: Partial<ExtendedDataGridProps> = {};\r\n if (this.renderFilterPanel() !== undefined) {\r\n extendedDataGridProps.filterPanel = {\r\n renderer: (parameters: FilterPanelRendererParams): React.ReactElement => {\r\n return this.renderFilterPanel(parameters) as React.ReactElement;\r\n },\r\n defaultWidth: this.getFilterPanelDefaultWidth(),\r\n }\r\n }\r\n\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\"}}>\r\n <div style={{padding: \"10px 12px 0px\", borderBottom: \"2px solid #f5f5f5\", fontWeight: 500}}>\r\n {this.renderBreadcrumb()}\r\n </div>\r\n <div style={{position: \"relative\", height: \"100%\"}}>\r\n {this.renderHistoryModalDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n {this.renderShortcutDrawer()}\r\n <ExtendedDataGrid<T>\r\n tablePanelStyle={{\r\n marginTop: 8,\r\n }}\r\n panelStyle={{\r\n paddingTop: 8,\r\n }}\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={this.state.panelConfiguration.gridConfiguration}\r\n onChangeConfiguration={gridConfiguration => {\r\n this.onPanelConfigurationChanged({gridConfiguration: gridConfiguration});\r\n }}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n rowModelType={this.getRowModelType()}\r\n rowData={this.getRowData()}\r\n datasource={this.state.datasource}\r\n onLoadData={this.onLoadData}\r\n onSelectionChanged={this.onSelectionChanged}\r\n columnDefs={this.state.columnDefs}\r\n search={{\r\n onSearch: () => {\r\n this.dataGrid?.loadData();\r\n },\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n detailPanel={{\r\n defaultWidth: this.getDetailPanelDefaultWidth(),\r\n renderer: this.renderDetailPanel\r\n }}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n renderToolbar: this.renderToolbar,\r\n }}\r\n rowSelection={this.getRowSelection()}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n {...extendedDataGridProps}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"abstractListPanel.js","sourceRoot":"","sources":["../../../coreui/abstractListPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport ExtendedDataGrid, {ExtendedDataGridProps, GridConfiguration} from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\r\nimport {\r\n GridReadyEvent,\r\n IGetRowsParams,\r\n RowDoubleClickedEvent,\r\n RowModelType,\r\n SelectionChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {Closeable, PageableList} from \"../api/abstractEntityApi\";\r\nimport {Breadcrumb, Button, Drawer, Popover} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {\r\n BulbOutlined,\r\n CheckCircleOutlined,\r\n CloseCircleOutlined,\r\n CopyOutlined,\r\n DeleteOutlined,\r\n HistoryOutlined,\r\n MoreOutlined,\r\n PlusCircleOutlined,\r\n ProfileOutlined\r\n} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AuditableEntity from \"../api/types/auditableEntity\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"./components/advancedFilter/advancedFilteredGrid\";\r\nimport {GeneralEntityColumn} from \"./components/advancedFilter/advancedFilterColumnDefinitions\";\r\nimport AdvancedFilterButton from \"./components/advancedFilter/advancedFilterButton\";\r\nimport {PanelConfiguration} from \"../core/types/panelConfiguration\";\r\nimport auditEntityRowStyleRules from \"./components/grid/auditEntityRowStyleRules\";\r\nimport TitleWithCodePanel from \"./components/titleWithCodePanel/titleWithCodePanel\";\r\nimport EntityHistoryListPanel from \"./components/history/entityHistoryListPanel\";\r\nimport {AccessRight} from \"../api/types/accessRight\";\r\nimport {ERROR_COLOR, SUCCESS_COLOR} from \"../api/constants/constants\";\r\nimport AbstractEntityConfigPanel from \"./components/editor/abstractEntityConfigPanel\";\r\nimport {DbBoolean} from \"../api/types/dbBoolean\";\r\nimport {ItemType} from \"antd/es/breadcrumb/Breadcrumb\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport ColorTag from \"./components/colorTag/colorTag\";\r\n\r\nconst useStyles = createStyles(({css}) => {\r\n return {\r\n compactBreadcrumb: css`\r\n ol {\r\n display: table;\r\n }\r\n\r\n ol li {\r\n display: table-cell;\r\n white-space: nowrap;\r\n }\r\n `\r\n }\r\n});\r\n\r\nexport const DETAIL_PANEL_DEFAULT_WIDTH = 560;\r\nconst MAX_WIDTH_MOBILE = 500;\r\n\r\nexport interface AbstractBreadcrumbItem {\r\n pageName: string\r\n code: string\r\n}\r\n\r\nexport interface AbstractListPanelConfiguration extends PanelConfiguration {\r\n gridConfiguration: GridConfiguration\r\n}\r\n\r\nexport interface AbstractListPanelProps<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridProps<T> {\r\n breadcrumbPath?: AbstractBreadcrumbItem[]\r\n\r\n getConfiguration(initialConfiguration: C): C\r\n\r\n onPanelConfigurationChanged(): void\r\n}\r\n\r\nexport interface AbstractListPanelState<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridState<T> {\r\n panelConfiguration: C\r\n detailPanelVisible: boolean\r\n modalDetailPanelVisible: boolean\r\n deletedRecordsVisible: boolean\r\n historyModalVisible: boolean\r\n dropdownMenuVisible: boolean\r\n waitingForNewEntity: boolean\r\n waitingForEntityCopy: boolean\r\n quickActionsListVisible: boolean\r\n accessRight: AccessRight\r\n}\r\n\r\nexport abstract class AbstractListPanel<\r\n T extends AuditableEntity,\r\n P extends AbstractListPanelProps<T, C>,\r\n S extends AbstractListPanelState<T, C>,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration,\r\n> extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n protected detailPanel: AbstractEntityConfigPanel<any, any> | null = null;\r\n protected entityHistoryListPanel: EntityHistoryListPanel<T> | null = null;\r\n protected refreshListHandler: Closeable | null = null;\r\n private idToSelect: number | undefined = undefined;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onHistoryListPanelSelectionChanged = this.onHistoryListPanelSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.renderToolbar = this.renderToolbar.bind(this);\r\n }\r\n\r\n protected initialState: Omit<AbstractListPanelState<T, C>, \"panelConfiguration\"> = {\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false,\r\n deletedRecordsVisible: false,\r\n historyModalVisible: false,\r\n dropdownMenuVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n loading: false,\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n params.successCallback(pageableList.data, pageableList.totalNumberOfRows);\r\n\r\n setTimeout(() => {\r\n this.setState({selectedData: this.gridApi?.getSelectedRows() ?? []});\r\n\r\n if (this.idToSelect !== undefined && pageableList.data.some(value => value.id === this.idToSelect)) {\r\n const rowNode = this.gridApi?.getRowNode(this.idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n rowNode?.setSelected(true, true);\r\n this.idToSelect = undefined;\r\n }\r\n }, 200);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityCopy: false,\r\n quickActionsListVisible: false,\r\n accessRight: AccessRight.NONE,\r\n filterConditions: [],\r\n }\r\n\r\n protected async onLoadData(callback: OnLoadDataCallback): Promise<void> {\r\n await super.onLoadData(callback);\r\n this.subscribeRefreshList();\r\n }\r\n\r\n protected subscribeRefreshList() {\r\n this.refreshListHandler = this.props.api.subscribeRefreshList(() => {\r\n this.gridApi?.refreshInfiniteCache();\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n this.refreshListHandler?.close();\r\n }\r\n\r\n protected initialGridConfiguration: GridConfiguration = {\r\n pageSize: -1,\r\n columnSearchVisible: true,\r\n rowStyleRules: auditEntityRowStyleRules(),\r\n defaultRowStyleRules: auditEntityRowStyleRules(),\r\n }\r\n\r\n getPanelConfiguration(): AbstractListPanelConfiguration {\r\n return this.state.panelConfiguration;\r\n }\r\n\r\n onPanelConfigurationChanged(configuration: Partial<AbstractListPanelConfiguration>) {\r\n const panelConfiguration = this.state.panelConfiguration;\r\n Object.assign(panelConfiguration, configuration);\r\n this.setState({panelConfiguration: panelConfiguration}, () => {\r\n this.props.onPanelConfigurationChanged();\r\n });\r\n }\r\n\r\n protected async onRecordsLoaded(): Promise<void> {\r\n const accessRight = await this.props.api.getAccessRight();\r\n this.setState({accessRight: accessRight});\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return !this.state.deletedRecordsVisible;\r\n }\r\n\r\n updateGrid(entity: T) {\r\n this.setState({modalDetailPanelVisible: false});\r\n this.idToSelect = entity.id;\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract renderDetailPanel(): React.ReactElement;\r\n\r\n abstract renderDetailPanelForHistory(entity: T | undefined, differences: string[]): React.ReactElement;\r\n\r\n protected focusFieldInDetailPanel(): void {\r\n this.detailPanel?.focusFirstField();\r\n }\r\n\r\n protected getAuditColumnDefs(): DataGridColDef[] {\r\n const auditColumnParams: Partial<DataGridColDef> = {\r\n group: i18n(\"Audit\"),\r\n initialHide: true,\r\n }\r\n\r\n return [\r\n this.getDateTimeColumn(GeneralEntityColumn.CREATE_DATE, {headerName: i18n(\"Date of Insert\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.CREATED_BY, {headerName: i18n(\"Created By\"), ...auditColumnParams}),\r\n this.getDateTimeColumn(GeneralEntityColumn.MODIFY_DATE, {headerName: i18n(\"Modify Date\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.MODIFIED_BY, {headerName: i18n(\"Modified By\"), ...auditColumnParams}),\r\n this.getDbBooleanColumn(GeneralEntityColumn.VALIDITY, {headerName: i18n(\"Valid\"), ...auditColumnParams}),\r\n ]\r\n }\r\n\r\n protected onCloseDetailPanel() {\r\n this.setState({\r\n selectedData: this.gridApi?.getSelectedRows() ?? [],\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false\r\n });\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent) {\r\n this.setState({\r\n selectedData: [event.data],\r\n detailPanelVisible: true,\r\n modalDetailPanelVisible: this.isMobile(),\r\n });\r\n\r\n if (!this.isMobile()) {\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n }\r\n\r\n protected getDetailPanelDefaultWidth(): number {\r\n return DETAIL_PANEL_DEFAULT_WIDTH;\r\n }\r\n\r\n protected getExtendedDataGridFilterPanel(): ExtendedDataGridProps[\"filterPanel\"] | undefined {\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedData: selectedRows});\r\n } else {\r\n this.setState({selectedData: [], detailPanelVisible: false});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n protected adaptNewRecord(newRecord: T) {\r\n newRecord;\r\n }\r\n\r\n protected getDataToDelete() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.TRUE);\r\n }\r\n\r\n protected getDataToRecover() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.FALSE);\r\n }\r\n\r\n protected isValidityChangeDisabled(): boolean {\r\n return this.state.loading || this.state.selectedData[0]?.id === undefined;\r\n }\r\n\r\n protected renderValidityButton(): React.ReactNode | undefined {\r\n const operationDisabled = this.isValidityChangeDisabled();\r\n\r\n const dataToDelete = this.getDataToDelete();\r\n const dataToRecover = this.getDataToRecover();\r\n\r\n let allowedAction: \"delete\" | \"recover\" | \"none\" = \"none\";\r\n if (dataToDelete.length > 0) {\r\n allowedAction = \"delete\";\r\n } else if (dataToRecover.length > 0) {\r\n allowedAction = \"recover\";\r\n } else {\r\n allowedAction = \"none\";\r\n }\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={allowedAction === \"recover\" ? i18n(\"Mark Record As Valid\") : i18n(\"Mark Record As Deleted\")}\r\n disabled={operationDisabled || allowedAction === \"none\"}\r\n icon={allowedAction === \"recover\" ? <CheckCircleOutlined/> : <CloseCircleOutlined/>}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title: <span style={{whiteSpace: \"nowrap\"}}>\r\n {allowedAction === \"recover\" ? i18n(\"Mark %n records as valid?\", dataToRecover.length) : i18n(\"Mark %n records as deleted?\", dataToDelete.length)}\r\n </span>,\r\n icon:\r\n allowedAction === \"delete\" ?\r\n <CloseCircleOutlined style={{color: ERROR_COLOR}}/>\r\n :\r\n <CheckCircleOutlined style={{color: SUCCESS_COLOR}}/>,\r\n onOk: async () => {\r\n for (const data of allowedAction === \"delete\" ? dataToDelete : dataToRecover) {\r\n const isOk = await this.props.api.setValidity(data, allowedAction === \"recover\");\r\n if (!isOk) {\r\n return;\r\n }\r\n }\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderAdvancedFilterButton(): React.ReactNode | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n onMenuItemClicked={() => {\r\n this.setState({dropdownMenuVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected isMobile(): boolean {\r\n return window.innerWidth <= MAX_WIDTH_MOBILE;\r\n }\r\n\r\n protected renderCopyButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Create Copy\")}\r\n disabled={disabled}\r\n loading={this.state.waitingForEntityCopy}\r\n icon={<CopyOutlined/>}\r\n onClick={async () => {\r\n this.setState({waitingForEntityCopy: true});\r\n const newRecord = await this.props.api.createNewEntity(this.state.selectedData[0]);\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], dropdownMenuVisible: false, waitingForEntityCopy: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n setTimeout(() => this.focusFieldInDetailPanel());\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderNewRecordButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"New Record\")}\r\n disabled={this.state.loading}\r\n loading={this.state.waitingForNewEntity}\r\n icon={<PlusCircleOutlined/>}\r\n onClick={() => {\r\n this.gridApi?.deselectAll();\r\n setTimeout(async () => {\r\n this.setState({waitingForNewEntity: true});\r\n const newRecord = await this.props.api.createNewEntity();\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], waitingForNewEntity: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n this.focusFieldInDetailPanel();\r\n }\r\n })\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderDetailPanelButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.detailPanelVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.detailPanelVisible ? \"Hide Detail\" : \"Show Detail\")}\r\n disabled={disabled}\r\n icon={<ProfileOutlined/>}\r\n onClick={() => {\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n const detailPanelVisible = this.state.detailPanelVisible;\r\n this.setState({detailPanelVisible: !detailPanelVisible});\r\n this.dataGrid?.showDetailPanel(!detailPanelVisible);\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderTrashButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.deletedRecordsVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.deletedRecordsVisible ? \"Hide Deleted Records\" : \"Show Deleted Records\")}\r\n icon={<DeleteOutlined/>}\r\n onClick={() => {\r\n this.setState({deletedRecordsVisible: !this.state.deletedRecordsVisible}, () => {\r\n this.gridApi?.refreshInfiniteCache();\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderShortcutButton(): React.ReactNode | undefined {\r\n if (this.renderShortcutPanel()) {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Quick Actions\")}\r\n disabled={disabled}\r\n icon={<BulbOutlined/>}\r\n onClick={() => {\r\n this.setState({quickActionsListVisible: true, dropdownMenuVisible: false});\r\n }}\r\n />\r\n )\r\n }\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalButtons(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderHistoryButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n disabled={this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined}\r\n onClick={() => {\r\n this.setState({historyModalVisible: true});\r\n }}\r\n >\r\n <HistoryOutlined/>\r\n </Button>\r\n );\r\n }\r\n\r\n protected renderShortcutPanel(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderShortcutDrawer() {\r\n return (\r\n <Drawer\r\n title={<TitleWithCodePanel title={this.getPageTitle()} code={this.getBreadcrumbCode() ?? \"\"}/>}\r\n styles={{body: {padding: 0}}}\r\n placement=\"top\"\r\n height={240}\r\n onClose={() => {\r\n this.setState({quickActionsListVisible: false})\r\n }}\r\n open={this.state.quickActionsListVisible}\r\n >\r\n {this.renderShortcutPanel()}\r\n </Drawer>\r\n );\r\n }\r\n\r\n protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement {\r\n return originalSearchBar;\r\n }\r\n\r\n renderToolbarButtons() {\r\n if (this.isMobile()) {\r\n return (\r\n <>\r\n <Popover\r\n open={this.state.dropdownMenuVisible}\r\n onOpenChange={visible => {\r\n this.setState({dropdownMenuVisible: visible})\r\n }}\r\n content={\r\n <>\r\n <div>{this.renderAdvancedFilterButton()}</div>\r\n <div>{this.renderCopyButton()}</div>\r\n <div>{this.renderValidityButton()}</div>\r\n <div>{this.renderTrashButton()}</div>\r\n <div>{this.renderShortcutButton()}</div>\r\n <div>{this.renderAdditionalButtons()}</div>\r\n </>\r\n }\r\n trigger=\"click\"\r\n >\r\n <Button>\r\n <MoreOutlined/>\r\n </Button>\r\n </Popover>\r\n {this.renderNewRecordButton()}\r\n {this.renderDetailPanelButton()}\r\n </>\r\n )\r\n } else {\r\n return <>\r\n {this.renderAdvancedFilterButton()}\r\n {this.renderNewRecordButton()}\r\n {this.renderCopyButton()}\r\n {this.renderDetailPanelButton()}\r\n {this.renderValidityButton()}\r\n {this.renderTrashButton()}\r\n {this.renderHistoryButton()}\r\n {this.renderShortcutButton()}\r\n {this.renderAdditionalButtons()}\r\n </>\r\n }\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected getRowSelection(): \"single\" | \"multiple\" {\r\n return \"multiple\";\r\n }\r\n\r\n protected getRowModelType(): RowModelType {\r\n return \"infinite\";\r\n }\r\n\r\n protected getRowData(): T[] | undefined {\r\n return undefined;\r\n }\r\n\r\n abstract getPageTitle(): string\r\n\r\n protected getLoadedData(): T[] {\r\n const data: T[] = [];\r\n this.gridApi?.forEachNode(value => data.push(value.data));\r\n\r\n return data;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n className=\"modal-no-header full-screen-modal\"\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n closable={false}\r\n open={this.state.modalDetailPanelVisible}\r\n styles={{body: {padding: 0}}}\r\n initialWidth={window.innerWidth}\r\n initialHeight={window.innerHeight}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected onHistoryListPanelSelectionChanged() {\r\n }\r\n\r\n protected isEqualCustomizerForHistory(key: string, value: any, other: any): boolean | undefined {\r\n key; value; other;\r\n return undefined;\r\n }\r\n\r\n private renderHistoryModalDialog(): React.ReactElement {\r\n const selectedEntity = this.state.selectedData[0];\r\n\r\n return (\r\n <ModalDialog\r\n styles={{body: {padding: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.historyModalVisible}\r\n onCancel={() => this.setState({historyModalVisible: false})}\r\n title={<TitleWithCodePanel title={i18n(\"History\")} code={selectedEntity?.code ?? \"\"}/>}\r\n initialWidth={window.innerWidth * 0.99}\r\n initialHeight={window.innerHeight * 0.95}\r\n >\r\n <EntityHistoryListPanel\r\n ref={component => this.entityHistoryListPanel = component}\r\n api={this.props.api}\r\n entity={selectedEntity}\r\n renderDetail={this.renderDetailPanelForHistory}\r\n detailPanelWidth={this.getDetailPanelDefaultWidth() * 2}\r\n onSelectionChanged={this.onHistoryListPanelSelectionChanged}\r\n isEqualCustomizer={this.isEqualCustomizerForHistory}\r\n />\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n private renderBreadcrumbItem(pageName: React.ReactNode, code?: string): ItemType {\r\n return {\r\n title: <>\r\n {pageName}\r\n {code && <ColorTag style={{marginLeft: 4, fontSize: 14}}>{code}</ColorTag>}\r\n </>,\r\n }\r\n }\r\n\r\n private renderBreadcrumb() {\r\n const pageTitle = this.getPageTitle();\r\n\r\n if (pageTitle) {\r\n const breadcrumbCode = this.getBreadcrumbCode();\r\n return (\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <Breadcrumb\r\n className={css.styles.compactBreadcrumb}\r\n style={{paddingBottom: 10, fontSize: 20, overflowX: \"auto\"}}\r\n items={\r\n [\r\n ...this.props.breadcrumbPath?.map(value => this.renderBreadcrumbItem(value.pageName, value.code)) ?? [],\r\n this.renderBreadcrumbItem(pageTitle, breadcrumbCode),\r\n ]\r\n }\r\n >\r\n </Breadcrumb>\r\n }</WithCss>\r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n protected getBreadcrumbCode() {\r\n return this.state.selectedData[0]?.code ?? undefined;\r\n }\r\n\r\n protected getExtendedBreadcrumbPath() {\r\n return [\r\n ...this.props.breadcrumbPath ?? [],\r\n {pageName: this.getPageTitle() ?? \"\", code: this.getBreadcrumbCode() ?? \"\"}\r\n ]\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\"}}>\r\n <div style={{padding: \"10px 12px 0px\", borderBottom: \"2px solid #f5f5f5\", fontWeight: 500}}>\r\n {this.renderBreadcrumb()}\r\n </div>\r\n <div style={{position: \"relative\", height: \"100%\"}}>\r\n {this.renderHistoryModalDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n {this.renderShortcutDrawer()}\r\n <ExtendedDataGrid<T>\r\n tablePanelStyle={{\r\n marginTop: 8,\r\n }}\r\n panelStyle={{\r\n paddingTop: 8,\r\n }}\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={this.state.panelConfiguration.gridConfiguration}\r\n onChangeConfiguration={gridConfiguration => {\r\n this.onPanelConfigurationChanged({gridConfiguration: gridConfiguration});\r\n }}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n rowModelType={this.getRowModelType()}\r\n rowData={this.getRowData()}\r\n datasource={this.state.datasource}\r\n onLoadData={this.onLoadData}\r\n onSelectionChanged={this.onSelectionChanged}\r\n columnDefs={this.state.columnDefs}\r\n search={{\r\n onSearch: () => {\r\n this.dataGrid?.loadData();\r\n },\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n detailPanel={{\r\n defaultWidth: this.getDetailPanelDefaultWidth(),\r\n renderer: this.renderDetailPanel\r\n }}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n renderToolbar: this.renderToolbar,\r\n }}\r\n rowSelection={this.getRowSelection()}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n {...this.getExtendedDataGridFilterPanel()}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2aura",
3
- "version": "23.0.46",
3
+ "version": "23.0.47",
4
4
  "description": "D2 AURA - Advanced User Interface Resource Architecture",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",