d2aura 23.0.56 → 23.0.57

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,7 +1,7 @@
1
1
  import React from "react";
2
2
  import Entity from "../../../api/types/entity";
3
3
  import { DataGridColDef } from "d2coreui/components/grid/dataGrid";
4
- import { GridApi } from "ag-grid-community";
4
+ import { GridApi, RowDoubleClickedEvent } from "ag-grid-community";
5
5
  export interface AbstractEntitiesOnEntityListProps<ME extends Entity> {
6
6
  editedEntity: ME;
7
7
  height: number;
@@ -32,6 +32,7 @@ export declare abstract class AbstractEntitiesOnEntityList<ME extends Entity, SE
32
32
  protected renderToolbarButtons(): React.JSX.Element;
33
33
  private onSelectionChanged;
34
34
  protected addRecordsToGrid(records: SE[], idToSelect?: number): void;
35
+ protected onRowDoubleClicked(_event: RowDoubleClickedEvent): void;
35
36
  private renderFullScreenModalDialog;
36
37
  protected renderGrid(fullscreen: boolean): React.JSX.Element;
37
38
  render(): React.JSX.Element;
@@ -17,6 +17,7 @@ export class AbstractEntitiesOnEntityList extends React.Component {
17
17
  this.onSelectionChanged = this.onSelectionChanged.bind(this);
18
18
  this.renderControlPanel = this.renderControlPanel.bind(this);
19
19
  this.onExcludeRecords = this.onExcludeRecords.bind(this);
20
+ this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);
20
21
  }
21
22
  componentDidUpdate(prevProps) {
22
23
  if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {
@@ -89,6 +90,8 @@ export class AbstractEntitiesOnEntityList extends React.Component {
89
90
  rowNode?.setSelected(true, true);
90
91
  }
91
92
  }
93
+ onRowDoubleClicked(_event) {
94
+ }
92
95
  renderFullScreenModalDialog() {
93
96
  return (React.createElement(ModalDialog, { styles: { body: { paddingTop: 0 } }, mode: "NO_BUTTONS", open: this.state.fullscreenModalOpen, onCancel: () => this.setState({ fullscreenModalOpen: false }), afterClose: () => {
94
97
  if (this.renderSelectModalDialog()) {
@@ -138,7 +141,7 @@ export class AbstractEntitiesOnEntityList extends React.Component {
138
141
  return this.noRecordsOverlayRenderer();
139
142
  }
140
143
  return React.createElement("div", null);
141
- }, singleClickEdit: true, stopEditingWhenCellsLoseFocus: true, enterNavigatesVerticallyAfterEdit: true }));
144
+ }, onRowDoubleClicked: this.onRowDoubleClicked, singleClickEdit: true, stopEditingWhenCellsLoseFocus: true, enterNavigatesVerticallyAfterEdit: true }));
142
145
  }
143
146
  render() {
144
147
  return (React.createElement("div", { style: { height: this.props.height, overflow: "auto", resize: "vertical" } },
@@ -1 +1 @@
1
- {"version":3,"file":"abstractEntitiesOnEntityList.js","sourceRoot":"","sources":["../../../../../coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {GridApi, GridReadyEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport {Button} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CloseCircleOutlined, DeleteOutlined, FullscreenOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {ERROR_COLOR, WARNING_COLOR} from \"../../../api/constants/constants\";\r\n\r\nexport interface AbstractEntitiesOnEntityListProps<ME extends Entity> {\r\n editedEntity: ME\r\n height: number\r\n disabled?: boolean\r\n isHighlighted?: boolean\r\n isError?: boolean\r\n\r\n onChange?(): void\r\n}\r\n\r\nexport interface AbstractEntitiesOnEntityListState<SE extends Entity> {\r\n selectedRecords: SE[]\r\n selectModalDialogVisible: boolean\r\n columnDefs: DataGridColDef[]\r\n fullscreenModalOpen: boolean\r\n}\r\n\r\nexport abstract class AbstractEntitiesOnEntityList<\r\n ME extends Entity,\r\n SE extends Entity,\r\n P extends AbstractEntitiesOnEntityListProps<ME>,\r\n S extends AbstractEntitiesOnEntityListState<SE>\r\n> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n protected fullscreenGridApi?: GridApi;\r\n protected initialColumnDefs?: DataGridColDef[];\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.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onExcludeRecords = this.onExcludeRecords.bind(this);\r\n }\r\n\r\n protected initialState: AbstractEntitiesOnEntityListState<SE> = {\r\n selectedRecords: [],\r\n selectModalDialogVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n fullscreenModalOpen: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n }\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract getSubEntities(): SE[];\r\n\r\n protected renderSelectModalDialog(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected noRecordsOverlayRenderer() {\r\n return <div/>\r\n }\r\n\r\n protected onExcludeRecords() {\r\n const subEntities = this.getSubEntities();\r\n\r\n this.state.selectedRecords.forEach(subEntityToExclude => {\r\n const index = subEntities.findIndex(value => value.id === subEntityToExclude.id);\r\n subEntities.splice(index, 1);\r\n });\r\n\r\n this.props.onChange?.();\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n } else {\r\n this.gridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n }\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return <>\r\n <Button\r\n title={i18n(\"Add Record\")}\r\n disabled={this.props.disabled}\r\n onClick={() => {\r\n this.setState({selectModalDialogVisible: true});\r\n }}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Exclude Record\")}\r\n disabled={this.state.selectedRecords.length === 0 || this.props.disabled}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title:\r\n <span style={{whiteSpace: \"nowrap\"}}>\r\n {i18n(\"Exclude %n records?\", this.state.selectedRecords.length)}\r\n </span>,\r\n icon: <DeleteOutlined style={{color: ERROR_COLOR}}/>,\r\n onOk: this.onExcludeRecords\r\n });\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>;\r\n }\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedRecords: selectedRows});\r\n }\r\n\r\n protected addRecordsToGrid(records: SE[], idToSelect?: number) {\r\n if (records.length > 0) {\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({add: records});\r\n } else {\r\n this.gridApi?.applyTransaction({add: records});\r\n }\r\n this.props.onChange?.();\r\n }\r\n\r\n if (idToSelect !== undefined) {\r\n let rowNode;\r\n if (this.state.fullscreenModalOpen) {\r\n rowNode = this.fullscreenGridApi?.getRowNode(idToSelect.toString());\r\n this.fullscreenGridApi?.ensureNodeVisible(rowNode);\r\n } else {\r\n rowNode = this.gridApi?.getRowNode(idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n }\r\n\r\n rowNode?.setSelected(true, true);\r\n }\r\n }\r\n\r\n private renderFullScreenModalDialog() {\r\n return (\r\n <ModalDialog\r\n styles={{body: {paddingTop: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.fullscreenModalOpen}\r\n onCancel={() => this.setState({fullscreenModalOpen: false})}\r\n afterClose={() => {\r\n if (this.renderSelectModalDialog()) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n } else {\r\n this.gridApi?.refreshCells({force: true});\r\n }\r\n }}\r\n title={i18n(\"Fullscreen\")}\r\n initialWidth={800}\r\n initialHeight={window.innerHeight - 20}\r\n >\r\n {this.renderGrid(true)}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected renderGrid(fullscreen: boolean) {\r\n const subEntities = this.getSubEntities();\r\n\r\n let tablePanelStyleBorder: React.CSSProperties[\"border\"] = \"unset\";\r\n if (this.props.isHighlighted) {\r\n tablePanelStyleBorder = `1px solid ${WARNING_COLOR}`;\r\n } else if (this.props.isError) {\r\n tablePanelStyleBorder = `1px solid ${ERROR_COLOR}`;\r\n }\r\n\r\n return (\r\n <ExtendedDataGrid\r\n onGridReady={(params: GridReadyEvent) => {\r\n if (fullscreen) {\r\n this.fullscreenGridApi = params.api;\r\n } else {\r\n this.gridApi = params.api;\r\n }\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={this.state.columnDefs}\r\n rowData={subEntities}\r\n onLoadData={(callback) => {\r\n callback(subEntities.length);\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"multiple\"\r\n onSelectionChanged={this.onSelectionChanged}\r\n toolbar={{\r\n renderToolbar: (originalSearchBar) => this.renderSelectModalDialog() ? originalSearchBar : <></>,\r\n toolbarButtons: this.renderSelectModalDialog() ? this.renderToolbarButtons() : <></>,\r\n extraContent:\r\n !fullscreen\r\n ?\r\n <FullscreenOutlined\r\n style={{cursor: \"pointer\", height: 32}}\r\n title={i18n(\"Fullscreen\")}\r\n onClick={() => this.setState({fullscreenModalOpen: true})}\r\n />\r\n :\r\n undefined\r\n }}\r\n tablePanelStyle={{\r\n marginTop: this.renderSelectModalDialog() ? 4 : 0,\r\n border: tablePanelStyleBorder,\r\n }}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n panelStyle={{padding: 0}}\r\n tableConfigVisible={false}\r\n noRecordsOverlayRenderer={() => {\r\n if (this.getSubEntities().length === 0) {\r\n return this.noRecordsOverlayRenderer();\r\n }\r\n return <div/>\r\n }}\r\n singleClickEdit\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{height: this.props.height, overflow: \"auto\", resize: \"vertical\"}}>\r\n {this.renderFullScreenModalDialog()}\r\n {this.renderSelectModalDialog()}\r\n {this.renderGrid(false)}\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"abstractEntitiesOnEntityList.js","sourceRoot":"","sources":["../../../../../coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC;AAC5B,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAC,WAAW,EAAkB,MAAM,uCAAuC,CAAC;AACnF,OAAO,gBAAgB,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAmB5E,MAAM,OAAgB,4BAKpB,SAAQ,KAAK,CAAC,SAAe;IAK3B,YAAsB,KAAkB;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAQP,iBAAY,GAA0C;YAC5D,eAAe,EAAE,EAAE;YACnB,wBAAwB,EAAE,KAAK;YAC/B,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACvC,mBAAmB,EAAE,KAAK;SAC7B,CAAA;QAXG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IASD,kBAAkB,CAAC,SAAsB;QACrC,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACzG,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAMS,uBAAuB;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,kBAAkB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,wBAAwB;QAC9B,OAAO,gCAAM,CAAA;IACjB,CAAC;IAES,gBAAgB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;YACpD,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACjF,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAC,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAES,oBAAoB;QAC1B,OAAO;YACH,oBAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC7B,OAAO,EAAE,GAAG,EAAE;oBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,wBAAwB,EAAE,IAAI,EAAC,CAAC,CAAC;gBACpD,CAAC;gBAED,oBAAC,kBAAkB,OAAE,CAChB;YACT,oBAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EACxE,OAAO,EAAE,GAAG,EAAE;oBACV,WAAW,CAAC,MAAM,CAAC;wBACf,IAAI,UAAwB;wBAC5B,KAAK,EACD,8BAAM,KAAK,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAC,IAC9B,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAC5D;wBACX,IAAI,EAAE,oBAAC,cAAc,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG;wBACpD,IAAI,EAAE,IAAI,CAAC,gBAAgB;qBAC9B,CAAC,CAAC;gBACP,CAAC;gBAED,oBAAC,mBAAmB,OAAE,CACjB,CACV,CAAC;IACR,CAAC;IAEO,kBAAkB,CAAC,KAA4B;QACnD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,EAAE,YAAY,EAAC,CAAC,CAAC;IACnD,CAAC;IAES,gBAAgB,CAAC,OAAa,EAAE,UAAmB;QACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAC,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC;YACZ,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACjC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,MAA6B;IAC1D,CAAC;IAEO,2BAA2B;QAC/B,OAAO,CACH,oBAAC,WAAW,IACR,MAAM,EAAE,EAAC,IAAI,EAAE,EAAC,UAAU,EAAE,CAAC,EAAC,EAAC,EAC/B,IAAI,gBACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAC3D,UAAU,EAAE,GAAG,EAAE;gBACb,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EACzB,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,MAAM,CAAC,WAAW,GAAG,EAAE,IAErC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CACZ,CACjB,CAAA;IACL,CAAC;IAES,UAAU,CAAC,UAAmB;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,qBAAqB,GAAkC,OAAO,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,qBAAqB,GAAG,aAAa,aAAa,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5B,qBAAqB,GAAG,aAAa,WAAW,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,CACH,oBAAC,gBAAgB,IACb,WAAW,EAAE,CAAC,MAAsB,EAAE,EAAE;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;gBAC9B,CAAC;YACL,CAAC,EACD,wBAAwB,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,EACxC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC,EACD,MAAM,EAAE;gBACJ,MAAM,EAAE,IAAI;gBACZ,kBAAkB,EAAE,IAAI;aAC3B,EACD,YAAY,EAAC,UAAU,EACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,OAAO,EAAE;gBACL,aAAa,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,yCAAK;gBAChG,cAAc,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,yCAAK;gBACpF,YAAY,EACR,CAAC,UAAU;oBACP,CAAC;wBACD,oBAAC,kBAAkB,IACf,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAC,EACtC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,IAAI,EAAC,CAAC,GAC3D;oBACF,CAAC;wBACD,SAAS;aACpB,EACD,eAAe,EAAE;gBACb,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,EAAE,qBAAqB;aAChC,EACD,YAAY,EAAE;gBACV,QAAQ,EAAE,IAAI,CAAC,kBAAkB;aACpC,EACD,UAAU,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,EACxB,kBAAkB,EAAE,KAAK,EACzB,wBAAwB,EAAE,GAAG,EAAE;gBAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC3C,CAAC;gBACD,OAAO,gCAAM,CAAA;YACjB,CAAC,EACD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,eAAe,QACf,6BAA6B,QAC7B,iCAAiC,SACnC,CACL,CAAC;IACN,CAAC;IAED,MAAM;QACF,OAAO,CACH,6BAAK,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAC;YACxE,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CACrB,CACT,CAAC;IACN,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {GridApi, GridReadyEvent, SelectionChangedEvent, RowDoubleClickedEvent} from \"ag-grid-community\";\r\nimport {Button} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CloseCircleOutlined, DeleteOutlined, FullscreenOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {ERROR_COLOR, WARNING_COLOR} from \"../../../api/constants/constants\";\r\n\r\nexport interface AbstractEntitiesOnEntityListProps<ME extends Entity> {\r\n editedEntity: ME\r\n height: number\r\n disabled?: boolean\r\n isHighlighted?: boolean\r\n isError?: boolean\r\n\r\n onChange?(): void\r\n}\r\n\r\nexport interface AbstractEntitiesOnEntityListState<SE extends Entity> {\r\n selectedRecords: SE[]\r\n selectModalDialogVisible: boolean\r\n columnDefs: DataGridColDef[]\r\n fullscreenModalOpen: boolean\r\n}\r\n\r\nexport abstract class AbstractEntitiesOnEntityList<\r\n ME extends Entity,\r\n SE extends Entity,\r\n P extends AbstractEntitiesOnEntityListProps<ME>,\r\n S extends AbstractEntitiesOnEntityListState<SE>\r\n> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n protected fullscreenGridApi?: GridApi;\r\n protected initialColumnDefs?: DataGridColDef[];\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.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onExcludeRecords = this.onExcludeRecords.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n }\r\n\r\n protected initialState: AbstractEntitiesOnEntityListState<SE> = {\r\n selectedRecords: [],\r\n selectModalDialogVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n fullscreenModalOpen: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n }\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract getSubEntities(): SE[];\r\n\r\n protected renderSelectModalDialog(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected noRecordsOverlayRenderer() {\r\n return <div/>\r\n }\r\n\r\n protected onExcludeRecords() {\r\n const subEntities = this.getSubEntities();\r\n\r\n this.state.selectedRecords.forEach(subEntityToExclude => {\r\n const index = subEntities.findIndex(value => value.id === subEntityToExclude.id);\r\n subEntities.splice(index, 1);\r\n });\r\n\r\n this.props.onChange?.();\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n } else {\r\n this.gridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n }\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return <>\r\n <Button\r\n title={i18n(\"Add Record\")}\r\n disabled={this.props.disabled}\r\n onClick={() => {\r\n this.setState({selectModalDialogVisible: true});\r\n }}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Exclude Record\")}\r\n disabled={this.state.selectedRecords.length === 0 || this.props.disabled}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title:\r\n <span style={{whiteSpace: \"nowrap\"}}>\r\n {i18n(\"Exclude %n records?\", this.state.selectedRecords.length)}\r\n </span>,\r\n icon: <DeleteOutlined style={{color: ERROR_COLOR}}/>,\r\n onOk: this.onExcludeRecords\r\n });\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>;\r\n }\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedRecords: selectedRows});\r\n }\r\n\r\n protected addRecordsToGrid(records: SE[], idToSelect?: number) {\r\n if (records.length > 0) {\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({add: records});\r\n } else {\r\n this.gridApi?.applyTransaction({add: records});\r\n }\r\n this.props.onChange?.();\r\n }\r\n\r\n if (idToSelect !== undefined) {\r\n let rowNode;\r\n if (this.state.fullscreenModalOpen) {\r\n rowNode = this.fullscreenGridApi?.getRowNode(idToSelect.toString());\r\n this.fullscreenGridApi?.ensureNodeVisible(rowNode);\r\n } else {\r\n rowNode = this.gridApi?.getRowNode(idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n }\r\n\r\n rowNode?.setSelected(true, true);\r\n }\r\n }\r\n\r\n protected onRowDoubleClicked(_event: RowDoubleClickedEvent) {\r\n }\r\n\r\n private renderFullScreenModalDialog() {\r\n return (\r\n <ModalDialog\r\n styles={{body: {paddingTop: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.fullscreenModalOpen}\r\n onCancel={() => this.setState({fullscreenModalOpen: false})}\r\n afterClose={() => {\r\n if (this.renderSelectModalDialog()) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n } else {\r\n this.gridApi?.refreshCells({force: true});\r\n }\r\n }}\r\n title={i18n(\"Fullscreen\")}\r\n initialWidth={800}\r\n initialHeight={window.innerHeight - 20}\r\n >\r\n {this.renderGrid(true)}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected renderGrid(fullscreen: boolean) {\r\n const subEntities = this.getSubEntities();\r\n\r\n let tablePanelStyleBorder: React.CSSProperties[\"border\"] = \"unset\";\r\n if (this.props.isHighlighted) {\r\n tablePanelStyleBorder = `1px solid ${WARNING_COLOR}`;\r\n } else if (this.props.isError) {\r\n tablePanelStyleBorder = `1px solid ${ERROR_COLOR}`;\r\n }\r\n\r\n return (\r\n <ExtendedDataGrid\r\n onGridReady={(params: GridReadyEvent) => {\r\n if (fullscreen) {\r\n this.fullscreenGridApi = params.api;\r\n } else {\r\n this.gridApi = params.api;\r\n }\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={this.state.columnDefs}\r\n rowData={subEntities}\r\n onLoadData={(callback) => {\r\n callback(subEntities.length);\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"multiple\"\r\n onSelectionChanged={this.onSelectionChanged}\r\n toolbar={{\r\n renderToolbar: (originalSearchBar) => this.renderSelectModalDialog() ? originalSearchBar : <></>,\r\n toolbarButtons: this.renderSelectModalDialog() ? this.renderToolbarButtons() : <></>,\r\n extraContent:\r\n !fullscreen\r\n ?\r\n <FullscreenOutlined\r\n style={{cursor: \"pointer\", height: 32}}\r\n title={i18n(\"Fullscreen\")}\r\n onClick={() => this.setState({fullscreenModalOpen: true})}\r\n />\r\n :\r\n undefined\r\n }}\r\n tablePanelStyle={{\r\n marginTop: this.renderSelectModalDialog() ? 4 : 0,\r\n border: tablePanelStyleBorder,\r\n }}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n panelStyle={{padding: 0}}\r\n tableConfigVisible={false}\r\n noRecordsOverlayRenderer={() => {\r\n if (this.getSubEntities().length === 0) {\r\n return this.noRecordsOverlayRenderer();\r\n }\r\n return <div/>\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n singleClickEdit\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{height: this.props.height, overflow: \"auto\", resize: \"vertical\"}}>\r\n {this.renderFullScreenModalDialog()}\r\n {this.renderSelectModalDialog()}\r\n {this.renderGrid(false)}\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.56",
3
+ "version": "23.0.57",
4
4
  "description": "D2 AURA - Advanced User Interface Resource Architecture",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",