d2coreui 23.0.21 → 23.0.23

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.
Files changed (50) hide show
  1. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  2. package/components/color/colorSwatch.js.map +1 -1
  3. package/components/grid/cell/cellEditorUtils.js.map +1 -1
  4. package/components/grid/columnUtils.js.map +1 -1
  5. package/components/grid/dataGrid.d.ts +1 -0
  6. package/components/grid/dataGrid.js +3 -2
  7. package/components/grid/dataGrid.js.map +1 -1
  8. package/components/grid/export/progressPopup.js.map +1 -1
  9. package/components/grid/export/worker/clipboardExport.js.map +1 -1
  10. package/components/grid/export/worker/csvExport.js.map +1 -1
  11. package/components/grid/export/worker/txtExport.js.map +1 -1
  12. package/components/grid/extendedDataGrid.js +2 -1
  13. package/components/grid/extendedDataGrid.js.map +1 -1
  14. package/components/icons/ant-design-double-right-outline.svg +5 -5
  15. package/components/icons/ant-design_close-outline.svg +5 -5
  16. package/components/icons/undoIcon.js.map +1 -1
  17. package/components/input/draftUtils.js.map +1 -1
  18. package/components/input/draftail.js.map +1 -1
  19. package/components/input/mask/inputMaskCore.js.map +1 -1
  20. package/components/input/mask/pattern.js.map +1 -1
  21. package/components/input/passwordInput.js.map +1 -1
  22. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  23. package/components/input/textarea/getRanges.js.map +1 -1
  24. package/components/input/textarea/getType.js.map +1 -1
  25. package/components/input/textarea/highlighedContents.js.map +1 -1
  26. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  27. package/components/keyboard/keyboardUtils.js.map +1 -1
  28. package/components/platformSpecific.js.map +1 -1
  29. package/components/text/impl/innerSize.js.map +1 -1
  30. package/components/text/impl/series.js.map +1 -1
  31. package/components/text/impl/shallowEqual.js.map +1 -1
  32. package/components/text/impl/uniqueId.js.map +1 -1
  33. package/components/text/impl/whilst.js.map +1 -1
  34. package/i18n/componentsLocaleHolder.js.map +1 -1
  35. package/package.json +1 -1
  36. package/style/ag-grid/_ag-theme-antd-vars.scss +194 -194
  37. package/style/ag-grid/ag-theme-antd.scss +87 -87
  38. package/style/ag-grid/aggrid-adaptations.css +42 -42
  39. package/style/ag-grid/aggrid.scss +11 -11
  40. package/style/flexLayout/flexLayout.scss +130 -130
  41. package/style/flexLayout/flexLayoutBase.scss +623 -623
  42. package/style/flexLayout/new/_base.scss +616 -616
  43. package/style/flexLayout/new/flexLayoutBase.scss +621 -621
  44. package/style/flexLayout/new/light.scss +107 -107
  45. package/style/flexLayout/old/_base.scss +551 -551
  46. package/style/flexLayout/old/light.scss +16 -16
  47. package/style/form/niceFormItem.css +38 -38
  48. package/style/index.less +7 -0
  49. package/style/loading.css +31 -31
  50. package/style/splitPane/splitPane.css +48 -48
@@ -1 +1 @@
1
- {"version":3,"file":"dataGrid.js","sourceRoot":"","sources":["../../../../components/grid/dataGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {ReactElement} from \"react\";\r\n\r\nimport {\r\n ColumnWidthOutlined,\r\n ControlOutlined,\r\n DownloadOutlined,\r\n FileSearchOutlined,\r\n LoadingOutlined,\r\n ReloadOutlined,\r\n SearchOutlined,\r\n SettingOutlined,\r\n TableOutlined\r\n} from \"@ant-design/icons\";\r\nimport {Button, Card, Dropdown, Empty, MenuProps, Space} from \"antd\";\r\nimport {AgGridReact} from \"ag-grid-react\";\r\nimport 'ag-grid-community/styles/ag-grid.css';\r\nimport 'ag-grid-community/styles/ag-theme-balham.css';\r\nimport 'd2coreui/style/ag-grid/aggrid-adaptations.css'\r\nimport TextColumnFilter from \"d2coreui/components/grid/filter/textColumnFilter\"\r\nimport CustomColumnFilter from \"d2coreui/components/grid/filter/customColumnFilter\"\r\nimport SimpleHeader from \"d2coreui/components/grid/header/simpleHeader\"\r\nimport DataGridEditor from \"d2coreui/components/grid/config/dataGridEditor\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport AutoCompleteInput from \"d2coreui/components/input/autoCompleteInput\";\r\nimport isEqual from \"lodash/isEqual\"\r\nimport getContextMenu, {ContextMenuProps, PageOrientation} from \"d2coreui/components/grid/export/contextMenu\";\r\nimport LoadingOverlay from \"d2coreui/components/grid/panel/loadingOverlay\";\r\nimport NoRecordsOverlay from \"d2coreui/components/grid/panel/noRecordsOverlay\";\r\nimport at from \"lodash/at\"\r\nimport ColumnTransfer from \"d2coreui/components/grid/config/columnTransfer\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport escape from \"lodash/escape\";\r\nimport {RangeSelector} from \"d2coreui/components/grid/cell/rangeSelector\"\r\nimport {\r\n _defineModule,\r\n CellClassParams,\r\n CellContextMenuEvent,\r\n CellCtrl,\r\n CellFocusedEvent,\r\n CellMouseDownEvent,\r\n CellPosition,\r\n ColDef,\r\n Column,\r\n ColumnEvent,\r\n ColumnState,\r\n FilterChangedEvent,\r\n FilterModifiedEvent,\r\n GetQuickFilterTextParams,\r\n GetRowIdParams,\r\n GridApi,\r\n GridOptions,\r\n GridReadyEvent,\r\n ICellRendererParams,\r\n IRowModel,\r\n IRowNode,\r\n ModuleRegistry,\r\n NavigateToNextCellParams,\r\n PaginationChangedEvent,\r\n RowClassParams,\r\n RowDataUpdatedEvent,\r\n RowNode,\r\n RowPinnedType,\r\n RowStyle,\r\n SortChangedEvent,\r\n SuppressKeyboardEventParams,\r\n ValueFormatterParams,\r\n ValueGetterParams,\r\n ViewportChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport tableDefaultRowStyleRules, {\r\n GridRowStyle,\r\n RowStyleRule\r\n} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {Key} from \"ts-key-enum\";\r\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\r\nimport ProgressPopup from \"d2coreui/components/grid/export/progressPopup\";\r\nimport TimeUtils from \"d2core/utils/timeUtils\";\r\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\r\nimport NumberCellEditor from \"d2coreui/components/grid/cell/numberCellEditor\";\r\nimport TextCellEditor from \"d2coreui/components/grid/cell/textCellEditor\";\r\nimport StatusTextCellEditor from \"d2coreui/components/grid/cell/statusTextCellEditor\";\r\nimport DateCellEditor from \"d2coreui/components/grid/cell/dateCellEditor\";\r\nimport memoizeOne from \"memoize-one\";\r\nimport SimpleStatusTextCellEditor from \"d2coreui/components/grid/cell/simpleStatusTextCellEditor\";\r\nimport DurationCellEditor from \"d2coreui/components/grid/cell/durationCellEditor\";\r\nimport CustomEnumCellEditor from \"d2coreui/components/grid/cell/customEnumCellEditor\";\r\nimport HexaValueCellEditor from \"d2coreui/components/grid/cell/hexaValueCellEditor\";\r\nimport HexaOctetStringCellEditor from \"d2coreui/components/grid/cell/hexaOctetStringCellEditor\";\r\nimport ReactDOM from \"react-dom\";\r\nimport {D2000UnixTimeNullValue, unixTimeToMoment} from \"d2core/types/unixTimeUtils\";\r\nimport {compileExpression} from \"filtrex\";\r\nimport DataGridPagination from \"./panel/dataGridPagination\";\r\nimport {\r\n calculateLineHeight,\r\n calculateRowHeight,\r\n getFontSize,\r\n getLineHeight,\r\n getRowHeightDelta,\r\n GRID_DEFAULT_FONT_SIZE,\r\n GRID_DEFAULT_ROW_HEIGHT_DELTA\r\n} from \"./config/rowHeightCalculator\";\r\nimport BeanAccessor, {GridApiWithPrivateAccess} from \"./cell/beanAccessor\";\r\nimport WildcardQuickFilterEngine from \"./filter/wildcardQuickFilterEngine\";\r\n\r\nconst gridFrameworkComponents = {\r\n customColumnFilter: CustomColumnFilter,\r\n textColumnFilter: TextColumnFilter,\r\n numberCellEditor: NumberCellEditor,\r\n textCellEditor: TextCellEditor,\r\n simpleStatusTextCellEditor: SimpleStatusTextCellEditor,\r\n statusTextCellEditor: StatusTextCellEditor,\r\n dateCellEditor: DateCellEditor,\r\n durationCellEditor: DurationCellEditor,\r\n customEnumCellEditor: CustomEnumCellEditor,\r\n hexaValueCellEditor: HexaValueCellEditor,\r\n hexaOctetStringCellEditor: HexaOctetStringCellEditor,\r\n simpleHeader: SimpleHeader,\r\n loadingOverlay: LoadingOverlay,\r\n noRecordsOverlay: NoRecordsOverlay\r\n};\r\n\r\n\r\nconst DataGridModule = _defineModule({\r\n version: \"32.2.0\",\r\n moduleName: `dataGridModule`,\r\n beans: [RangeSelector, BeanAccessor],\r\n dependantModules: [],\r\n});\r\n\r\nModuleRegistry.__register(DataGridModule, false, undefined)\r\n\r\n/*\r\n * Ag Grid cell editing enter key navigation bug fix in case of enabled enterMovesDownAfterEdit property\r\n * buggy Ag Grid implementation causes that not only pressing enter, but also losing focus of the cell (e.g. clicking outside the grid) moves focus to the next cell\r\n * This code fixes CellCtrl prototype implementation of onPopupEditorClosed method to prevent this behavior by adding property true to stopEditingAndFocus method\r\n */\r\nCellCtrl.prototype.onPopupEditorClosed = function () {\r\n if (!this.isEditing()) {\r\n return;\r\n }\r\n // note: this happens because of a click outside of the grid or if the popupEditor\r\n // is closed with `Escape` key. if another cell was clicked, then the editing will\r\n // have already stopped and returned on the conditional above.\r\n this.stopEditingAndFocus(true);\r\n};\r\n\r\nfunction getRowId(item: GetRowIdParams): string {\r\n return item.data.id + \"\";\r\n}\r\n\r\nconst rowStyleRuleCompiledExpressions: { [key: string]: (parameters: any) => any } = {};\r\n\r\n/**\r\n * Special separator for part of the column which should be exported\r\n */\r\nexport const EXPORT_SEPARATOR = \"\\n\";\r\n\r\nexport type MenuElement = Exclude<Exclude<MenuProps[\"items\"], undefined>[number], null>;\r\n\r\nconst enum NavigationEventEnum {\r\n KEYBOARD,\r\n MOUSE\r\n}\r\n\r\n/**\r\n * Extended viewport change event\r\n */\r\nexport interface DataGridViewportChangedEvent extends ViewportChangedEvent {\r\n // delta number of rows table moved during paging/scrolling of the table\r\n // negative number when paged/scrolled backwards to first record, positive number when paged/scrolled forwards to last record\r\n rowsScrollingDelta: number\r\n}\r\n\r\nexport type SortMode = \"asc\" | \"desc\"\r\n\r\n/**\r\n * Represents sorting definition for one column\r\n */\r\nexport interface SortItem {\r\n colId: string;\r\n sort: SortMode;\r\n}\r\n\r\nexport type FilterRenderer = (value: string, changeValue: (newValue: string) => void, onSearch: () => void) => React.ReactNode\r\n\r\n/*\r\n * Extended table column definition\r\n */\r\nexport interface DataGridColDef extends Omit<ColDef, \"cellStyle\"> {\r\n // localized name of group of columns to which column belongs to\r\n group: string\r\n // context of column definition\r\n context?: any\r\n\r\n // override of ag-grid api with undefined styles\r\n cellStyle?: { [cssProperty: string]: string | number | null } | ((cellClassParams: CellClassParams) => {\r\n [cssProperty: string]: string | number | null\r\n } | undefined);\r\n\r\n\r\n // custom filter render method\r\n renderFilter?: FilterRenderer\r\n}\r\n\r\n// removal of console warnings of our properties\r\n// COL_DEF_VALIDATORS.allProperties?.push(\"group\", \"context\", \"cellStyle\", \"renderFilter\");\r\n\r\n\r\nexport interface DataGridFilterProps {\r\n // flag if floating filters (beneath column headers) are visible\r\n columnSearchVisible?: boolean\r\n // visibility handler for floating filters\r\n onColumnSearchVisible?: (visible: boolean) => void\r\n\r\n // returns floating filters (beneath column headers) current model (essential when filters should be pre-filled when shown from e.g. searchbox)\r\n getFilterModel?(): any\r\n\r\n // floating filter changed event (e.g. when pressing enter in floating filter textbox)\r\n onFilterChanged?(event: FilterChangedEvent): void;\r\n\r\n // floating filter modify event (e.g. when modifying value in floating filter textbox)\r\n onFilterModified?(event: FilterModifiedEvent): void;\r\n\r\n // method called when enter is pressed in the floating filter\r\n onFilterConfirmed?(): void\r\n}\r\n\r\nexport interface DataGridSearchProps {\r\n // placeholder to show in search field when no value is entered\r\n placeholder?: string\r\n // current search string\r\n searchString?: string\r\n // current search history available for search field popup\r\n searchHistory?: string[]\r\n // custom search button class name\r\n searchButtonClassName?: string\r\n // search button disabled\r\n searchButtonDisabled?: boolean\r\n // search button hidden\r\n searchButtonHidden?: boolean\r\n // hide searchbox\r\n hidden?: boolean\r\n\r\n // custom search field renderer\r\n searchRenderer?(): React.ReactNode\r\n\r\n // formatting showed strings in search and history\r\n stringFormatter?(rawString: string): string\r\n\r\n // search field value changed\r\n onChange?(searchString: string): void\r\n\r\n // called when new search is invoked by pressing search button or enter in the search field\r\n onSearch?(): void\r\n}\r\n\r\n// callback called when data are loaded from backend\r\nexport type OnLoadDataCallback = (totalRecords: number) => void\r\n\r\n/**\r\n * Data Grid properties, differences to AgGrid:\r\n * columnDefinitions (columnDefs) does not support column groups for now\r\n * paginationPageSize for defining size of page is not available, use paging.pageSize instead\r\n */\r\nexport interface DataGridProps extends Omit<GridOptions, \"columnDefs\" | \"paginationPageSize\" | \"getRowStyle\" | \"cellStyle\"> {\r\n // linking grid options (used for aligned grids feature: https://www.ag-grid.com/javascript-grid-aligned-grids/)\r\n gridOptions?: GridOptions\r\n // column definitions\r\n columnDefs: DataGridColDef[]\r\n // for aligned grids functionality\r\n disableColumnDefsPreprocessing?: boolean\r\n\r\n // realColumnDefs building handler\r\n onColumnDefsAdapted?(columnDefs: ColDef[]): void\r\n\r\n // shows table configuration panel\r\n tableConfigVisible?: boolean,\r\n // shows column configuration panel\r\n columnsConfigVisible?: boolean,\r\n // style of panel surrounding datagrid\r\n panelStyle?: React.CSSProperties,\r\n // style of panel surrounding table part\r\n tablePanelStyle?: React.CSSProperties,\r\n // floating filter configuration\r\n filter?: DataGridFilterProps\r\n // search bar configuration\r\n search?: DataGridSearchProps\r\n // table paging configuration\r\n paging: {\r\n /* current size of table page:\r\n - value -1 means no paging at all (scrollbar only)\r\n - value 0 means automatic paging (page size automatically adjusted based on available height for table)\r\n - value >0 defines statically defined page size (number of rows) for the table\r\n */\r\n pageSize: number,\r\n // default size used when configuration is reverted\r\n defaultPageSize?: number,\r\n /**\r\n * Page size change handler\r\n * @param currentPageSize - current page size represents number rows available\r\n * @param definedPageSize -\r\n */\r\n onPaginationChanged?: (currentPageSize: number | null, definedPageSize: number) => void;\r\n }\r\n\r\n // flag if row data could be passed only by transaction or setRowData method (optimization for big data lists, where deep comparison is not performed on rowData react property)\r\n rowDataManualMode?: boolean\r\n\r\n // load data handler - called by grid always when it needs data\r\n onLoadData(callback: OnLoadDataCallback): void\r\n\r\n // automatic focus to first cell of selected row after loading of data is complete\r\n autofocus?: boolean\r\n\r\n // handler for keys pressed in data grid\r\n onKeyPressed?(event: KeyboardEvent): void\r\n\r\n // enter handler\r\n onEnter?: () => void;\r\n\r\n // ids of currently selected rows\r\n selectedIds?: (number | string)[]\r\n\r\n // rules for styling table rows\r\n rowStyleRules: RowStyleRule[]\r\n\r\n // default rules for styling table rows, used when configuration is reverted\r\n defaultRowStyleRules?: RowStyleRule[]\r\n\r\n // row styles change handler\r\n onChangeRowStyleRules?(rowStyleRules: RowStyleRule[]): void\r\n\r\n // extra buttons rendered before the search bar\r\n toolbar?: {\r\n // custom renderer for the whole toolbar panel\r\n renderToolbar?(originalSearchBar: ReactElement): ReactElement\r\n\r\n // extra buttons rendered in toolbar\r\n toolbarButtons?: ReactElement\r\n\r\n // hide records count\r\n hideRecordCount?: boolean\r\n }\r\n\r\n // row height change handler (height is changed from table configuration screen)\r\n onRowHeightChanged?(rowHeight: number): void\r\n\r\n // columns state change handler\r\n onColumnsChanged?(columnModel: ColumnState[], event: ColumnEvent): void\r\n\r\n // table configuration panel visibility change handler\r\n onTableConfigVisible?(visible: boolean): void\r\n\r\n // column configuration panel visibility change handler\r\n onColumnsConfigVisible?(visible: boolean): void\r\n\r\n // customized renderer for displaying loading progress\r\n loadingOverlayRenderer?(): ReactElement | null\r\n\r\n // customized renderer for displaying no records information\r\n noRecordsOverlayRenderer?(): ReactElement | null\r\n\r\n // customized renderer for displaying data over table\r\n tableOverlayRenderer?(): ReactElement | null\r\n\r\n showMilliseconds?: boolean\r\n\r\n defaultShowMilliseconds?: boolean\r\n\r\n onShowMilliseconds?(show: boolean, callback: () => void): void\r\n\r\n hideYear?: boolean\r\n\r\n defaultHideYear?: boolean\r\n\r\n onShowYear?(show: boolean, callback: () => void): void\r\n\r\n // export menu configuration\r\n exportMenu?: {\r\n // overides export menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom export menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // settings menu configuration\r\n settingsMenu?: {\r\n // overides setting menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom settings menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // context menu configuration (right click on the table rows)\r\n contextMenu?: {\r\n // overides context menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom context menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // override of ag-grid api with undefined styles\r\n getRowStyle?(params: any): GridRowStyle | undefined\r\n\r\n // hook reference to AgGridReact component\r\n gridRef?: React.RefObject<AgGridReact>\r\n}\r\n\r\ninterface DataGridState {\r\n pageIndex: number\r\n pageSize: number | null\r\n recordsCount?: number\r\n columnModel: ColumnState[]\r\n sortModel: SortItem[]\r\n tableConfigVisible: boolean\r\n columnsConfigVisible: boolean\r\n fontSize: number\r\n rowHeight: number\r\n // interval of record's indexes currently shown (first record has index 1)\r\n viewport: [number, number]\r\n contextMenuVisible: boolean\r\n firstLoadDone: boolean\r\n loading: boolean\r\n columnTransferHeight: number\r\n pageOrientation: PageOrientation\r\n exporting: boolean\r\n}\r\n\r\n\r\nexport default class DataGrid extends React.Component<DataGridProps, DataGridState> {\r\n public static defaultProps = {\r\n paging: {\r\n pageSize: 0,\r\n defaultPageSize: 0\r\n },\r\n rowStyleRules: tableDefaultRowStyleRules()\r\n };\r\n\r\n wildcardQuickFilter: WildcardQuickFilterEngine;\r\n columnTypes: { [key: string]: ColDef };\r\n gridApi?: GridApi;\r\n // deep copy of columns state before opening editation of columns and its order\r\n // used in \"cancel changes\" functionality\r\n columnModelBeforeEdit?: ColumnState[];\r\n indexToJump: number | null;\r\n columnToJump: Column | null;\r\n lastCellFocus?: CellFocusedEvent;\r\n lastNavigationEvent?: NavigationEventEnum;\r\n lastPaginationEvent?: PaginationChangedEvent | null = null;\r\n table_context: any;\r\n\r\n // @ts-ignore (was used in RangeSelector, not used now but probably will be fixed in future)\r\n private wrappingDiv: HTMLDivElement | null = null;\r\n\r\n constructor(props: Readonly<DataGridProps>) {\r\n super(props);\r\n this.state = {\r\n pageIndex: 0,\r\n pageSize: null,\r\n recordsCount: undefined,\r\n columnModel: [],\r\n sortModel: [],\r\n tableConfigVisible: !!this.props.tableConfigVisible,\r\n columnsConfigVisible: !!this.props.columnsConfigVisible,\r\n fontSize: GRID_DEFAULT_FONT_SIZE,\r\n rowHeight: calculateRowHeight(GRID_DEFAULT_FONT_SIZE, GRID_DEFAULT_ROW_HEIGHT_DELTA),\r\n viewport: [0, 0],\r\n contextMenuVisible: false,\r\n firstLoadDone: false,\r\n loading: false,\r\n columnTransferHeight: 500,\r\n pageOrientation: \"PORTRAIT\",\r\n exporting: false\r\n };\r\n this.indexToJump = null;\r\n this.columnToJump = null;\r\n\r\n this.onGridReady = this.onGridReady.bind(this);\r\n this.onPaginationChanged = this.onPaginationChanged.bind(this);\r\n this.onViewportChanged = this.onViewportChanged.bind(this);\r\n this.onCellContextMenu = this.onCellContextMenu.bind(this);\r\n this.onCellFocused = this.onCellFocused.bind(this);\r\n this.onCellMouseDown = this.onCellMouseDown.bind(this);\r\n this.setFocusedCellDebounced = debounce(this.setFocusedCellDebounced.bind(this), 200);\r\n this.noRecordsOverlayRenderer = this.noRecordsOverlayRenderer.bind(this);\r\n this.loadingOverlayRenderer = this.loadingOverlayRenderer.bind(this);\r\n this.changePagination = this.changePagination.bind(this);\r\n this.onColumnsChanged = this.onColumnsChanged.bind(this);\r\n this.onFilterModified = this.onFilterModified.bind(this);\r\n this.onFilterChanged = this.onFilterChanged.bind(this);\r\n this.onFilterConfirmed = this.onFilterConfirmed.bind(this);\r\n this.onSortChanged = this.onSortChanged.bind(this);\r\n this.showTableConfiguration = this.showTableConfiguration.bind(this);\r\n this.showColumnsConfig = this.showColumnsConfig.bind(this);\r\n this.navigateToNextCell = this.navigateToNextCell.bind(this);\r\n this.suppressKeyboardEvent = this.suppressKeyboardEvent.bind(this);\r\n this.onRowDataUpdated = this.onRowDataUpdated.bind(this);\r\n this._getRowStyle = this._getRowStyle.bind(this);\r\n this._getRowHeight = this._getRowHeight.bind(this);\r\n this._getCellStyle = this._getCellStyle.bind(this);\r\n this.textCustomComparator = this.textCustomComparator.bind(this);\r\n this.onPageOrientationChange = this.onPageOrientationChange.bind(this);\r\n this.onExport = this.onExport.bind(this);\r\n this.getExportContent = this.getExportContent.bind(this);\r\n this.getDefaultColDefinition = memoizeOne(this.getDefaultColDefinition.bind(this));\r\n this.getAdaptedColumnDefs = memoizeOne(this.getAdaptedColumnDefs.bind(this));\r\n this.getCustomComponents = memoizeOne(this.getCustomComponents.bind(this));\r\n\r\n this.table_context = {\r\n loadingOverlayRenderer: this.loadingOverlayRenderer,\r\n noRecordsOverlayRenderer: this.noRecordsOverlayRenderer,\r\n onFilterConfirmed: this.onFilterConfirmed,\r\n fontSize: this.state.fontSize,\r\n lineHeight: getLineHeight(this.state.rowHeight)\r\n };\r\n this.wildcardQuickFilter = new WildcardQuickFilterEngine();\r\n\r\n this.columnTypes = {\r\n \"localizedArrayColumn\": {\r\n cellRenderer: (params: ICellRendererParams): string => {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: function (params: ValueGetterParams): string | null {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: function (params: GetQuickFilterTextParams): string {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"numberColumn\": {\r\n cellRenderer: (params: ICellRendererParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined && value !== null) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: function (params: ValueGetterParams): string | null {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n getQuickFilterText: function (params: GetQuickFilterTextParams): string {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n },\r\n \"dateColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n if (value === D2000UnixTimeNullValue) {\r\n return \"---\";\r\n }\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span\r\n title={tooltipValue}>{unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear))}</span>\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"dateTimeColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value) {\r\n if (value === D2000UnixTimeNullValue) {\r\n return \"Null Time\";\r\n }\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span\r\n title={tooltipValue}>{unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds))}</span>;\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"fromNowDateTimeColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span title={tooltipValue}>{unixTimeToMoment(value).fromNow()}</span>;\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"escapedValueColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<any>(params);\r\n if (value !== undefined) {\r\n return <span style={{whiteSpace: \"pre\"}}\r\n title={escape(value)}>{typeof value === \"string\" ? escape(value.replace(/[\\r\\n]+/g, ' ')) : value}</span>;\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<any>(params);\r\n if (value !== undefined) {\r\n return typeof value === \"string\" ? value.replace(/[\\r\\n]+/g, ' ') : value;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n },\r\n \"textColumnFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"textColumnFilter\",\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"textColumnServerFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"textColumnFilter\",\r\n filterParams: {\r\n buttons: ['apply'],\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"customColumnServerFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"customColumnFilter\",\r\n filterParams: {\r\n buttons: ['apply'],\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"alignRight\": {}\r\n };\r\n }\r\n\r\n private static getCellValue<V>(props: any): V | undefined {\r\n if (props) {\r\n if (props.colDef.field && typeof props.getValue === \"function\") {\r\n return props.getValue(props.colDef.field);\r\n }\r\n if (props.data && props.colDef && props.colDef.field) {\r\n return at<V>(props.data, props.colDef.field)[0];\r\n }\r\n if (props.value !== undefined) {\r\n return props.value;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n textCustomComparator(filter: string, value: any, filterText: string) {\r\n const filterTextLowerCase = filterText.toLowerCase();\r\n const valueLowerCase = value.toString().toLowerCase();\r\n switch (filter) {\r\n case 'contains':\r\n if (filterTextLowerCase.indexOf(\"*\") >= 0 || filterTextLowerCase.indexOf(\"?\") >= 0) {\r\n const wildcardFilterRegExp = this.wildcardQuickFilter.getWildcardFilterRegExp(filterTextLowerCase);\r\n if (typeof wildcardFilterRegExp == \"string\") {\r\n return valueLowerCase.indexOf(filterTextLowerCase) >= 0;\r\n } else {\r\n return wildcardFilterRegExp.test(valueLowerCase);\r\n }\r\n } else {\r\n return valueLowerCase.indexOf(filterTextLowerCase) >= 0;\r\n }\r\n case 'notContains':\r\n return valueLowerCase.indexOf(filterTextLowerCase) === -1;\r\n case 'equals':\r\n return valueLowerCase === filterTextLowerCase;\r\n case 'notEqual':\r\n // noinspection EqualityComparisonWithCoercionJS\r\n return valueLowerCase != filterTextLowerCase;\r\n case 'startsWith':\r\n return valueLowerCase.indexOf(filterTextLowerCase) === 0;\r\n case 'endsWith':\r\n var index = valueLowerCase.lastIndexOf(filterTextLowerCase);\r\n return index >= 0 && index === (valueLowerCase.length - filterTextLowerCase.length);\r\n default:\r\n // should never happen\r\n console.warn('invalid filter type ' + filter);\r\n return false;\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: DataGridProps) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.props.filter && prevProps.filter && this.props.filter.columnSearchVisible !== prevProps.filter.columnSearchVisible) {\r\n setTimeout(() => {\r\n if (this.gridApi) {\r\n this.gridApi.refreshHeader();\r\n if (this.props.filter && !this.props.filter.columnSearchVisible) {\r\n this.gridApi.setFilterModel(null);\r\n this.gridApi.onFilterChanged();\r\n }\r\n }\r\n }, 0);\r\n }\r\n // functionality when all data are loaded to table\r\n if (this.props.rowData && this.props.rowData !== prevProps.rowData) {\r\n // keep filter model when data are changed\r\n if (this.props.filter && this.props.filter.getFilterModel) {\r\n this.gridApi.setFilterModel(this.props.filter.getFilterModel());\r\n this.gridApi.onFilterChanged();\r\n }\r\n // keep sorting model when data are changed\r\n this.setSortModel(this.state.sortModel);\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n this.gridApi.redrawRows();\r\n\r\n // keep selected rows when data are changed and rows are still present\r\n const selectedObjectsVisibleInGrid = this.props.rowData.filter((object) => {\r\n return this.props.selectedIds ? this.props.selectedIds.indexOf(object.id) >= 0 : false;\r\n });\r\n if (selectedObjectsVisibleInGrid.length > 0) {\r\n selectedObjectsVisibleInGrid.forEach((object) => {\r\n const rowNode = this.gridApi ? this.gridApi.getRowNode(object.id + \"\") : null;\r\n if (rowNode && !rowNode.isSelected()) {\r\n rowNode.setSelected(true, true);\r\n }\r\n });\r\n } else {\r\n this.gridApi.deselectAll();\r\n }\r\n }\r\n // functionality when chunks of data are dynamically loaded from server\r\n if (this.props.datasource && this.props.datasource !== prevProps.datasource) {\r\n // resets grid data\r\n this.gridApi.updateGridOptions({datasource: this.props.datasource});\r\n }\r\n this.updateRowHeight();\r\n }\r\n\r\n public setColumnState(columnModel: ColumnState[]) {\r\n const columnStates: ColumnState[] = [];\r\n if (columnModel) {\r\n columnModel.forEach((item: ColumnState) => {\r\n const columnState = {...item};\r\n item.sortIndex = undefined;\r\n item.sort = undefined\r\n columnStates.push(columnState);\r\n });\r\n }\r\n this.gridApi?.applyColumnState({state: columnStates, defaultState: {sort: null}, applyOrder: true});\r\n }\r\n\r\n public setSortModel(sortModel: SortItem[]) {\r\n const columnState: ColumnState[] = [];\r\n if (sortModel) {\r\n sortModel.forEach((item: any, index: number) => {\r\n columnState.push({\r\n colId: item.colId,\r\n sort: item.sort,\r\n sortIndex: index\r\n });\r\n });\r\n }\r\n this.gridApi?.applyColumnState({state: columnState, defaultState: {sort: null}, applyOrder: true});\r\n }\r\n\r\n public getSortModel(): SortItem[] {\r\n const columnState = this.gridApi?.getColumnState() ?? [];\r\n const filteredStates = columnState?.filter(item => item.sort != null);\r\n const indexes: { [colId: string]: number; } = {};\r\n filteredStates.forEach((state) => {\r\n if (state.colId) {\r\n indexes[state.colId] = state.sortIndex as number;\r\n }\r\n });\r\n const res = filteredStates.map(s => {\r\n return {colId: s.colId, sort: s.sort} as SortItem;\r\n });\r\n res.sort((a: any, b: any) => indexes[a.colId] - indexes[b.colId]);\r\n return res;\r\n\r\n }\r\n\r\n updateRowHeight() {\r\n let rowAndFontHeight = this.calculateRowAndFontHeight(this.props.rowStyleRules);\r\n if (rowAndFontHeight.rowHeight !== this.state.rowHeight) {\r\n this.changeRowHeight(rowAndFontHeight.fontSize, rowAndFontHeight.rowHeight);\r\n }\r\n if (rowAndFontHeight.fontSize !== this.state.fontSize) {\r\n this.setState({fontSize: rowAndFontHeight.fontSize});\r\n }\r\n }\r\n\r\n calculateRowAndFontHeight(rowStyleRules?: RowStyleRule[]): { fontSize: number, rowHeight: number } {\r\n let rowHeightDelta = GRID_DEFAULT_ROW_HEIGHT_DELTA;\r\n let fontSize = GRID_DEFAULT_FONT_SIZE;\r\n let rowHeight = calculateRowHeight(fontSize, rowHeightDelta);\r\n if (rowStyleRules) {\r\n for (let i = 0; i < rowStyleRules.length; i++) {\r\n if (rowStyleRules[i].key === \"table-font-size\") {\r\n const currentFontSize = rowStyleRules[i].style.fontSize;\r\n fontSize = getFontSize(currentFontSize);\r\n rowHeight = calculateRowHeight(currentFontSize, rowHeightDelta);\r\n }\r\n if (rowStyleRules[i].key === \"table-line-indentation\") {\r\n const currentRowHeightDelta = rowStyleRules[i].style.rowHeightDelta;\r\n rowHeightDelta = getRowHeightDelta(currentRowHeightDelta);\r\n rowHeight = calculateRowHeight(fontSize, currentRowHeightDelta);\r\n }\r\n }\r\n }\r\n return {rowHeight: rowHeight, fontSize: fontSize};\r\n }\r\n\r\n /**\r\n * Handling setting table gridEditor\r\n */\r\n static getDerivedStateFromProps(props: DataGridProps, state: DataGridState) {\r\n const newState: Partial<DataGridState> = {};\r\n if (props.tableConfigVisible === true || props.tableConfigVisible === false) {\r\n if (props.tableConfigVisible !== state.tableConfigVisible) {\r\n newState.tableConfigVisible = props.tableConfigVisible;\r\n }\r\n }\r\n return newState;\r\n }\r\n\r\n onGridReady(gridReadyEvent: GridReadyEvent): void {\r\n const gridApi = gridReadyEvent.api;\r\n if (!this.gridApi || this.gridApi !== gridApi) {\r\n this.gridApi = gridApi;\r\n if (this.props.onGridReady) {\r\n this.props.onGridReady(gridReadyEvent);\r\n }\r\n this.setState({\r\n sortModel: this.getSortModel(),\r\n columnModel: this.gridApi.getColumnState(),\r\n });\r\n this.updateRowHeight();\r\n }\r\n // fixing some cases when after onGridReady callback no onPaginationChanged callback is called\r\n // and therefore no initial data loading (loadData()) occurs\r\n setTimeout(() => {\r\n if (!!this.lastPaginationEvent) {\r\n this.onPaginationChanged(this.lastPaginationEvent);\r\n }\r\n });\r\n }\r\n\r\n onPaginationChanged(event: PaginationChangedEvent) {\r\n if (this.gridApi) {\r\n const currentPage = this.gridApi.paginationGetCurrentPage();\r\n const currentPageSize = this.gridApi.paginationGetPageSize();\r\n let recordsCount = this.props.paging.pageSize >= 0 ? (this.gridApi.paginationIsLastPageFound() ? this.gridApi.paginationGetRowCount() : 0) : this.gridApi.getDisplayedRowCount();\r\n // process only when onGridReady passed\r\n if (this.state.pageSize !== currentPageSize) {\r\n if (this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(currentPageSize, this.props.paging.pageSize);\r\n }\r\n if (!this.state.firstLoadDone) {\r\n this.loadData();\r\n this.setState({firstLoadDone: true});\r\n }\r\n }\r\n this.setState({pageSize: currentPageSize, recordsCount: recordsCount, pageIndex: currentPage});\r\n if (this.indexToJump !== null && this.columnToJump !== null) {\r\n this.gridApi.setFocusedCell(this.indexToJump, this.columnToJump);\r\n this.indexToJump = null;\r\n }\r\n this.lastPaginationEvent = null;\r\n } else {\r\n this.lastPaginationEvent = event;\r\n }\r\n if (this.props.onPaginationChanged) {\r\n this.props.onPaginationChanged(event);\r\n }\r\n }\r\n\r\n onViewportChanged(event: ViewportChangedEvent) {\r\n const dataGridEvent = event as DataGridViewportChangedEvent;\r\n // calculation of the flag that last record is shown\r\n const rowsScrollingDelta = this.state.viewport[1] ? event.lastRow + 1 - this.state.viewport[1] : event.lastRow + 1;\r\n dataGridEvent.rowsScrollingDelta = rowsScrollingDelta;\r\n this.setState({viewport: [event.firstRow + 1, event.lastRow + 1]});\r\n if (this.props.onViewportChanged) {\r\n this.props.onViewportChanged(event);\r\n }\r\n }\r\n\r\n changePagination(pageSize: number): void {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n const gridApiWithPrivateAccess = this.gridApi as GridApiWithPrivateAccess;\r\n if (pageSize > 0) {\r\n this.gridApi.updateGridOptions({\r\n pagination: true,\r\n paginationAutoPageSize: false,\r\n paginationPageSize: pageSize\r\n });\r\n if (this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(pageSize, pageSize);\r\n }\r\n } else if (pageSize === 0) {\r\n this.gridApi.updateGridOptions({pagination: true, paginationAutoPageSize: true});\r\n // handling AG-Grid bug caused by different previous pageSize state\r\n const rowHeight = (gridApiWithPrivateAccess.beans.gos as any).getRowHeightAsNumber?.() ?? 1;\r\n // @ts-ignore\r\n const bodyHeight = (gridApiWithPrivateAccess.beans.ctrlsService as any).params.center.viewportSizeFeature.getBodyHeight();\r\n let availablePageSize = 1000;\r\n if (bodyHeight > 0) {\r\n availablePageSize = Math.floor(bodyHeight / rowHeight);\r\n }\r\n if (this.props.paging.pageSize > availablePageSize) {\r\n this.gridApi.updateGridOptions({paginationPageSize: 1});\r\n } else {\r\n // special hack to remove setting page size\r\n this.gridApi.updateGridOptions({paginationPageSize: null as unknown as number});\r\n }\r\n if (this.props.paging && this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(this.state.pageSize, 0);\r\n }\r\n } else {\r\n this.gridApi.updateGridOptions({pagination: false, paginationAutoPageSize: false});\r\n if (this.props.paging && this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(this.state.pageSize, -1);\r\n }\r\n }\r\n }\r\n\r\n showMilliseconds(showMilis: boolean) {\r\n this.props.onShowMilliseconds?.(showMilis, () => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n });\r\n }\r\n\r\n showYear(showYear: boolean) {\r\n this.props.onShowYear?.(showYear, () => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n });\r\n }\r\n\r\n changeRowHeight(fontSize: number, rowHeight: number) {\r\n this.setState({rowHeight: rowHeight}, () => {\r\n if (this.gridApi) {\r\n if (this.props.headerHeight === undefined) {\r\n this.gridApi.updateGridOptions({headerHeight: calculateRowHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2)});\r\n }\r\n if (this.props.floatingFiltersHeight === undefined) {\r\n this.gridApi.updateGridOptions({floatingFiltersHeight: calculateRowHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2)});\r\n }\r\n this.gridApi.updateGridOptions({rowHeight: rowHeight})\r\n this.gridApi.resetRowHeights();\r\n this.gridApi.refreshHeader();\r\n this.gridApi.redrawRows();\r\n if (this.props.rowModelType === \"infinite\" && this.props.datasource) {\r\n (this.gridApi.getModel() as any).rowHeight = rowHeight;\r\n // redraws all server side loaded table data\r\n this.gridApi.updateGridOptions({datasource: this.props.datasource});\r\n }\r\n }\r\n if (this.props.onRowHeightChanged) {\r\n this.props.onRowHeightChanged(rowHeight);\r\n }\r\n });\r\n }\r\n\r\n onGoToPage(pageIndex: number) {\r\n if (this.gridApi) {\r\n this.gridApi.paginationGoToPage(pageIndex);\r\n }\r\n }\r\n\r\n loadData(callback?: () => void) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n this.setState({loading: true});\r\n if (!this.props.loadingOverlayRenderer) {\r\n this.gridApi.setGridOption(\"loading\", true);\r\n }\r\n this.props.onLoadData((totalRecords) => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n this.gridApi.setGridOption(\"loading\", false);\r\n this.gridApi.hideOverlay();\r\n this.setState({loading: false});\r\n if (callback) {\r\n callback();\r\n }\r\n if (totalRecords === 0) {\r\n setTimeout(() => {\r\n if (!this.isActive()) {\r\n return;\r\n }\r\n this.gridApi?.showNoRowsOverlay();\r\n }, 400);\r\n }\r\n if (this.props.autofocus) {\r\n this.focus();\r\n }\r\n });\r\n }\r\n\r\n public focus() {\r\n setTimeout(() => {\r\n if (!this.isActive()) {\r\n return;\r\n }\r\n const columnModel = this.gridApi?.getColumnState();\r\n let columnIdToFocus = columnModel?.[0]?.colId || \"name\";\r\n const selectedNodes = this.gridApi?.getSelectedNodes();\r\n const selectedRowIndex: number = (selectedNodes && selectedNodes.length > 0 && selectedNodes[selectedNodes.length - 1].rowIndex) || 0;\r\n this.gridApi?.setFocusedCell(selectedRowIndex, columnIdToFocus);\r\n }, 200);\r\n }\r\n\r\n isActive(): boolean {\r\n return !!this.gridApi && !this.gridApi.isDestroyed();\r\n }\r\n\r\n onColumnsChanged(event: ColumnEvent) {\r\n const columnModel = event.api.getColumnState();\r\n if (this.props.onColumnsChanged) {\r\n this.props.onColumnsChanged(columnModel, event);\r\n }\r\n this.setState({columnModel: columnModel});\r\n }\r\n\r\n setColumnSearchVisible(visible: boolean) {\r\n if (this.gridApi && this.props.filter && this.props.filter.getFilterModel) {\r\n this.gridApi.setFilterModel(this.props.filter.getFilterModel());\r\n }\r\n if (this.props.filter && this.props.filter.onColumnSearchVisible) {\r\n this.props.filter.onColumnSearchVisible(visible);\r\n }\r\n }\r\n\r\n private onFilterModified(event: FilterModifiedEvent) {\r\n if (this.props.filter && this.props.filter.onFilterModified) {\r\n this.props.filter.onFilterModified(event);\r\n }\r\n }\r\n\r\n private onFilterChanged(event: FilterChangedEvent) {\r\n if (this.props.filter && this.props.filter.onFilterChanged) {\r\n this.props.filter.onFilterChanged(event);\r\n }\r\n }\r\n\r\n private onFilterConfirmed() {\r\n if (this.props.filter && this.props.filter.onFilterConfirmed) {\r\n this.props.filter.onFilterConfirmed();\r\n }\r\n }\r\n\r\n private onSortChanged(event: SortChangedEvent) {\r\n if (this.props.onSortChanged && this.gridApi) {\r\n const currentSortModel = this.getSortModel() as SortItem[];\r\n if (!isEqual(this.state.sortModel, currentSortModel)) {\r\n // propagate only changes to sorting\r\n this.setState({sortModel: currentSortModel}, () => {\r\n if (this.props.onSortChanged) {\r\n this.props.onSortChanged(event);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n showTableConfiguration(show: boolean) {\r\n if (this.props.onTableConfigVisible) {\r\n this.props.onTableConfigVisible(show);\r\n }\r\n this.setState({tableConfigVisible: show}, () => {\r\n if (this.gridApi && !this.state.tableConfigVisible) {\r\n // redrawing rows after closing table configuration panel, probably not required any more,\r\n // because config panel and table is shown simultaneously\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n }\r\n });\r\n }\r\n\r\n showColumnsConfig(show: boolean) {\r\n if (this.props.onColumnsConfigVisible) {\r\n this.props.onColumnsConfigVisible(show);\r\n }\r\n this.columnModelBeforeEdit = cloneDeep(this.state.columnModel);\r\n this.setState({columnsConfigVisible: show});\r\n }\r\n\r\n private navigateToNextCell(params: NavigateToNextCellParams): CellPosition {\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n var suggestedNextCell = params.nextCellPosition;\r\n if (!this.gridApi) {\r\n return suggestedNextCell ?? params.previousCellPosition;\r\n }\r\n const pageIndex = this.gridApi.paginationGetCurrentPage();\r\n const totalPages = this.gridApi.paginationGetTotalPages();\r\n var previousCell = params.previousCellPosition;\r\n switch (params.event?.code) {\r\n case Key.ArrowDown:\r\n if ((previousCell.rowIndex + 1) >= this.gridApi.getModel().getRowCount()) {\r\n if (pageIndex < (totalPages - 1)) {\r\n this.onGoToPage(pageIndex + 1);\r\n return {\r\n rowIndex: 0,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n } else {\r\n return {\r\n rowIndex: previousCell.rowIndex,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n }\r\n\r\n }\r\n break;\r\n case Key.ArrowUp:\r\n if ((previousCell.rowIndex - 1) < 0) {\r\n if (pageIndex > 0) {\r\n this.onGoToPage(pageIndex - 1);\r\n return {\r\n rowIndex: this.gridApi.getModel().getRowCount() - 1,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n } else {\r\n return {\r\n rowIndex: previousCell.rowIndex,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n return suggestedNextCell ?? params.previousCellPosition;\r\n }\r\n\r\n private suppressKeyboardEvent(params: SuppressKeyboardEventParams): boolean {\r\n if (!this.gridApi || params.event.type === \"keypress\") {\r\n return false;\r\n }\r\n const pageIndex = this.gridApi.paginationGetCurrentPage();\r\n const totalPages = this.gridApi.paginationGetTotalPages();\r\n switch (params.event.code) {\r\n case Key.ArrowDown:\r\n case Key.ArrowUp:\r\n case Key.ArrowLeft:\r\n case Key.ArrowRight:\r\n if (params.editing && params.event.altKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n let indexToJump: number;\r\n let columnToJump: Column;\r\n if (params.event.code === Key.ArrowDown) {\r\n indexToJump = focusedCell.rowIndex + 1;\r\n columnToJump = focusedCell.column;\r\n if (indexToJump >= this.gridApi.getModel().getRowCount()) {\r\n if (pageIndex < (totalPages - 1)) {\r\n this.onGoToPage(pageIndex + 1);\r\n indexToJump = 0\r\n } else {\r\n indexToJump = focusedCell.rowIndex;\r\n }\r\n }\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n this.indexToJump = indexToJump;\r\n this.columnToJump = columnToJump;\r\n setTimeout(() => {\r\n this.gridApi?.startEditingCell({\r\n rowIndex: indexToJump,\r\n colKey: columnToJump,\r\n key: Key.Enter\r\n });\r\n }, 0);\r\n return true;\r\n } else if (params.event.code === Key.ArrowUp) {\r\n indexToJump = focusedCell.rowIndex - 1;\r\n columnToJump = focusedCell.column;\r\n if (indexToJump < 0) {\r\n if (pageIndex > 0) {\r\n this.onGoToPage(pageIndex - 1);\r\n indexToJump = this.gridApi.getModel().getRowCount() - 1;\r\n } else {\r\n indexToJump = focusedCell.rowIndex;\r\n }\r\n }\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n this.indexToJump = indexToJump;\r\n this.columnToJump = columnToJump;\r\n setTimeout(() => {\r\n this.gridApi?.startEditingCell({\r\n rowIndex: indexToJump,\r\n colKey: columnToJump,\r\n key: Key.Enter\r\n });\r\n }, 0);\r\n return true;\r\n } else if (params.event.code === Key.ArrowLeft) {\r\n this.gridApi.tabToPreviousCell();\r\n break;\r\n } else /*Key.ArrowRight*/ {\r\n this.gridApi.tabToNextCell();\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n case Key.PageDown:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex < (totalPages - 1)) {\r\n this.gridApi.paginationGoToNextPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = Math.min(focusedCell.rowIndex + this.gridApi.paginationGetPageSize(), this.gridApi.paginationGetRowCount());\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.PageUp:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex > 0) {\r\n this.gridApi.paginationGoToPreviousPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = Math.max(focusedCell.rowIndex - this.gridApi.paginationGetPageSize(), 0);\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.End:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex < (totalPages - 1)) {\r\n this.gridApi.paginationGoToLastPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = this.gridApi.paginationGetRowCount() - 1;\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.Home:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex > 0) {\r\n this.gridApi.paginationGoToFirstPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = 0;\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case \"KeyA\":\r\n if (params.event.ctrlKey && !params.editing) {\r\n var firstRow = this.gridApi.getFirstDisplayedRowIndex();\r\n var lastRow = this.gridApi.getLastDisplayedRowIndex();\r\n this.gridApi.deselectAll();\r\n if (this.props.rowModelType === \"infinite\") {\r\n for (let i = firstRow; i <= lastRow; i++) {\r\n this.gridApi.getDisplayedRowAtIndex(i)?.setSelected(true);\r\n }\r\n } else {\r\n this.gridApi.forEachNodeAfterFilter(function (node, index) {\r\n if (index >= firstRow && index <= lastRow) {\r\n node.setSelected(true);\r\n }\r\n });\r\n }\r\n }\r\n break;\r\n case \"KeyI\":\r\n if (params.event.ctrlKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n const column = this.gridApi?.getColumn(\"objectId\") ?? this.gridApi?.getColumn(\"id\");\r\n if (focusedCell && column) {\r\n const displayedRowAtIndex = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex) {\r\n ClipboardUtils.copyToClipboard(this.getValue(column, displayedRowAtIndex));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case \"KeyB\":\r\n if (params.event.ctrlKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n const column = this.gridApi?.getColumn(\"objectName\") ?? this.gridApi?.getColumn(\"name\");\r\n if (focusedCell && column) {\r\n const displayedRowAtIndex1 = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex1) {\r\n ClipboardUtils.copyToClipboard(this.getValue(column, displayedRowAtIndex1));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case \"KeyC\":\r\n if (params.event.ctrlKey && !params.editing) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n const displayedRowAtIndex2 = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex2) {\r\n ClipboardUtils.copyToClipboard(this.getValue(focusedCell.column, displayedRowAtIndex2, true));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case Key.Enter:\r\n this.props.onEnter?.();\r\n break;\r\n }\r\n this.props.onKeyPressed?.(params.event);\r\n return false;\r\n }\r\n\r\n getValue(column: Column, row: IRowNode, doNotReplaceNewline?: boolean): string {\r\n let formattedValue = this.gridApi?.getCellValue({rowNode: row, colKey: column});\r\n if (formattedValue && typeof formattedValue === \"string\" && formattedValue.indexOf(EXPORT_SEPARATOR) > 0 && !doNotReplaceNewline) {\r\n formattedValue = formattedValue.replace(/[\\n\\r]+/, ' ');\r\n }\r\n const valueFormatter = column.getColDef().valueFormatter;\r\n if (valueFormatter) {\r\n const params: ValueFormatterParams = {\r\n data: row.data,\r\n node: row,\r\n column: column,\r\n colDef: column.getColDef(),\r\n api: this.gridApi as GridApi,\r\n context: this.gridApi?.getGridOption('context'),\r\n value: formattedValue\r\n };\r\n if (typeof valueFormatter === 'function') {\r\n formattedValue = valueFormatter?.(params);\r\n } else if (typeof valueFormatter === 'string') {\r\n formattedValue = at(row.data, valueFormatter)[0];\r\n }\r\n }\r\n return formattedValue;\r\n }\r\n\r\n async getExportContent(progressPopup: ProgressPopup | null, props: ContextMenuProps): Promise<string[][]> {\r\n if (!this.gridApi) {\r\n return [];\r\n }\r\n const model: IRowModel = this.gridApi.getModel();\r\n const tableContent: string[][] = [];\r\n const columns = this.gridApi.getAllDisplayedColumns().map((column: Column) => {\r\n const columnTypes = column.getColDef().type;\r\n return {\r\n column: column,\r\n displayName: column.getColDef().headerName,\r\n isDateField: columnTypes && columnTypes.indexOf(\"dateColumn\") >= 0,\r\n isDateTimeField: columnTypes && columnTypes.indexOf(\"dateTimeColumn\") >= 0\r\n };\r\n });\r\n if (columns.length === 0) {\r\n return tableContent;\r\n }\r\n tableContent.push(columns.map((column) => column.displayName ?? \"\"));\r\n\r\n let rowCount: number;\r\n let tableNodes: IRowNode[] = [];\r\n if (model.getType() === \"clientSide\") {\r\n if (props.onlySelectedNodes) {\r\n rowCount = 0;\r\n this.gridApi.forEachNodeAfterFilterAndSort((node) => {\r\n if (node.isSelected()) {\r\n tableNodes.push(node);\r\n rowCount++;\r\n }\r\n });\r\n } else {\r\n rowCount = model.getRowCount();\r\n this.gridApi.forEachNodeAfterFilterAndSort((node) => {\r\n tableNodes.push(node);\r\n });\r\n }\r\n } else {\r\n if (props.onlySelectedNodes) {\r\n const selectedNodes = this.gridApi.getSelectedNodes();\r\n rowCount = selectedNodes.length;\r\n selectedNodes.forEach((node) => {\r\n tableNodes.push(node);\r\n });\r\n tableNodes.sort((a, b) => (a.rowIndex ?? 0) > (b.rowIndex ?? 0) ? 1 : (a.rowIndex === b.rowIndex) ? 0 : -1);\r\n } else {\r\n const virtualRowCount = model.getRowCount();\r\n rowCount = virtualRowCount ? virtualRowCount : 0;\r\n }\r\n }\r\n progressPopup?.setRecordCount(rowCount);\r\n\r\n let percentStep = Math.floor(rowCount / 100);\r\n if (percentStep < 100) {\r\n percentStep = 100;\r\n }\r\n\r\n if (model.getType() === \"clientSide\" || props.onlySelectedNodes) {\r\n for (let index = 0; index < tableNodes.length; index++) {\r\n const record: string[] = [];\r\n columns.forEach((column) => {\r\n let value = this.getValue(column.column, tableNodes[index]);\r\n record.push(value);\r\n });\r\n tableContent.push(record);\r\n if (index % percentStep === 0) {\r\n progressPopup?.update(Math.floor(index / rowCount * 100) - 1);\r\n await TimeUtils.sleep(100);\r\n }\r\n }\r\n } else {\r\n for (let index = 0; index < rowCount; index++) {\r\n let row: RowNode | undefined = undefined;\r\n let record: any[] = [];\r\n do {\r\n record = [];\r\n do {\r\n row = model.getRow(index);\r\n if (!row || !row.data) {\r\n await TimeUtils.sleep(100);\r\n }\r\n } while (!row || !row.data);\r\n columns.forEach((column) => {\r\n record.push(this.getValue(column.column, row as RowNode));\r\n });\r\n if (record.filter((cell) => !!cell).length === 0) {\r\n await TimeUtils.sleep(100);\r\n }\r\n } while (record.filter((cell) => !!cell).length === 0);\r\n tableContent.push(record);\r\n if (index % percentStep === 0) {\r\n // noinspection ES6MissingAwait\r\n progressPopup?.update(Math.floor(index / rowCount * 100) - 1);\r\n await TimeUtils.sleep(100);\r\n }\r\n }\r\n }\r\n // noinspection ES6MissingAwait\r\n progressPopup?.update(99);\r\n await TimeUtils.sleep(300);\r\n return tableContent;\r\n }\r\n\r\n onCellFocused(event: CellFocusedEvent) {\r\n const row: IRowNode | undefined = event.rowIndex !== null ? this.gridApi?.getDisplayedRowAtIndex(event.rowIndex) : undefined;\r\n if (row) {\r\n if (this.lastNavigationEvent === NavigationEventEnum.KEYBOARD && KeyboardUtils.isKeyPressed(Key.Shift) && this.lastCellFocus && this.lastCellFocus.rowIndex !== event.rowIndex) {\r\n // focusing new row with SHIFT key pressed\r\n if (!row.isSelected()) {\r\n // add to selection\r\n row.setSelected(true, false);\r\n } else if (this.lastCellFocus?.rowIndex !== null) {\r\n const lastFocusedRow: IRowNode | undefined = this.gridApi?.getDisplayedRowAtIndex(this.lastCellFocus.rowIndex);\r\n if (lastFocusedRow?.isSelected()) {\r\n lastFocusedRow.setSelected(false, false);\r\n }\r\n }\r\n } else if (!row.isSelected() && !KeyboardUtils.isKeyPressed(Key.Control) && !KeyboardUtils.isKeyPressed(Key.Shift)) {\r\n row.setSelected(true, true);\r\n }\r\n }\r\n this.props.onCellFocused?.(event);\r\n this.lastCellFocus = event;\r\n }\r\n\r\n onCellMouseDown(e: CellMouseDownEvent) {\r\n this.lastNavigationEvent = NavigationEventEnum.MOUSE;\r\n // always focus clicked cell (also when using shift key)\r\n if (e.rowIndex !== null) {\r\n this.setFocusedCellDebounced(e.rowIndex, e.column, e.rowPinned !== null ? e.rowPinned : undefined);\r\n }\r\n this.props.onCellMouseDown?.(e);\r\n }\r\n\r\n setFocusedCellDebounced(rowIndex: number, column: string | Column, rowPinned: RowPinnedType) {\r\n this.gridApi?.setFocusedCell(rowIndex, column, rowPinned);\r\n }\r\n\r\n private onCellContextMenu(event: CellContextMenuEvent) {\r\n this.setState({contextMenuVisible: !!event});\r\n if (event.node) {\r\n if (!event.node.isSelected()) {\r\n event.node.setSelected(true, true);\r\n }\r\n }\r\n }\r\n\r\n private loadingOverlayRenderer(): ReactElement {\r\n if (this.props.loadingOverlayRenderer) {\r\n const loadingOverlay = this.props.loadingOverlayRenderer();\r\n if (loadingOverlay) {\r\n return loadingOverlay;\r\n }\r\n }\r\n return <div><LoadingOutlined style={{fontSize: 40, color: \"#1890ff\"}}/></div>;\r\n }\r\n\r\n private noRecordsOverlayRenderer(): ReactElement {\r\n if (this.props.noRecordsOverlayRenderer) {\r\n const noRecordsOverlay = this.props.noRecordsOverlayRenderer();\r\n if (noRecordsOverlay) {\r\n return noRecordsOverlay;\r\n }\r\n }\r\n return (\r\n <Empty description={i18n(\"No records found.\")} imageStyle={{height: \"8vh\"}}>\r\n <Button type=\"primary\" onClick={() => {\r\n if (this.props.search && this.props.search.onSearch) {\r\n this.props.search.onSearch();\r\n }\r\n }}>\r\n <SearchOutlined/> {i18n(\"Search\")}\r\n </Button>\r\n </Empty>\r\n );\r\n }\r\n\r\n /** Set new data to the grid */\r\n public setRowData(dataArray: any[]): void {\r\n this.gridApi?.updateGridOptions({rowData: dataArray});\r\n }\r\n\r\n private onRowDataUpdated(event: RowDataUpdatedEvent) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n const currentPage = this.gridApi.paginationGetCurrentPage();\r\n const recordsCount = this.props.paging.pageSize >= 0 ? (this.gridApi.paginationIsLastPageFound() ? this.gridApi.paginationGetRowCount() : 0) : this.gridApi.getDisplayedRowCount();\r\n this.setState({recordsCount: recordsCount, pageIndex: currentPage});\r\n if (this.props.onRowDataUpdated) {\r\n this.props.onRowDataUpdated(event);\r\n }\r\n }\r\n\r\n private static EMPTY_STYLE: RowStyle = {}\r\n\r\n _getRowStyle(params: RowClassParams): RowStyle {\r\n const rowStyleRules = this.props.rowStyleRules;\r\n if (rowStyleRules) {\r\n const style: any = {};\r\n rowStyleRules.forEach((rowStyleRule) => {\r\n if (rowStyleRule.expression) {\r\n if (!rowStyleRuleCompiledExpressions[rowStyleRule.expression]) {\r\n rowStyleRuleCompiledExpressions[rowStyleRule.expression] = compileExpression(rowStyleRule.expression);\r\n }\r\n if (rowStyleRuleCompiledExpressions[rowStyleRule.expression](params.node.data)) {\r\n Object.assign(style, rowStyleRule.style);\r\n }\r\n } else {\r\n Object.assign(style, rowStyleRule.style);\r\n }\r\n });\r\n if (!style.color) {\r\n style.color = null;\r\n } else if (typeof style.color === \"object\") {\r\n style.color = `rgba(${style.color.r},${style.color.g},${style.color.b},${style.color.a})`;\r\n }\r\n if (!style.backgroundColor) {\r\n style.backgroundColor = \"inherit\";\r\n } else if (typeof style.backgroundColor === \"object\") {\r\n style.backgroundColor = `rgba(${style.backgroundColor.r},${style.backgroundColor.g},${style.backgroundColor.b},${style.backgroundColor.a})`;\r\n }\r\n if (!style.fontWeight) {\r\n style.fontWeight = \"inherit\";\r\n }\r\n const fontSize = style.fontSize;\r\n if (style.fontSize) {\r\n style.fontSize = style.fontSize + \"px\";\r\n } else {\r\n style.fontSize = \"inherit\";\r\n }\r\n if (style.rowHeightDelta) {\r\n const lineHeight = calculateLineHeight(fontSize, style.rowHeightDelta);\r\n if (style.rowHeightDelta) {\r\n delete style.rowHeightDelta;\r\n }\r\n style.lineHeight = lineHeight + \"px\";\r\n } else {\r\n const lineHeight = calculateLineHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA);\r\n style.lineHeight = lineHeight + \"px\";\r\n }\r\n if (this.props.getRowStyle) {\r\n const rowStyle = this.props.getRowStyle(params);\r\n if (rowStyle) {\r\n return Object.assign(style, rowStyle) as RowStyle;\r\n }\r\n }\r\n return style as RowStyle;\r\n }\r\n return DataGrid.EMPTY_STYLE;\r\n }\r\n\r\n _getRowHeight(): number {\r\n return this.state.rowHeight;\r\n }\r\n\r\n _getCellStyle(params: { colDef: ColDef }) {\r\n const fontSize = this.state.fontSize;\r\n const cellStyles: { [key: string]: any } = {\"fontSize\": fontSize + \"px\"};\r\n if (params.colDef.type && params.colDef.type.indexOf(\"alignRight\") >= 0) {\r\n cellStyles[\"textAlign\"] = \"right\";\r\n }\r\n if (params.colDef.cellRendererParams?.originalCellStyle) {\r\n const originalCellStylesOrHandler = params.colDef.cellRendererParams.originalCellStyle as {} | ((params: any) => {});\r\n if (typeof originalCellStylesOrHandler === \"object\") {\r\n Object.assign(cellStyles, originalCellStylesOrHandler);\r\n } else if (typeof originalCellStylesOrHandler === \"function\") {\r\n const originalCellStyles = originalCellStylesOrHandler(params);\r\n if (originalCellStyles) {\r\n Object.assign(cellStyles, originalCellStyles);\r\n }\r\n }\r\n }\r\n return cellStyles;\r\n }\r\n\r\n getDefaultColDefinition(colDef: ColDef | undefined): ColDef {\r\n if (colDef) {\r\n return {...colDef, suppressKeyboardEvent: this.suppressKeyboardEvent} as ColDef;\r\n } else {\r\n return {suppressKeyboardEvent: this.suppressKeyboardEvent} as ColDef;\r\n }\r\n }\r\n\r\n private getCustomComponents(components: any) {\r\n let customComponents = gridFrameworkComponents;\r\n if (components) {\r\n customComponents = Object.assign(gridFrameworkComponents, components);\r\n }\r\n return customComponents;\r\n }\r\n\r\n private onPageOrientationChange(pageOrientation: PageOrientation) {\r\n this.setState({pageOrientation: pageOrientation});\r\n }\r\n\r\n private onExport(start: boolean) {\r\n this.setState({exporting: start});\r\n }\r\n\r\n renderNavigationPanel(): ReactElement {\r\n return (\r\n <React.Fragment>\r\n {this.props.toolbar && this.props.toolbar.renderToolbar ? this.props.toolbar.renderToolbar(this.renderToolBarWithSearch()) : this.renderToolBarWithSearch()}\r\n {this.props.paging.pageSize >= 0 &&\r\n <DataGridPagination\r\n disabled={this.state.loading}\r\n current={this.state.pageIndex ? this.state.pageIndex + 1 : 1}\r\n pageSize={this.state.pageSize ? this.state.pageSize : 20}\r\n total={this.state.recordsCount ?? 1}\r\n onGoToPage={page => {\r\n this.onGoToPage(page - 1);\r\n }}\r\n />}\r\n {this.props.paging.pageSize < 0 && this.state.recordsCount && !this.props.toolbar?.hideRecordCount ?\r\n <span style={{\r\n flex: \"0 1 auto\",\r\n textAlign: \"right\",\r\n whiteSpace: \"nowrap\",\r\n margin: \"0 12px\",\r\n lineHeight: \"32px\",\r\n }}>{`${this.state.viewport[0]}-${this.state.viewport[1]} ${i18n('of')} ${this.state.recordsCount}`}</span>\r\n : undefined}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n renderToolBarWithSearch(): ReactElement {\r\n return (\r\n <Space.Compact key=\"filter-panel\"\r\n className=\"datagrid-autocomplete-input-group\"\r\n style={{whiteSpace: \"nowrap\", flexGrow: 1, display: \"flex\"}}>\r\n {this.props.toolbar?.toolbarButtons}\r\n <Dropdown trigger={[\"click\"]}\r\n menu={getContextMenu({\r\n showMilliseconds: !!this.props.showMilliseconds,\r\n showYear: !this.props.hideYear,\r\n renderer: this.props.exportMenu?.renderer,\r\n onClick: this.props.exportMenu?.onClick,\r\n getExportContent: this.getExportContent,\r\n pageOrientation: this.state.pageOrientation,\r\n exporting: this.state.exporting,\r\n onPageOrientationChange: this.onPageOrientationChange,\r\n onExport: this.onExport\r\n })}\r\n disabled={this.state.loading}>\r\n <Button title={i18n(\"Export\")}>\r\n <DownloadOutlined/>\r\n </Button>\r\n </Dropdown>\r\n\r\n <Dropdown trigger={[\"click\"]}\r\n menu={this.getSettingsMenu()}>\r\n <Button\r\n title={i18n(\"Extended table features\")}\r\n disabled={this.state.loading}>\r\n <TableOutlined/>\r\n </Button>\r\n </Dropdown>\r\n {!this.props.search?.hidden && !this.props.search?.searchRenderer && <AutoCompleteInput\r\n style={{minWidth: 100, flexGrow: 1}}\r\n placeholder={this.props.search ? this.props.search.placeholder : undefined}\r\n stringFormatter={this.props.search ? this.props.search.stringFormatter : undefined}\r\n value={this.props.search ? this.props.search.searchString : undefined}\r\n options={this.props.search ? this.props.search.searchHistory : undefined}\r\n onChange={this.props.search ? this.props.search.onChange : undefined}\r\n onSearch={this.props.search ? this.props.search.onSearch : undefined}\r\n disabled={this.state.loading || (this.props.filter && this.props.filter.columnSearchVisible)}\r\n />}\r\n {this.props.search?.searchRenderer?.()}\r\n {!this.props.search?.searchButtonHidden &&\r\n <Button title={this.props.search?.hidden ? i18n(\"Refresh\") : i18n(\"Search\")}\r\n className={\"search-btn \" + (this.props.search && this.props.search.searchButtonClassName ? this.props.search.searchButtonClassName : \"\")}\r\n disabled={this.props.search?.searchButtonDisabled}\r\n type=\"primary\"\r\n onClick={() => {\r\n if (this.props.search && this.props.search.onSearch) {\r\n this.props.search.onSearch();\r\n }\r\n }}>\r\n {this.state.loading ? <LoadingOutlined/> : (this.props.search?.hidden ? <ReloadOutlined/> :\r\n <SearchOutlined/>)}\r\n </Button>\r\n }\r\n </Space.Compact>\r\n );\r\n }\r\n\r\n getSettingsMenu(): MenuProps {\r\n let menuItems: MenuElement[] = [\r\n {\r\n key: \"columnFilter\",\r\n icon: <FileSearchOutlined/>,\r\n className: this.props.filter && this.props.filter.columnSearchVisible ? \"ant-dropdown-menu-item-selected\" : \"\",\r\n title: i18n(\"Turn on/off column filter\"),\r\n label: i18n(\"Column Filter\"),\r\n },\r\n {\r\n key: \"autosizeAllColumns\",\r\n icon: <ColumnWidthOutlined/>,\r\n label: i18n(\"Autosize All Columns\"),\r\n },\r\n {\r\n key: \"columnsConfig\",\r\n icon: <ControlOutlined/>,\r\n label: i18n(\"Columns Configuration\"),\r\n },\r\n {\r\n key: \"columnsAndAdvancedConfigDivider\",\r\n type: \"divider\"\r\n },\r\n {\r\n key: \"advancedConfig\",\r\n icon: <SettingOutlined/>,\r\n label: i18n(\"Advanced Settings\"),\r\n }\r\n ];\r\n\r\n if (this.props.settingsMenu?.renderer) {\r\n menuItems = this.props.settingsMenu.renderer(menuItems);\r\n }\r\n\r\n return {\r\n items: menuItems,\r\n onClick: (menuInfo) => {\r\n switch (menuInfo.key) {\r\n case \"columnFilter\":\r\n const visible = !(this.props.filter && this.props.filter.columnSearchVisible);\r\n this.setColumnSearchVisible(visible);\r\n break;\r\n case \"autosizeAllColumns\":\r\n this.gridApi?.autoSizeAllColumns();\r\n break;\r\n case \"columnsConfig\":\r\n this.showColumnsConfig(true);\r\n break;\r\n case \"advancedConfig\":\r\n this.showTableConfiguration(true);\r\n break;\r\n default:\r\n if (this.props.settingsMenu?.onClick) {\r\n this.props.settingsMenu.onClick(menuInfo.key + \"\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getAdaptedColumnDefs(columnDefs: DataGridColDef[], floatingFilterEnabled: boolean | undefined, disableColumnDefsPreprocessing: boolean) {\r\n if (columnDefs.length === 0) {\r\n return undefined;\r\n }\r\n if (disableColumnDefsPreprocessing) {\r\n return columnDefs;\r\n }\r\n const adaptedColumnDefs = columnDefs ? columnDefs.map((columnDef) => {\r\n const {group, floatingFilter, hide, cellEditorPopup, editable, ...rest} = columnDef as DataGridColDef;\r\n let floatingFilterEnabledForColumn = !!floatingFilter;\r\n if (typeof columnDef.type === \"string\") {\r\n if (!!(this.columnTypes[columnDef.type]?.floatingFilter)) {\r\n floatingFilterEnabledForColumn = true;\r\n }\r\n } else {\r\n columnDef.type?.forEach((type) => {\r\n if (!!(this.columnTypes[type]?.floatingFilter)) {\r\n floatingFilterEnabledForColumn = true;\r\n }\r\n });\r\n\r\n }\r\n return {\r\n ...rest,\r\n floatingFilter: floatingFilterEnabledForColumn && floatingFilterEnabled,\r\n resizable: true,\r\n headerComponent: \"simpleHeader\",\r\n headerComponentParams: {\r\n onColumnsConfigVisible: this.showColumnsConfig\r\n },\r\n hide: hide === undefined ? rest.initialHide : hide,\r\n cellStyle: this._getCellStyle,\r\n cellRendererParams: columnDef.cellStyle ? Object.assign(columnDef.cellRendererParams !== undefined ? columnDef.cellRendererParams : {}, {originalCellStyle: columnDef.cellStyle}) : columnDef.cellRendererParams,\r\n editable: editable,\r\n cellEditorPopup: !editable ? undefined : cellEditorPopup !== false\r\n };\r\n }) : undefined;\r\n if (adaptedColumnDefs) {\r\n setTimeout(() => {\r\n this.props.onColumnDefsAdapted?.(adaptedColumnDefs);\r\n }, 0);\r\n }\r\n return adaptedColumnDefs;\r\n }\r\n\r\n render() {\r\n const {\r\n onGridReady,\r\n columnDefs, disableColumnDefsPreprocessing, onColumnsChanged,\r\n paging, onPaginationChanged, onViewportChanged,\r\n selectedIds,\r\n search, toolbar,\r\n filter, onFilterChanged, onFilterModified, onCellFocused,\r\n onSortChanged, components,\r\n tableConfigVisible, onTableConfigVisible,\r\n noRecordsOverlayRenderer, loadingOverlayRenderer, onRowDataUpdated,\r\n rowStyleRules, onChangeRowStyleRules,\r\n defaultShowMilliseconds, onShowMilliseconds, defaultHideYear, onShowYear,\r\n suppressLoadingOverlay, defaultColDef, headerHeight,\r\n rowData,\r\n rowDataManualMode,\r\n gridRef,\r\n quickFilterParser, quickFilterMatcher,\r\n ...passedProperties\r\n } = this.props;\r\n let key: string;\r\n let paginationPageSize: number | undefined = undefined;\r\n if (paging.pageSize > 0) {\r\n paginationPageSize = paging.pageSize;\r\n passedProperties.pagination = true;\r\n key = \"paginated-table\";\r\n } else if (paging.pageSize === 0) {\r\n passedProperties.paginationAutoPageSize = true;\r\n passedProperties.pagination = true;\r\n key = \"paginated-table\";\r\n } else {\r\n // pagination is disabled\r\n passedProperties.pagination = false;\r\n key = \"non-paginated-table\";\r\n }\r\n\r\n // nejde\r\n const floatingFilterEnabled = !!filter && !!filter.columnSearchVisible;\r\n const adaptedColumnDefs = this.getAdaptedColumnDefs(columnDefs, floatingFilterEnabled, !!disableColumnDefsPreprocessing);\r\n\r\n const customComponents = this.getCustomComponents(components);\r\n const debugMode = process.env.NODE_ENV === 'development';\r\n const panelStyle = {\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n paddingBottom: 8,\r\n };\r\n if (this.props.panelStyle) {\r\n Object.assign(panelStyle, this.props.panelStyle);\r\n }\r\n const tablePanelStyle = {flex: \"1 1 auto\", marginTop: 16, overflow: \"auto\"};\r\n if (this.props.tablePanelStyle) {\r\n Object.assign(tablePanelStyle, this.props.tablePanelStyle);\r\n }\r\n const headerFilterRowHeight = calculateRowHeight(this.state.fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2);\r\n\r\n return (\r\n <React.Fragment>\r\n <Card size=\"small\" bordered={false}\r\n style={{height: \"100%\"}}\r\n styles={{body: panelStyle}}>\r\n <div style={{display: \"flex\"}}>\r\n {this.renderNavigationPanel()}\r\n </div>\r\n <div style={tablePanelStyle}>\r\n <Dropdown trigger={[\"contextMenu\"]}\r\n getPopupContainer={() => {\r\n // very nasty trick how remove error of ResizeObservers infinite cycling - because popover (with dynamic size) is placed in in resizable panel\r\n const parentNode = (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\r\n return parentNode;\r\n }}\r\n menu={getContextMenu({\r\n onlySelectedNodes: true,\r\n showMilliseconds: !!this.props.showMilliseconds,\r\n showYear: !this.props.hideYear,\r\n renderer: this.props.contextMenu?.renderer,\r\n onClick: this.props.contextMenu?.onClick,\r\n getExportContent: this.getExportContent,\r\n hideNotificationOnClipboardCopy: true,\r\n pageOrientation: this.state.pageOrientation,\r\n exporting: this.state.exporting,\r\n onPageOrientationChange: this.onPageOrientationChange,\r\n onExport: this.onExport\r\n })}\r\n open={this.state.contextMenuVisible}\r\n onOpenChange={(visible) => {\r\n if (!visible) {\r\n this.setState({contextMenuVisible: false});\r\n }\r\n }}\r\n >\r\n <div className=\"ag-theme-balham\" style={{width: \"100%\", height: \"100%\"}}\r\n ref={(wrapingDiv) => {\r\n this.wrappingDiv = wrapingDiv;\r\n }}>\r\n <AgGridReact\r\n key={key}\r\n debug={debugMode}\r\n ref={gridRef}\r\n paginationPageSize={paginationPageSize}\r\n maxConcurrentDatasourceRequests={this.props.rowModelType === \"infinite\" ? 1 : undefined}\r\n onGridReady={this.onGridReady}\r\n onPaginationChanged={this.onPaginationChanged}\r\n onFilterModified={this.onFilterModified}\r\n onFilterChanged={this.onFilterChanged}\r\n onSortChanged={this.onSortChanged}\r\n defaultColDef={this.getDefaultColDefinition(defaultColDef)}\r\n columnDefs={adaptedColumnDefs as ColDef[]}\r\n rowData={!rowDataManualMode ? rowData : undefined}\r\n {...passedProperties}\r\n onCellFocused={this.onCellFocused}\r\n suppressPaginationPanel={true}\r\n getRowId={getRowId}\r\n components={customComponents}\r\n columnTypes={this.columnTypes}\r\n onColumnVisible={this.onColumnsChanged}\r\n onColumnPinned={this.onColumnsChanged}\r\n onColumnResized={this.onColumnsChanged}\r\n onColumnMoved={this.onColumnsChanged}\r\n onCellMouseDown={this.onCellMouseDown}\r\n navigateToNextCell={this.navigateToNextCell}\r\n onViewportChanged={this.onViewportChanged}\r\n onCellContextMenu={this.onCellContextMenu}\r\n loadingOverlayComponent='loadingOverlay'\r\n noRowsOverlayComponent='noRecordsOverlay'\r\n onRowDataUpdated={this.onRowDataUpdated}\r\n context={this.table_context}\r\n rowHeight={this.state.rowHeight}\r\n getRowStyle={this._getRowStyle}\r\n getRowHeight={this._getRowHeight}\r\n headerHeight={headerHeight !== undefined ? headerHeight : headerFilterRowHeight}\r\n floatingFiltersHeight={headerFilterRowHeight}\r\n suppressLoadingOverlay={this.props.loadingOverlayRenderer ? true : this.props.suppressLoadingOverlay}\r\n quickFilterParser={this.wildcardQuickFilter.quickFilterParser}\r\n quickFilterMatcher={this.wildcardQuickFilter.quickFilterMatcher}\r\n >\r\n </AgGridReact>\r\n {this.state.loading && this.props.loadingOverlayRenderer &&\r\n <div className=\"ag-overlay\" aria-hidden=\"true\" ref=\"overlayWrapper\">\r\n <div className=\"ag-overlay-panel\">\r\n <div\r\n className=\"ag-overlay-wrapper ag-layout-normal ag-overlay-loading-wrapper\">\r\n <div className=\"ag-react-container\">\r\n {this.props.loadingOverlayRenderer?.()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </Dropdown>\r\n {this.props.tableOverlayRenderer?.()}\r\n </div>\r\n </Card>\r\n\r\n {!!this.gridApi && !!this.gridApi && this.state.pageSize !== null &&\r\n <DataGridEditor dataGrid={this}\r\n gridApi={this.gridApi}\r\n columnDefinitions={columnDefs}\r\n columnModel={this.state.columnModel}\r\n visible={!!this.props.tableConfigVisible}\r\n onTableConfigVisible={this.showTableConfiguration}\r\n paginationPageSize={paging.pageSize}\r\n paginationDefaultPageSize={paging.defaultPageSize}\r\n currentPageSize={this.state.pageSize}\r\n showMilliseconds={!!this.props.showMilliseconds}\r\n defaultShowMilliseconds={!!this.props.defaultShowMilliseconds}\r\n showYear={!this.props.hideYear}\r\n defaultShowYear={!this.props.defaultHideYear}\r\n rowStyleRules={this.props.rowStyleRules}\r\n defaultRowStyleRules={this.props.defaultRowStyleRules}\r\n onChangeRowStyleRules={onChangeRowStyleRules}\r\n />}\r\n\r\n\r\n {!!this.gridApi && <ModalDialog\r\n mode={ModalDialogMode.OK_CANCEL}\r\n open={this.state.columnsConfigVisible}\r\n initialWidth={700}\r\n initialHeight={this.state.columnTransferHeight}\r\n title={<span><ControlOutlined style={{\r\n color: \"#faad14\",\r\n fontSize: 22,\r\n marginRight: 16\r\n }}/>{i18n(\"Columns Configuration\")}</span>}\r\n cancelText={i18n(\"Cancel\")}\r\n onCancel={() => {\r\n if (this.gridApi && this.columnModelBeforeEdit) {\r\n this.gridApi.applyColumnState({state: this.columnModelBeforeEdit, applyOrder: true});\r\n delete this.columnModelBeforeEdit;\r\n this.showColumnsConfig(false);\r\n }\r\n }}\r\n onOk={() => {\r\n delete this.columnModelBeforeEdit;\r\n this.showColumnsConfig(false);\r\n }}\r\n onResize={({height}) => {\r\n this.setState({columnTransferHeight: height});\r\n }}\r\n zIndex={100}\r\n >\r\n <ColumnTransfer\r\n columnDefinitions={columnDefs as ColDef[]}\r\n columnModel={this.state.columnModel}\r\n gridApi={this.gridApi}\r\n height={this.state.columnTransferHeight - 154}\r\n />\r\n </ModalDialog>}\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}"]}
1
+ {"version":3,"file":"dataGrid.js","sourceRoot":"","sources":["../../../../components/grid/dataGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {ReactElement} from \"react\";\r\n\r\nimport {\r\n ColumnWidthOutlined,\r\n ControlOutlined,\r\n DownloadOutlined,\r\n FileSearchOutlined,\r\n LoadingOutlined,\r\n ReloadOutlined,\r\n SearchOutlined,\r\n SettingOutlined,\r\n TableOutlined\r\n} from \"@ant-design/icons\";\r\nimport {Button, Card, Dropdown, Empty, MenuProps, Space} from \"antd\";\r\nimport {AgGridReact} from \"ag-grid-react\";\r\nimport 'ag-grid-community/styles/ag-grid.css';\r\nimport 'ag-grid-community/styles/ag-theme-balham.css';\r\nimport 'd2coreui/style/ag-grid/aggrid-adaptations.css'\r\nimport TextColumnFilter from \"d2coreui/components/grid/filter/textColumnFilter\"\r\nimport CustomColumnFilter from \"d2coreui/components/grid/filter/customColumnFilter\"\r\nimport SimpleHeader from \"d2coreui/components/grid/header/simpleHeader\"\r\nimport DataGridEditor from \"d2coreui/components/grid/config/dataGridEditor\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport AutoCompleteInput from \"d2coreui/components/input/autoCompleteInput\";\r\nimport isEqual from \"lodash/isEqual\"\r\nimport getContextMenu, {ContextMenuProps, PageOrientation} from \"d2coreui/components/grid/export/contextMenu\";\r\nimport LoadingOverlay from \"d2coreui/components/grid/panel/loadingOverlay\";\r\nimport NoRecordsOverlay from \"d2coreui/components/grid/panel/noRecordsOverlay\";\r\nimport at from \"lodash/at\"\r\nimport ColumnTransfer from \"d2coreui/components/grid/config/columnTransfer\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport escape from \"lodash/escape\";\r\nimport {RangeSelector} from \"d2coreui/components/grid/cell/rangeSelector\"\r\nimport {\r\n _defineModule,\r\n CellClassParams,\r\n CellContextMenuEvent,\r\n CellCtrl,\r\n CellFocusedEvent,\r\n CellMouseDownEvent,\r\n CellPosition,\r\n ColDef,\r\n Column,\r\n ColumnEvent,\r\n ColumnState,\r\n FilterChangedEvent,\r\n FilterModifiedEvent,\r\n GetQuickFilterTextParams,\r\n GetRowIdParams,\r\n GridApi,\r\n GridOptions,\r\n GridReadyEvent,\r\n ICellRendererParams,\r\n IRowModel,\r\n IRowNode,\r\n ModuleRegistry,\r\n NavigateToNextCellParams,\r\n PaginationChangedEvent,\r\n RowClassParams,\r\n RowDataUpdatedEvent,\r\n RowNode,\r\n RowPinnedType,\r\n RowStyle,\r\n SortChangedEvent,\r\n SuppressKeyboardEventParams,\r\n ValueFormatterParams,\r\n ValueGetterParams,\r\n ViewportChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport tableDefaultRowStyleRules, {\r\n GridRowStyle,\r\n RowStyleRule\r\n} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {Key} from \"ts-key-enum\";\r\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\r\nimport ProgressPopup from \"d2coreui/components/grid/export/progressPopup\";\r\nimport TimeUtils from \"d2core/utils/timeUtils\";\r\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\r\nimport NumberCellEditor from \"d2coreui/components/grid/cell/numberCellEditor\";\r\nimport TextCellEditor from \"d2coreui/components/grid/cell/textCellEditor\";\r\nimport StatusTextCellEditor from \"d2coreui/components/grid/cell/statusTextCellEditor\";\r\nimport DateCellEditor from \"d2coreui/components/grid/cell/dateCellEditor\";\r\nimport memoizeOne from \"memoize-one\";\r\nimport SimpleStatusTextCellEditor from \"d2coreui/components/grid/cell/simpleStatusTextCellEditor\";\r\nimport DurationCellEditor from \"d2coreui/components/grid/cell/durationCellEditor\";\r\nimport CustomEnumCellEditor from \"d2coreui/components/grid/cell/customEnumCellEditor\";\r\nimport HexaValueCellEditor from \"d2coreui/components/grid/cell/hexaValueCellEditor\";\r\nimport HexaOctetStringCellEditor from \"d2coreui/components/grid/cell/hexaOctetStringCellEditor\";\r\nimport ReactDOM from \"react-dom\";\r\nimport {D2000UnixTimeNullValue, unixTimeToMoment} from \"d2core/types/unixTimeUtils\";\r\nimport {compileExpression} from \"filtrex\";\r\nimport DataGridPagination from \"./panel/dataGridPagination\";\r\nimport {\r\n calculateLineHeight,\r\n calculateRowHeight,\r\n getFontSize,\r\n getLineHeight,\r\n getRowHeightDelta,\r\n GRID_DEFAULT_FONT_SIZE,\r\n GRID_DEFAULT_ROW_HEIGHT_DELTA\r\n} from \"./config/rowHeightCalculator\";\r\nimport BeanAccessor, {GridApiWithPrivateAccess} from \"./cell/beanAccessor\";\r\nimport WildcardQuickFilterEngine from \"./filter/wildcardQuickFilterEngine\";\r\n\r\nconst gridFrameworkComponents = {\r\n customColumnFilter: CustomColumnFilter,\r\n textColumnFilter: TextColumnFilter,\r\n numberCellEditor: NumberCellEditor,\r\n textCellEditor: TextCellEditor,\r\n simpleStatusTextCellEditor: SimpleStatusTextCellEditor,\r\n statusTextCellEditor: StatusTextCellEditor,\r\n dateCellEditor: DateCellEditor,\r\n durationCellEditor: DurationCellEditor,\r\n customEnumCellEditor: CustomEnumCellEditor,\r\n hexaValueCellEditor: HexaValueCellEditor,\r\n hexaOctetStringCellEditor: HexaOctetStringCellEditor,\r\n simpleHeader: SimpleHeader,\r\n loadingOverlay: LoadingOverlay,\r\n noRecordsOverlay: NoRecordsOverlay\r\n};\r\n\r\n\r\nconst DataGridModule = _defineModule({\r\n version: \"32.2.0\",\r\n moduleName: `dataGridModule`,\r\n beans: [RangeSelector, BeanAccessor],\r\n dependantModules: [],\r\n});\r\n\r\nModuleRegistry.__register(DataGridModule, false, undefined)\r\n\r\n/*\r\n * Ag Grid cell editing enter key navigation bug fix in case of enabled enterMovesDownAfterEdit property\r\n * buggy Ag Grid implementation causes that not only pressing enter, but also losing focus of the cell (e.g. clicking outside the grid) moves focus to the next cell\r\n * This code fixes CellCtrl prototype implementation of onPopupEditorClosed method to prevent this behavior by adding property true to stopEditingAndFocus method\r\n */\r\nCellCtrl.prototype.onPopupEditorClosed = function () {\r\n if (!this.isEditing()) {\r\n return;\r\n }\r\n // note: this happens because of a click outside of the grid or if the popupEditor\r\n // is closed with `Escape` key. if another cell was clicked, then the editing will\r\n // have already stopped and returned on the conditional above.\r\n this.stopEditingAndFocus(true);\r\n};\r\n\r\nfunction getRowId(item: GetRowIdParams): string {\r\n return item.data.id + \"\";\r\n}\r\n\r\nconst rowStyleRuleCompiledExpressions: { [key: string]: (parameters: any) => any } = {};\r\n\r\n/**\r\n * Special separator for part of the column which should be exported\r\n */\r\nexport const EXPORT_SEPARATOR = \"\\n\";\r\n\r\nexport type MenuElement = Exclude<Exclude<MenuProps[\"items\"], undefined>[number], null>;\r\n\r\nconst enum NavigationEventEnum {\r\n KEYBOARD,\r\n MOUSE\r\n}\r\n\r\n/**\r\n * Extended viewport change event\r\n */\r\nexport interface DataGridViewportChangedEvent extends ViewportChangedEvent {\r\n // delta number of rows table moved during paging/scrolling of the table\r\n // negative number when paged/scrolled backwards to first record, positive number when paged/scrolled forwards to last record\r\n rowsScrollingDelta: number\r\n}\r\n\r\nexport type SortMode = \"asc\" | \"desc\"\r\n\r\n/**\r\n * Represents sorting definition for one column\r\n */\r\nexport interface SortItem {\r\n colId: string;\r\n sort: SortMode;\r\n}\r\n\r\nexport type FilterRenderer = (value: string, changeValue: (newValue: string) => void, onSearch: () => void) => React.ReactNode\r\n\r\n/*\r\n * Extended table column definition\r\n */\r\nexport interface DataGridColDef extends Omit<ColDef, \"cellStyle\"> {\r\n // localized name of group of columns to which column belongs to\r\n group: string\r\n // context of column definition\r\n context?: any\r\n\r\n // override of ag-grid api with undefined styles\r\n cellStyle?: { [cssProperty: string]: string | number | null } | ((cellClassParams: CellClassParams) => {\r\n [cssProperty: string]: string | number | null\r\n } | undefined);\r\n\r\n\r\n // custom filter render method\r\n renderFilter?: FilterRenderer\r\n}\r\n\r\n// removal of console warnings of our properties\r\n// COL_DEF_VALIDATORS.allProperties?.push(\"group\", \"context\", \"cellStyle\", \"renderFilter\");\r\n\r\n\r\nexport interface DataGridFilterProps {\r\n // flag if floating filters (beneath column headers) are visible\r\n columnSearchVisible?: boolean\r\n // visibility handler for floating filters\r\n onColumnSearchVisible?: (visible: boolean) => void\r\n\r\n // returns floating filters (beneath column headers) current model (essential when filters should be pre-filled when shown from e.g. searchbox)\r\n getFilterModel?(): any\r\n\r\n // floating filter changed event (e.g. when pressing enter in floating filter textbox)\r\n onFilterChanged?(event: FilterChangedEvent): void;\r\n\r\n // floating filter modify event (e.g. when modifying value in floating filter textbox)\r\n onFilterModified?(event: FilterModifiedEvent): void;\r\n\r\n // method called when enter is pressed in the floating filter\r\n onFilterConfirmed?(): void\r\n}\r\n\r\nexport interface DataGridSearchProps {\r\n // placeholder to show in search field when no value is entered\r\n placeholder?: string\r\n // current search string\r\n searchString?: string\r\n // current search history available for search field popup\r\n searchHistory?: string[]\r\n // custom search button class name\r\n searchButtonClassName?: string\r\n // search button disabled\r\n searchButtonDisabled?: boolean\r\n // search button hidden\r\n searchButtonHidden?: boolean\r\n // hide searchbox\r\n hidden?: boolean\r\n\r\n // custom search field renderer\r\n searchRenderer?(): React.ReactNode\r\n\r\n // formatting showed strings in search and history\r\n stringFormatter?(rawString: string): string\r\n\r\n // search field value changed\r\n onChange?(searchString: string): void\r\n\r\n // called when new search is invoked by pressing search button or enter in the search field\r\n onSearch?(): void\r\n}\r\n\r\n// callback called when data are loaded from backend\r\nexport type OnLoadDataCallback = (totalRecords: number) => void\r\n\r\n/**\r\n * Data Grid properties, differences to AgGrid:\r\n * columnDefinitions (columnDefs) does not support column groups for now\r\n * paginationPageSize for defining size of page is not available, use paging.pageSize instead\r\n */\r\nexport interface DataGridProps extends Omit<GridOptions, \"columnDefs\" | \"paginationPageSize\" | \"getRowStyle\" | \"cellStyle\"> {\r\n // linking grid options (used for aligned grids feature: https://www.ag-grid.com/javascript-grid-aligned-grids/)\r\n gridOptions?: GridOptions\r\n // column definitions\r\n columnDefs: DataGridColDef[]\r\n // for aligned grids functionality\r\n disableColumnDefsPreprocessing?: boolean\r\n\r\n // realColumnDefs building handler\r\n onColumnDefsAdapted?(columnDefs: ColDef[]): void\r\n\r\n // shows table configuration panel\r\n tableConfigVisible?: boolean,\r\n // shows column configuration panel\r\n columnsConfigVisible?: boolean,\r\n // style of panel surrounding datagrid\r\n panelStyle?: React.CSSProperties,\r\n // style of panel surrounding table part\r\n tablePanelStyle?: React.CSSProperties,\r\n // floating filter configuration\r\n filter?: DataGridFilterProps\r\n // search bar configuration\r\n search?: DataGridSearchProps\r\n // table paging configuration\r\n paging: {\r\n /* current size of table page:\r\n - value -1 means no paging at all (scrollbar only)\r\n - value 0 means automatic paging (page size automatically adjusted based on available height for table)\r\n - value >0 defines statically defined page size (number of rows) for the table\r\n */\r\n pageSize: number,\r\n // default size used when configuration is reverted\r\n defaultPageSize?: number,\r\n /**\r\n * Page size change handler\r\n * @param currentPageSize - current page size represents number rows available\r\n * @param definedPageSize -\r\n */\r\n onPaginationChanged?: (currentPageSize: number | null, definedPageSize: number) => void;\r\n }\r\n\r\n // flag if row data could be passed only by transaction or setRowData method (optimization for big data lists, where deep comparison is not performed on rowData react property)\r\n rowDataManualMode?: boolean\r\n\r\n // load data handler - called by grid always when it needs data\r\n onLoadData(callback: OnLoadDataCallback): void\r\n\r\n // automatic focus to first cell of selected row after loading of data is complete\r\n autofocus?: boolean\r\n\r\n // handler for keys pressed in data grid\r\n onKeyPressed?(event: KeyboardEvent): void\r\n\r\n // enter handler\r\n onEnter?: () => void;\r\n\r\n // ids of currently selected rows\r\n selectedIds?: (number | string)[]\r\n\r\n // rules for styling table rows\r\n rowStyleRules: RowStyleRule[]\r\n\r\n // default rules for styling table rows, used when configuration is reverted\r\n defaultRowStyleRules?: RowStyleRule[]\r\n\r\n // row styles change handler\r\n onChangeRowStyleRules?(rowStyleRules: RowStyleRule[]): void\r\n\r\n // extra buttons rendered before the search bar\r\n toolbar?: {\r\n // custom renderer for the whole toolbar panel\r\n renderToolbar?(originalSearchBar: ReactElement): ReactElement\r\n\r\n // extra buttons rendered in toolbar\r\n toolbarButtons?: ReactElement\r\n\r\n // hide records count\r\n hideRecordCount?: boolean\r\n\r\n // extra content next to record count\r\n extraContent?: React.ReactNode\r\n }\r\n\r\n // row height change handler (height is changed from table configuration screen)\r\n onRowHeightChanged?(rowHeight: number): void\r\n\r\n // columns state change handler\r\n onColumnsChanged?(columnModel: ColumnState[], event: ColumnEvent): void\r\n\r\n // table configuration panel visibility change handler\r\n onTableConfigVisible?(visible: boolean): void\r\n\r\n // column configuration panel visibility change handler\r\n onColumnsConfigVisible?(visible: boolean): void\r\n\r\n // customized renderer for displaying loading progress\r\n loadingOverlayRenderer?(): ReactElement | null\r\n\r\n // customized renderer for displaying no records information\r\n noRecordsOverlayRenderer?(): ReactElement | null\r\n\r\n // customized renderer for displaying data over table\r\n tableOverlayRenderer?(): ReactElement | null\r\n\r\n showMilliseconds?: boolean\r\n\r\n defaultShowMilliseconds?: boolean\r\n\r\n onShowMilliseconds?(show: boolean, callback: () => void): void\r\n\r\n hideYear?: boolean\r\n\r\n defaultHideYear?: boolean\r\n\r\n onShowYear?(show: boolean, callback: () => void): void\r\n\r\n // export menu configuration\r\n exportMenu?: {\r\n // overides export menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom export menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // settings menu configuration\r\n settingsMenu?: {\r\n // overides setting menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom settings menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // context menu configuration (right click on the table rows)\r\n contextMenu?: {\r\n // overides context menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n // handler for custom context menu items click\r\n onClick?(key: string): void\r\n }\r\n\r\n // override of ag-grid api with undefined styles\r\n getRowStyle?(params: any): GridRowStyle | undefined\r\n\r\n // hook reference to AgGridReact component\r\n gridRef?: React.RefObject<AgGridReact>\r\n}\r\n\r\ninterface DataGridState {\r\n pageIndex: number\r\n pageSize: number | null\r\n recordsCount?: number\r\n columnModel: ColumnState[]\r\n sortModel: SortItem[]\r\n tableConfigVisible: boolean\r\n columnsConfigVisible: boolean\r\n fontSize: number\r\n rowHeight: number\r\n // interval of record's indexes currently shown (first record has index 1)\r\n viewport: [number, number]\r\n contextMenuVisible: boolean\r\n firstLoadDone: boolean\r\n loading: boolean\r\n columnTransferHeight: number\r\n pageOrientation: PageOrientation\r\n exporting: boolean\r\n}\r\n\r\n\r\nexport default class DataGrid extends React.Component<DataGridProps, DataGridState> {\r\n public static defaultProps = {\r\n paging: {\r\n pageSize: 0,\r\n defaultPageSize: 0\r\n },\r\n rowStyleRules: tableDefaultRowStyleRules()\r\n };\r\n\r\n wildcardQuickFilter: WildcardQuickFilterEngine;\r\n columnTypes: { [key: string]: ColDef };\r\n gridApi?: GridApi;\r\n // deep copy of columns state before opening editation of columns and its order\r\n // used in \"cancel changes\" functionality\r\n columnModelBeforeEdit?: ColumnState[];\r\n indexToJump: number | null;\r\n columnToJump: Column | null;\r\n lastCellFocus?: CellFocusedEvent;\r\n lastNavigationEvent?: NavigationEventEnum;\r\n lastPaginationEvent?: PaginationChangedEvent | null = null;\r\n table_context: any;\r\n\r\n // @ts-ignore (was used in RangeSelector, not used now but probably will be fixed in future)\r\n private wrappingDiv: HTMLDivElement | null = null;\r\n\r\n constructor(props: Readonly<DataGridProps>) {\r\n super(props);\r\n this.state = {\r\n pageIndex: 0,\r\n pageSize: null,\r\n recordsCount: undefined,\r\n columnModel: [],\r\n sortModel: [],\r\n tableConfigVisible: !!this.props.tableConfigVisible,\r\n columnsConfigVisible: !!this.props.columnsConfigVisible,\r\n fontSize: GRID_DEFAULT_FONT_SIZE,\r\n rowHeight: calculateRowHeight(GRID_DEFAULT_FONT_SIZE, GRID_DEFAULT_ROW_HEIGHT_DELTA),\r\n viewport: [0, 0],\r\n contextMenuVisible: false,\r\n firstLoadDone: false,\r\n loading: false,\r\n columnTransferHeight: 500,\r\n pageOrientation: \"PORTRAIT\",\r\n exporting: false\r\n };\r\n this.indexToJump = null;\r\n this.columnToJump = null;\r\n\r\n this.onGridReady = this.onGridReady.bind(this);\r\n this.onPaginationChanged = this.onPaginationChanged.bind(this);\r\n this.onViewportChanged = this.onViewportChanged.bind(this);\r\n this.onCellContextMenu = this.onCellContextMenu.bind(this);\r\n this.onCellFocused = this.onCellFocused.bind(this);\r\n this.onCellMouseDown = this.onCellMouseDown.bind(this);\r\n this.setFocusedCellDebounced = debounce(this.setFocusedCellDebounced.bind(this), 200);\r\n this.noRecordsOverlayRenderer = this.noRecordsOverlayRenderer.bind(this);\r\n this.loadingOverlayRenderer = this.loadingOverlayRenderer.bind(this);\r\n this.changePagination = this.changePagination.bind(this);\r\n this.onColumnsChanged = this.onColumnsChanged.bind(this);\r\n this.onFilterModified = this.onFilterModified.bind(this);\r\n this.onFilterChanged = this.onFilterChanged.bind(this);\r\n this.onFilterConfirmed = this.onFilterConfirmed.bind(this);\r\n this.onSortChanged = this.onSortChanged.bind(this);\r\n this.showTableConfiguration = this.showTableConfiguration.bind(this);\r\n this.showColumnsConfig = this.showColumnsConfig.bind(this);\r\n this.navigateToNextCell = this.navigateToNextCell.bind(this);\r\n this.suppressKeyboardEvent = this.suppressKeyboardEvent.bind(this);\r\n this.onRowDataUpdated = this.onRowDataUpdated.bind(this);\r\n this._getRowStyle = this._getRowStyle.bind(this);\r\n this._getRowHeight = this._getRowHeight.bind(this);\r\n this._getCellStyle = this._getCellStyle.bind(this);\r\n this.textCustomComparator = this.textCustomComparator.bind(this);\r\n this.onPageOrientationChange = this.onPageOrientationChange.bind(this);\r\n this.onExport = this.onExport.bind(this);\r\n this.getExportContent = this.getExportContent.bind(this);\r\n this.getDefaultColDefinition = memoizeOne(this.getDefaultColDefinition.bind(this));\r\n this.getAdaptedColumnDefs = memoizeOne(this.getAdaptedColumnDefs.bind(this));\r\n this.getCustomComponents = memoizeOne(this.getCustomComponents.bind(this));\r\n\r\n this.table_context = {\r\n loadingOverlayRenderer: this.loadingOverlayRenderer,\r\n noRecordsOverlayRenderer: this.noRecordsOverlayRenderer,\r\n onFilterConfirmed: this.onFilterConfirmed,\r\n fontSize: this.state.fontSize,\r\n lineHeight: getLineHeight(this.state.rowHeight)\r\n };\r\n this.wildcardQuickFilter = new WildcardQuickFilterEngine();\r\n\r\n this.columnTypes = {\r\n \"localizedArrayColumn\": {\r\n cellRenderer: (params: ICellRendererParams): string => {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: function (params: ValueGetterParams): string | null {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: function (params: GetQuickFilterTextParams): string {\r\n const value = DataGrid.getCellValue<string[]>(params);\r\n if (value !== undefined) {\r\n return value.map((s) => i18n(s)).join(\",\");\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"numberColumn\": {\r\n cellRenderer: (params: ICellRendererParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined && value !== null) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: function (params: ValueGetterParams): string | null {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n getQuickFilterText: function (params: GetQuickFilterTextParams): string {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return LocaleHolder.formatNumber(value, params.colDef?.cellRendererParams?.fractionDigits);\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n },\r\n \"dateColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n if (value === D2000UnixTimeNullValue) {\r\n return \"---\";\r\n }\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span\r\n title={tooltipValue}>{unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear))}</span>\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateFormat(!this.props.hideYear));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"dateTimeColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value) {\r\n if (value === D2000UnixTimeNullValue) {\r\n return \"Null Time\";\r\n }\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span\r\n title={tooltipValue}>{unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds))}</span>;\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"fromNowDateTimeColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n let tooltipValue: string;\r\n tooltipValue = unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(true, true, true));\r\n return <span title={tooltipValue}>{unixTimeToMoment(value).fromNow()}</span>;\r\n } else {\r\n return \"---\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"---\";\r\n },\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n filterValueGetter: (params: ValueGetterParams): string | null => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return null;\r\n },\r\n getQuickFilterText: (params: GetQuickFilterTextParams): string => {\r\n const value = DataGrid.getCellValue<number>(params);\r\n if (value !== undefined) {\r\n return unixTimeToMoment(value).format(LocaleHolder.getDateTimeFormat(!this.props.hideYear, true, this.props.showMilliseconds));\r\n }\r\n return \"\";\r\n }\r\n },\r\n \"escapedValueColumn\": {\r\n cellRenderer: (params: ICellRendererParams) => {\r\n const value = DataGrid.getCellValue<any>(params);\r\n if (value !== undefined) {\r\n return <span style={{whiteSpace: \"pre\"}}\r\n title={escape(value)}>{typeof value === \"string\" ? escape(value.replace(/[\\r\\n]+/g, ' ')) : value}</span>;\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n valueFormatter: (params: ValueFormatterParams): string => {\r\n const value = DataGrid.getCellValue<any>(params);\r\n if (value !== undefined) {\r\n return typeof value === \"string\" ? value.replace(/[\\r\\n]+/g, ' ') : value;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n },\r\n \"textColumnFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"textColumnFilter\",\r\n filterParams: {\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"textColumnServerFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"textColumnFilter\",\r\n filterParams: {\r\n buttons: ['apply'],\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"customColumnServerFilter\": {\r\n filter: \"agTextColumnFilter\",\r\n floatingFilter: true,\r\n floatingFilterComponent: \"customColumnFilter\",\r\n filterParams: {\r\n buttons: ['apply'],\r\n textCustomComparator: this.textCustomComparator\r\n },\r\n suppressFloatingFilterButton: true,\r\n },\r\n \"alignRight\": {}\r\n };\r\n }\r\n\r\n private static getCellValue<V>(props: any): V | undefined {\r\n if (props) {\r\n if (props.colDef.field && typeof props.getValue === \"function\") {\r\n return props.getValue(props.colDef.field);\r\n }\r\n if (props.data && props.colDef && props.colDef.field) {\r\n return at<V>(props.data, props.colDef.field)[0];\r\n }\r\n if (props.value !== undefined) {\r\n return props.value;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n textCustomComparator(filter: string, value: any, filterText: string) {\r\n const filterTextLowerCase = filterText.toLowerCase();\r\n const valueLowerCase = value.toString().toLowerCase();\r\n switch (filter) {\r\n case 'contains':\r\n if (filterTextLowerCase.indexOf(\"*\") >= 0 || filterTextLowerCase.indexOf(\"?\") >= 0) {\r\n const wildcardFilterRegExp = this.wildcardQuickFilter.getWildcardFilterRegExp(filterTextLowerCase);\r\n if (typeof wildcardFilterRegExp == \"string\") {\r\n return valueLowerCase.indexOf(filterTextLowerCase) >= 0;\r\n } else {\r\n return wildcardFilterRegExp.test(valueLowerCase);\r\n }\r\n } else {\r\n return valueLowerCase.indexOf(filterTextLowerCase) >= 0;\r\n }\r\n case 'notContains':\r\n return valueLowerCase.indexOf(filterTextLowerCase) === -1;\r\n case 'equals':\r\n return valueLowerCase === filterTextLowerCase;\r\n case 'notEqual':\r\n // noinspection EqualityComparisonWithCoercionJS\r\n return valueLowerCase != filterTextLowerCase;\r\n case 'startsWith':\r\n return valueLowerCase.indexOf(filterTextLowerCase) === 0;\r\n case 'endsWith':\r\n var index = valueLowerCase.lastIndexOf(filterTextLowerCase);\r\n return index >= 0 && index === (valueLowerCase.length - filterTextLowerCase.length);\r\n default:\r\n // should never happen\r\n console.warn('invalid filter type ' + filter);\r\n return false;\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: DataGridProps) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (this.props.filter && prevProps.filter && this.props.filter.columnSearchVisible !== prevProps.filter.columnSearchVisible) {\r\n setTimeout(() => {\r\n if (this.gridApi) {\r\n this.gridApi.refreshHeader();\r\n if (this.props.filter && !this.props.filter.columnSearchVisible) {\r\n this.gridApi.setFilterModel(null);\r\n this.gridApi.onFilterChanged();\r\n }\r\n }\r\n }, 0);\r\n }\r\n // functionality when all data are loaded to table\r\n if (this.props.rowData && this.props.rowData !== prevProps.rowData) {\r\n // keep filter model when data are changed\r\n if (this.props.filter && this.props.filter.getFilterModel) {\r\n this.gridApi.setFilterModel(this.props.filter.getFilterModel());\r\n this.gridApi.onFilterChanged();\r\n }\r\n // keep sorting model when data are changed\r\n this.setSortModel(this.state.sortModel);\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n this.gridApi.redrawRows();\r\n\r\n // keep selected rows when data are changed and rows are still present\r\n const selectedObjectsVisibleInGrid = this.props.rowData.filter((object) => {\r\n return this.props.selectedIds ? this.props.selectedIds.indexOf(object.id) >= 0 : false;\r\n });\r\n if (selectedObjectsVisibleInGrid.length > 0) {\r\n selectedObjectsVisibleInGrid.forEach((object) => {\r\n const rowNode = this.gridApi ? this.gridApi.getRowNode(object.id + \"\") : null;\r\n if (rowNode && !rowNode.isSelected()) {\r\n rowNode.setSelected(true, true);\r\n }\r\n });\r\n } else {\r\n this.gridApi.deselectAll();\r\n }\r\n }\r\n // functionality when chunks of data are dynamically loaded from server\r\n if (this.props.datasource && this.props.datasource !== prevProps.datasource) {\r\n // resets grid data\r\n this.gridApi.updateGridOptions({datasource: this.props.datasource});\r\n }\r\n this.updateRowHeight();\r\n }\r\n\r\n public setColumnState(columnModel: ColumnState[]) {\r\n const columnStates: ColumnState[] = [];\r\n if (columnModel) {\r\n columnModel.forEach((item: ColumnState) => {\r\n const columnState = {...item};\r\n item.sortIndex = undefined;\r\n item.sort = undefined\r\n columnStates.push(columnState);\r\n });\r\n }\r\n this.gridApi?.applyColumnState({state: columnStates, defaultState: {sort: null}, applyOrder: true});\r\n }\r\n\r\n public setSortModel(sortModel: SortItem[]) {\r\n const columnState: ColumnState[] = [];\r\n if (sortModel) {\r\n sortModel.forEach((item: any, index: number) => {\r\n columnState.push({\r\n colId: item.colId,\r\n sort: item.sort,\r\n sortIndex: index\r\n });\r\n });\r\n }\r\n this.gridApi?.applyColumnState({state: columnState, defaultState: {sort: null}, applyOrder: true});\r\n }\r\n\r\n public getSortModel(): SortItem[] {\r\n const columnState = this.gridApi?.getColumnState() ?? [];\r\n const filteredStates = columnState?.filter(item => item.sort != null);\r\n const indexes: { [colId: string]: number; } = {};\r\n filteredStates.forEach((state) => {\r\n if (state.colId) {\r\n indexes[state.colId] = state.sortIndex as number;\r\n }\r\n });\r\n const res = filteredStates.map(s => {\r\n return {colId: s.colId, sort: s.sort} as SortItem;\r\n });\r\n res.sort((a: any, b: any) => indexes[a.colId] - indexes[b.colId]);\r\n return res;\r\n\r\n }\r\n\r\n updateRowHeight() {\r\n let rowAndFontHeight = this.calculateRowAndFontHeight(this.props.rowStyleRules);\r\n if (rowAndFontHeight.rowHeight !== this.state.rowHeight) {\r\n this.changeRowHeight(rowAndFontHeight.fontSize, rowAndFontHeight.rowHeight);\r\n }\r\n if (rowAndFontHeight.fontSize !== this.state.fontSize) {\r\n this.setState({fontSize: rowAndFontHeight.fontSize});\r\n }\r\n }\r\n\r\n calculateRowAndFontHeight(rowStyleRules?: RowStyleRule[]): { fontSize: number, rowHeight: number } {\r\n let rowHeightDelta = GRID_DEFAULT_ROW_HEIGHT_DELTA;\r\n let fontSize = GRID_DEFAULT_FONT_SIZE;\r\n let rowHeight = calculateRowHeight(fontSize, rowHeightDelta);\r\n if (rowStyleRules) {\r\n for (let i = 0; i < rowStyleRules.length; i++) {\r\n if (rowStyleRules[i].key === \"table-font-size\") {\r\n const currentFontSize = rowStyleRules[i].style.fontSize;\r\n fontSize = getFontSize(currentFontSize);\r\n rowHeight = calculateRowHeight(currentFontSize, rowHeightDelta);\r\n }\r\n if (rowStyleRules[i].key === \"table-line-indentation\") {\r\n const currentRowHeightDelta = rowStyleRules[i].style.rowHeightDelta;\r\n rowHeightDelta = getRowHeightDelta(currentRowHeightDelta);\r\n rowHeight = calculateRowHeight(fontSize, currentRowHeightDelta);\r\n }\r\n }\r\n }\r\n return {rowHeight: rowHeight, fontSize: fontSize};\r\n }\r\n\r\n /**\r\n * Handling setting table gridEditor\r\n */\r\n static getDerivedStateFromProps(props: DataGridProps, state: DataGridState) {\r\n const newState: Partial<DataGridState> = {};\r\n if (props.tableConfigVisible === true || props.tableConfigVisible === false) {\r\n if (props.tableConfigVisible !== state.tableConfigVisible) {\r\n newState.tableConfigVisible = props.tableConfigVisible;\r\n }\r\n }\r\n return newState;\r\n }\r\n\r\n onGridReady(gridReadyEvent: GridReadyEvent): void {\r\n const gridApi = gridReadyEvent.api;\r\n if (!this.gridApi || this.gridApi !== gridApi) {\r\n this.gridApi = gridApi;\r\n if (this.props.onGridReady) {\r\n this.props.onGridReady(gridReadyEvent);\r\n }\r\n this.setState({\r\n sortModel: this.getSortModel(),\r\n columnModel: this.gridApi.getColumnState(),\r\n });\r\n this.updateRowHeight();\r\n }\r\n // fixing some cases when after onGridReady callback no onPaginationChanged callback is called\r\n // and therefore no initial data loading (loadData()) occurs\r\n setTimeout(() => {\r\n if (!!this.lastPaginationEvent) {\r\n this.onPaginationChanged(this.lastPaginationEvent);\r\n }\r\n });\r\n }\r\n\r\n onPaginationChanged(event: PaginationChangedEvent) {\r\n if (this.gridApi) {\r\n const currentPage = this.gridApi.paginationGetCurrentPage();\r\n const currentPageSize = this.gridApi.paginationGetPageSize();\r\n let recordsCount = this.props.paging.pageSize >= 0 ? (this.gridApi.paginationIsLastPageFound() ? this.gridApi.paginationGetRowCount() : 0) : this.gridApi.getDisplayedRowCount();\r\n // process only when onGridReady passed\r\n if (this.state.pageSize !== currentPageSize) {\r\n if (this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(currentPageSize, this.props.paging.pageSize);\r\n }\r\n if (!this.state.firstLoadDone) {\r\n this.loadData();\r\n this.setState({firstLoadDone: true});\r\n }\r\n }\r\n this.setState({pageSize: currentPageSize, recordsCount: recordsCount, pageIndex: currentPage});\r\n if (this.indexToJump !== null && this.columnToJump !== null) {\r\n this.gridApi.setFocusedCell(this.indexToJump, this.columnToJump);\r\n this.indexToJump = null;\r\n }\r\n this.lastPaginationEvent = null;\r\n } else {\r\n this.lastPaginationEvent = event;\r\n }\r\n if (this.props.onPaginationChanged) {\r\n this.props.onPaginationChanged(event);\r\n }\r\n }\r\n\r\n onViewportChanged(event: ViewportChangedEvent) {\r\n const dataGridEvent = event as DataGridViewportChangedEvent;\r\n // calculation of the flag that last record is shown\r\n const rowsScrollingDelta = this.state.viewport[1] ? event.lastRow + 1 - this.state.viewport[1] : event.lastRow + 1;\r\n dataGridEvent.rowsScrollingDelta = rowsScrollingDelta;\r\n this.setState({viewport: [event.firstRow + 1, event.lastRow + 1]});\r\n if (this.props.onViewportChanged) {\r\n this.props.onViewportChanged(event);\r\n }\r\n }\r\n\r\n changePagination(pageSize: number): void {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n const gridApiWithPrivateAccess = this.gridApi as GridApiWithPrivateAccess;\r\n if (pageSize > 0) {\r\n this.gridApi.updateGridOptions({\r\n pagination: true,\r\n paginationAutoPageSize: false,\r\n paginationPageSize: pageSize\r\n });\r\n if (this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(pageSize, pageSize);\r\n }\r\n } else if (pageSize === 0) {\r\n this.gridApi.updateGridOptions({pagination: true, paginationAutoPageSize: true});\r\n // handling AG-Grid bug caused by different previous pageSize state\r\n const rowHeight = (gridApiWithPrivateAccess.beans.gos as any).getRowHeightAsNumber?.() ?? 1;\r\n // @ts-ignore\r\n const bodyHeight = (gridApiWithPrivateAccess.beans.ctrlsService as any).params.center.viewportSizeFeature.getBodyHeight();\r\n let availablePageSize = 1000;\r\n if (bodyHeight > 0) {\r\n availablePageSize = Math.floor(bodyHeight / rowHeight);\r\n }\r\n if (this.props.paging.pageSize > availablePageSize) {\r\n this.gridApi.updateGridOptions({paginationPageSize: 1});\r\n } else {\r\n // special hack to remove setting page size\r\n this.gridApi.updateGridOptions({paginationPageSize: null as unknown as number});\r\n }\r\n if (this.props.paging && this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(this.state.pageSize, 0);\r\n }\r\n } else {\r\n this.gridApi.updateGridOptions({pagination: false, paginationAutoPageSize: false});\r\n if (this.props.paging && this.props.paging.onPaginationChanged) {\r\n this.props.paging.onPaginationChanged(this.state.pageSize, -1);\r\n }\r\n }\r\n }\r\n\r\n showMilliseconds(showMilis: boolean) {\r\n this.props.onShowMilliseconds?.(showMilis, () => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n });\r\n }\r\n\r\n showYear(showYear: boolean) {\r\n this.props.onShowYear?.(showYear, () => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n });\r\n }\r\n\r\n changeRowHeight(fontSize: number, rowHeight: number) {\r\n this.setState({rowHeight: rowHeight}, () => {\r\n if (this.gridApi) {\r\n if (this.props.headerHeight === undefined) {\r\n this.gridApi.updateGridOptions({headerHeight: calculateRowHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2)});\r\n }\r\n if (this.props.floatingFiltersHeight === undefined) {\r\n this.gridApi.updateGridOptions({floatingFiltersHeight: calculateRowHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2)});\r\n }\r\n this.gridApi.updateGridOptions({rowHeight: rowHeight})\r\n this.gridApi.resetRowHeights();\r\n this.gridApi.refreshHeader();\r\n this.gridApi.redrawRows();\r\n if (this.props.rowModelType === \"infinite\" && this.props.datasource) {\r\n (this.gridApi.getModel() as any).rowHeight = rowHeight;\r\n // redraws all server side loaded table data\r\n this.gridApi.updateGridOptions({datasource: this.props.datasource});\r\n }\r\n }\r\n if (this.props.onRowHeightChanged) {\r\n this.props.onRowHeightChanged(rowHeight);\r\n }\r\n });\r\n }\r\n\r\n onGoToPage(pageIndex: number) {\r\n if (this.gridApi) {\r\n this.gridApi.paginationGoToPage(pageIndex);\r\n }\r\n }\r\n\r\n loadData(callback?: () => void) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n this.setState({loading: true});\r\n if (!this.props.loadingOverlayRenderer) {\r\n this.gridApi.setGridOption(\"loading\", true);\r\n }\r\n this.props.onLoadData((totalRecords) => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n this.gridApi.setGridOption(\"loading\", false);\r\n this.gridApi.hideOverlay();\r\n this.setState({loading: false});\r\n if (callback) {\r\n callback();\r\n }\r\n if (totalRecords === 0) {\r\n setTimeout(() => {\r\n if (!this.isActive()) {\r\n return;\r\n }\r\n this.gridApi?.showNoRowsOverlay();\r\n }, 400);\r\n }\r\n if (this.props.autofocus) {\r\n this.focus();\r\n }\r\n });\r\n }\r\n\r\n public focus() {\r\n setTimeout(() => {\r\n if (!this.isActive()) {\r\n return;\r\n }\r\n const columnModel = this.gridApi?.getColumnState();\r\n let columnIdToFocus = columnModel?.[0]?.colId || \"name\";\r\n const selectedNodes = this.gridApi?.getSelectedNodes();\r\n const selectedRowIndex: number = (selectedNodes && selectedNodes.length > 0 && selectedNodes[selectedNodes.length - 1].rowIndex) || 0;\r\n this.gridApi?.setFocusedCell(selectedRowIndex, columnIdToFocus);\r\n }, 200);\r\n }\r\n\r\n isActive(): boolean {\r\n return !!this.gridApi && !this.gridApi.isDestroyed();\r\n }\r\n\r\n onColumnsChanged(event: ColumnEvent) {\r\n const columnModel = event.api.getColumnState();\r\n if (this.props.onColumnsChanged) {\r\n this.props.onColumnsChanged(columnModel, event);\r\n }\r\n this.setState({columnModel: columnModel});\r\n }\r\n\r\n setColumnSearchVisible(visible: boolean) {\r\n if (this.gridApi && this.props.filter && this.props.filter.getFilterModel) {\r\n this.gridApi.setFilterModel(this.props.filter.getFilterModel());\r\n }\r\n if (this.props.filter && this.props.filter.onColumnSearchVisible) {\r\n this.props.filter.onColumnSearchVisible(visible);\r\n }\r\n }\r\n\r\n private onFilterModified(event: FilterModifiedEvent) {\r\n if (this.props.filter && this.props.filter.onFilterModified) {\r\n this.props.filter.onFilterModified(event);\r\n }\r\n }\r\n\r\n private onFilterChanged(event: FilterChangedEvent) {\r\n if (this.props.filter && this.props.filter.onFilterChanged) {\r\n this.props.filter.onFilterChanged(event);\r\n }\r\n }\r\n\r\n private onFilterConfirmed() {\r\n if (this.props.filter && this.props.filter.onFilterConfirmed) {\r\n this.props.filter.onFilterConfirmed();\r\n }\r\n }\r\n\r\n private onSortChanged(event: SortChangedEvent) {\r\n if (this.props.onSortChanged && this.gridApi) {\r\n const currentSortModel = this.getSortModel() as SortItem[];\r\n if (!isEqual(this.state.sortModel, currentSortModel)) {\r\n // propagate only changes to sorting\r\n this.setState({sortModel: currentSortModel}, () => {\r\n if (this.props.onSortChanged) {\r\n this.props.onSortChanged(event);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n showTableConfiguration(show: boolean) {\r\n if (this.props.onTableConfigVisible) {\r\n this.props.onTableConfigVisible(show);\r\n }\r\n this.setState({tableConfigVisible: show}, () => {\r\n if (this.gridApi && !this.state.tableConfigVisible) {\r\n // redrawing rows after closing table configuration panel, probably not required any more,\r\n // because config panel and table is shown simultaneously\r\n if (!this.props.rowModelType || this.props.rowModelType === \"clientSide\") {\r\n // table is shown\r\n this.gridApi.refreshClientSideRowModel(\"group\");\r\n }\r\n this.gridApi.redrawRows();\r\n }\r\n });\r\n }\r\n\r\n showColumnsConfig(show: boolean) {\r\n if (this.props.onColumnsConfigVisible) {\r\n this.props.onColumnsConfigVisible(show);\r\n }\r\n this.columnModelBeforeEdit = cloneDeep(this.state.columnModel);\r\n this.setState({columnsConfigVisible: show});\r\n }\r\n\r\n private navigateToNextCell(params: NavigateToNextCellParams): CellPosition {\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n var suggestedNextCell = params.nextCellPosition;\r\n if (!this.gridApi) {\r\n return suggestedNextCell ?? params.previousCellPosition;\r\n }\r\n const pageIndex = this.gridApi.paginationGetCurrentPage();\r\n const totalPages = this.gridApi.paginationGetTotalPages();\r\n var previousCell = params.previousCellPosition;\r\n switch (params.event?.code) {\r\n case Key.ArrowDown:\r\n if ((previousCell.rowIndex + 1) >= this.gridApi.getModel().getRowCount()) {\r\n if (pageIndex < (totalPages - 1)) {\r\n this.onGoToPage(pageIndex + 1);\r\n return {\r\n rowIndex: 0,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n } else {\r\n return {\r\n rowIndex: previousCell.rowIndex,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n }\r\n\r\n }\r\n break;\r\n case Key.ArrowUp:\r\n if ((previousCell.rowIndex - 1) < 0) {\r\n if (pageIndex > 0) {\r\n this.onGoToPage(pageIndex - 1);\r\n return {\r\n rowIndex: this.gridApi.getModel().getRowCount() - 1,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n } else {\r\n return {\r\n rowIndex: previousCell.rowIndex,\r\n column: previousCell.column,\r\n rowPinned: previousCell.rowPinned\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n return suggestedNextCell ?? params.previousCellPosition;\r\n }\r\n\r\n private suppressKeyboardEvent(params: SuppressKeyboardEventParams): boolean {\r\n if (!this.gridApi || params.event.type === \"keypress\") {\r\n return false;\r\n }\r\n const pageIndex = this.gridApi.paginationGetCurrentPage();\r\n const totalPages = this.gridApi.paginationGetTotalPages();\r\n switch (params.event.code) {\r\n case Key.ArrowDown:\r\n case Key.ArrowUp:\r\n case Key.ArrowLeft:\r\n case Key.ArrowRight:\r\n if (params.editing && params.event.altKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n let indexToJump: number;\r\n let columnToJump: Column;\r\n if (params.event.code === Key.ArrowDown) {\r\n indexToJump = focusedCell.rowIndex + 1;\r\n columnToJump = focusedCell.column;\r\n if (indexToJump >= this.gridApi.getModel().getRowCount()) {\r\n if (pageIndex < (totalPages - 1)) {\r\n this.onGoToPage(pageIndex + 1);\r\n indexToJump = 0\r\n } else {\r\n indexToJump = focusedCell.rowIndex;\r\n }\r\n }\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n this.indexToJump = indexToJump;\r\n this.columnToJump = columnToJump;\r\n setTimeout(() => {\r\n this.gridApi?.startEditingCell({\r\n rowIndex: indexToJump,\r\n colKey: columnToJump,\r\n key: Key.Enter\r\n });\r\n }, 0);\r\n return true;\r\n } else if (params.event.code === Key.ArrowUp) {\r\n indexToJump = focusedCell.rowIndex - 1;\r\n columnToJump = focusedCell.column;\r\n if (indexToJump < 0) {\r\n if (pageIndex > 0) {\r\n this.onGoToPage(pageIndex - 1);\r\n indexToJump = this.gridApi.getModel().getRowCount() - 1;\r\n } else {\r\n indexToJump = focusedCell.rowIndex;\r\n }\r\n }\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n this.indexToJump = indexToJump;\r\n this.columnToJump = columnToJump;\r\n setTimeout(() => {\r\n this.gridApi?.startEditingCell({\r\n rowIndex: indexToJump,\r\n colKey: columnToJump,\r\n key: Key.Enter\r\n });\r\n }, 0);\r\n return true;\r\n } else if (params.event.code === Key.ArrowLeft) {\r\n this.gridApi.tabToPreviousCell();\r\n break;\r\n } else /*Key.ArrowRight*/ {\r\n this.gridApi.tabToNextCell();\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n case Key.PageDown:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex < (totalPages - 1)) {\r\n this.gridApi.paginationGoToNextPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = Math.min(focusedCell.rowIndex + this.gridApi.paginationGetPageSize(), this.gridApi.paginationGetRowCount());\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.PageUp:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex > 0) {\r\n this.gridApi.paginationGoToPreviousPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = Math.max(focusedCell.rowIndex - this.gridApi.paginationGetPageSize(), 0);\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.End:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex < (totalPages - 1)) {\r\n this.gridApi.paginationGoToLastPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = this.gridApi.paginationGetRowCount() - 1;\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case Key.Home:\r\n this.lastNavigationEvent = NavigationEventEnum.KEYBOARD;\r\n if (pageIndex > 0) {\r\n this.gridApi.paginationGoToFirstPage();\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n this.indexToJump = 0;\r\n this.columnToJump = focusedCell.column;\r\n return true;\r\n }\r\n }\r\n break;\r\n case \"KeyA\":\r\n if (params.event.ctrlKey && !params.editing) {\r\n var firstRow = this.gridApi.getFirstDisplayedRowIndex();\r\n var lastRow = this.gridApi.getLastDisplayedRowIndex();\r\n this.gridApi.deselectAll();\r\n if (this.props.rowModelType === \"infinite\") {\r\n for (let i = firstRow; i <= lastRow; i++) {\r\n this.gridApi.getDisplayedRowAtIndex(i)?.setSelected(true);\r\n }\r\n } else {\r\n this.gridApi.forEachNodeAfterFilter(function (node, index) {\r\n if (index >= firstRow && index <= lastRow) {\r\n node.setSelected(true);\r\n }\r\n });\r\n }\r\n }\r\n break;\r\n case \"KeyI\":\r\n if (params.event.ctrlKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n const column = this.gridApi?.getColumn(\"objectId\") ?? this.gridApi?.getColumn(\"id\");\r\n if (focusedCell && column) {\r\n const displayedRowAtIndex = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex) {\r\n ClipboardUtils.copyToClipboard(this.getValue(column, displayedRowAtIndex));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case \"KeyB\":\r\n if (params.event.ctrlKey) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n const column = this.gridApi?.getColumn(\"objectName\") ?? this.gridApi?.getColumn(\"name\");\r\n if (focusedCell && column) {\r\n const displayedRowAtIndex1 = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex1) {\r\n ClipboardUtils.copyToClipboard(this.getValue(column, displayedRowAtIndex1));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case \"KeyC\":\r\n if (params.event.ctrlKey && !params.editing) {\r\n const focusedCell = this.gridApi.getFocusedCell();\r\n if (focusedCell) {\r\n const displayedRowAtIndex2 = this.gridApi.getDisplayedRowAtIndex(focusedCell.rowIndex);\r\n if (displayedRowAtIndex2) {\r\n ClipboardUtils.copyToClipboard(this.getValue(focusedCell.column, displayedRowAtIndex2, true));\r\n }\r\n this.gridApi.setFocusedCell(focusedCell.rowIndex, focusedCell.column.getId());\r\n }\r\n }\r\n break;\r\n case Key.Enter:\r\n this.props.onEnter?.();\r\n break;\r\n }\r\n this.props.onKeyPressed?.(params.event);\r\n return false;\r\n }\r\n\r\n getValue(column: Column, row: IRowNode, doNotReplaceNewline?: boolean): string {\r\n let formattedValue = this.gridApi?.getCellValue({rowNode: row, colKey: column});\r\n if (formattedValue && typeof formattedValue === \"string\" && formattedValue.indexOf(EXPORT_SEPARATOR) > 0 && !doNotReplaceNewline) {\r\n formattedValue = formattedValue.replace(/[\\n\\r]+/, ' ');\r\n }\r\n const valueFormatter = column.getColDef().valueFormatter;\r\n if (valueFormatter) {\r\n const params: ValueFormatterParams = {\r\n data: row.data,\r\n node: row,\r\n column: column,\r\n colDef: column.getColDef(),\r\n api: this.gridApi as GridApi,\r\n context: this.gridApi?.getGridOption('context'),\r\n value: formattedValue\r\n };\r\n if (typeof valueFormatter === 'function') {\r\n formattedValue = valueFormatter?.(params);\r\n } else if (typeof valueFormatter === 'string') {\r\n formattedValue = at(row.data, valueFormatter)[0];\r\n }\r\n }\r\n return formattedValue;\r\n }\r\n\r\n async getExportContent(progressPopup: ProgressPopup | null, props: ContextMenuProps): Promise<string[][]> {\r\n if (!this.gridApi) {\r\n return [];\r\n }\r\n const model: IRowModel = this.gridApi.getModel();\r\n const tableContent: string[][] = [];\r\n const columns = this.gridApi.getAllDisplayedColumns().map((column: Column) => {\r\n const columnTypes = column.getColDef().type;\r\n return {\r\n column: column,\r\n displayName: column.getColDef().headerName,\r\n isDateField: columnTypes && columnTypes.indexOf(\"dateColumn\") >= 0,\r\n isDateTimeField: columnTypes && columnTypes.indexOf(\"dateTimeColumn\") >= 0\r\n };\r\n });\r\n if (columns.length === 0) {\r\n return tableContent;\r\n }\r\n tableContent.push(columns.map((column) => column.displayName ?? \"\"));\r\n\r\n let rowCount: number;\r\n let tableNodes: IRowNode[] = [];\r\n if (model.getType() === \"clientSide\") {\r\n if (props.onlySelectedNodes) {\r\n rowCount = 0;\r\n this.gridApi.forEachNodeAfterFilterAndSort((node) => {\r\n if (node.isSelected()) {\r\n tableNodes.push(node);\r\n rowCount++;\r\n }\r\n });\r\n } else {\r\n rowCount = model.getRowCount();\r\n this.gridApi.forEachNodeAfterFilterAndSort((node) => {\r\n tableNodes.push(node);\r\n });\r\n }\r\n } else {\r\n if (props.onlySelectedNodes) {\r\n const selectedNodes = this.gridApi.getSelectedNodes();\r\n rowCount = selectedNodes.length;\r\n selectedNodes.forEach((node) => {\r\n tableNodes.push(node);\r\n });\r\n tableNodes.sort((a, b) => (a.rowIndex ?? 0) > (b.rowIndex ?? 0) ? 1 : (a.rowIndex === b.rowIndex) ? 0 : -1);\r\n } else {\r\n const virtualRowCount = model.getRowCount();\r\n rowCount = virtualRowCount ? virtualRowCount : 0;\r\n }\r\n }\r\n progressPopup?.setRecordCount(rowCount);\r\n\r\n let percentStep = Math.floor(rowCount / 100);\r\n if (percentStep < 100) {\r\n percentStep = 100;\r\n }\r\n\r\n if (model.getType() === \"clientSide\" || props.onlySelectedNodes) {\r\n for (let index = 0; index < tableNodes.length; index++) {\r\n const record: string[] = [];\r\n columns.forEach((column) => {\r\n let value = this.getValue(column.column, tableNodes[index]);\r\n record.push(value);\r\n });\r\n tableContent.push(record);\r\n if (index % percentStep === 0) {\r\n progressPopup?.update(Math.floor(index / rowCount * 100) - 1);\r\n await TimeUtils.sleep(100);\r\n }\r\n }\r\n } else {\r\n for (let index = 0; index < rowCount; index++) {\r\n let row: RowNode | undefined = undefined;\r\n let record: any[] = [];\r\n do {\r\n record = [];\r\n do {\r\n row = model.getRow(index);\r\n if (!row || !row.data) {\r\n await TimeUtils.sleep(100);\r\n }\r\n } while (!row || !row.data);\r\n columns.forEach((column) => {\r\n record.push(this.getValue(column.column, row as RowNode));\r\n });\r\n if (record.filter((cell) => !!cell).length === 0) {\r\n await TimeUtils.sleep(100);\r\n }\r\n } while (record.filter((cell) => !!cell).length === 0);\r\n tableContent.push(record);\r\n if (index % percentStep === 0) {\r\n // noinspection ES6MissingAwait\r\n progressPopup?.update(Math.floor(index / rowCount * 100) - 1);\r\n await TimeUtils.sleep(100);\r\n }\r\n }\r\n }\r\n // noinspection ES6MissingAwait\r\n progressPopup?.update(99);\r\n await TimeUtils.sleep(300);\r\n return tableContent;\r\n }\r\n\r\n onCellFocused(event: CellFocusedEvent) {\r\n const row: IRowNode | undefined = event.rowIndex !== null ? this.gridApi?.getDisplayedRowAtIndex(event.rowIndex) : undefined;\r\n if (row) {\r\n if (this.lastNavigationEvent === NavigationEventEnum.KEYBOARD && KeyboardUtils.isKeyPressed(Key.Shift) && this.lastCellFocus && this.lastCellFocus.rowIndex !== event.rowIndex) {\r\n // focusing new row with SHIFT key pressed\r\n if (!row.isSelected()) {\r\n // add to selection\r\n row.setSelected(true, false);\r\n } else if (this.lastCellFocus?.rowIndex !== null) {\r\n const lastFocusedRow: IRowNode | undefined = this.gridApi?.getDisplayedRowAtIndex(this.lastCellFocus.rowIndex);\r\n if (lastFocusedRow?.isSelected()) {\r\n lastFocusedRow.setSelected(false, false);\r\n }\r\n }\r\n } else if (!row.isSelected() && !KeyboardUtils.isKeyPressed(Key.Control) && !KeyboardUtils.isKeyPressed(Key.Shift)) {\r\n row.setSelected(true, true);\r\n }\r\n }\r\n this.props.onCellFocused?.(event);\r\n this.lastCellFocus = event;\r\n }\r\n\r\n onCellMouseDown(e: CellMouseDownEvent) {\r\n this.lastNavigationEvent = NavigationEventEnum.MOUSE;\r\n // always focus clicked cell (also when using shift key)\r\n if (e.rowIndex !== null) {\r\n this.setFocusedCellDebounced(e.rowIndex, e.column, e.rowPinned !== null ? e.rowPinned : undefined);\r\n }\r\n this.props.onCellMouseDown?.(e);\r\n }\r\n\r\n setFocusedCellDebounced(rowIndex: number, column: string | Column, rowPinned: RowPinnedType) {\r\n this.gridApi?.setFocusedCell(rowIndex, column, rowPinned);\r\n }\r\n\r\n private onCellContextMenu(event: CellContextMenuEvent) {\r\n this.setState({contextMenuVisible: !!event});\r\n if (event.node) {\r\n if (!event.node.isSelected()) {\r\n event.node.setSelected(true, true);\r\n }\r\n }\r\n }\r\n\r\n private loadingOverlayRenderer(): ReactElement {\r\n if (this.props.loadingOverlayRenderer) {\r\n const loadingOverlay = this.props.loadingOverlayRenderer();\r\n if (loadingOverlay) {\r\n return loadingOverlay;\r\n }\r\n }\r\n return <div><LoadingOutlined style={{fontSize: 40, color: \"#1890ff\"}}/></div>;\r\n }\r\n\r\n private noRecordsOverlayRenderer(): ReactElement {\r\n if (this.props.noRecordsOverlayRenderer) {\r\n const noRecordsOverlay = this.props.noRecordsOverlayRenderer();\r\n if (noRecordsOverlay) {\r\n return noRecordsOverlay;\r\n }\r\n }\r\n return (\r\n <Empty description={i18n(\"No records found.\")} imageStyle={{height: \"8vh\"}}>\r\n <Button type=\"primary\" onClick={() => {\r\n if (this.props.search && this.props.search.onSearch) {\r\n this.props.search.onSearch();\r\n }\r\n }}>\r\n <SearchOutlined/> {i18n(\"Search\")}\r\n </Button>\r\n </Empty>\r\n );\r\n }\r\n\r\n /** Set new data to the grid */\r\n public setRowData(dataArray: any[]): void {\r\n this.gridApi?.updateGridOptions({rowData: dataArray});\r\n }\r\n\r\n private onRowDataUpdated(event: RowDataUpdatedEvent) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n const currentPage = this.gridApi.paginationGetCurrentPage();\r\n const recordsCount = this.props.paging.pageSize >= 0 ? (this.gridApi.paginationIsLastPageFound() ? this.gridApi.paginationGetRowCount() : 0) : this.gridApi.getDisplayedRowCount();\r\n this.setState({recordsCount: recordsCount, pageIndex: currentPage});\r\n if (this.props.onRowDataUpdated) {\r\n this.props.onRowDataUpdated(event);\r\n }\r\n }\r\n\r\n private static EMPTY_STYLE: RowStyle = {}\r\n\r\n _getRowStyle(params: RowClassParams): RowStyle {\r\n const rowStyleRules = this.props.rowStyleRules;\r\n if (rowStyleRules) {\r\n const style: any = {};\r\n rowStyleRules.forEach((rowStyleRule) => {\r\n if (rowStyleRule.expression) {\r\n if (!rowStyleRuleCompiledExpressions[rowStyleRule.expression]) {\r\n rowStyleRuleCompiledExpressions[rowStyleRule.expression] = compileExpression(rowStyleRule.expression);\r\n }\r\n if (rowStyleRuleCompiledExpressions[rowStyleRule.expression](params.node.data)) {\r\n Object.assign(style, rowStyleRule.style);\r\n }\r\n } else {\r\n Object.assign(style, rowStyleRule.style);\r\n }\r\n });\r\n if (!style.color) {\r\n style.color = null;\r\n } else if (typeof style.color === \"object\") {\r\n style.color = `rgba(${style.color.r},${style.color.g},${style.color.b},${style.color.a})`;\r\n }\r\n if (!style.backgroundColor) {\r\n style.backgroundColor = \"inherit\";\r\n } else if (typeof style.backgroundColor === \"object\") {\r\n style.backgroundColor = `rgba(${style.backgroundColor.r},${style.backgroundColor.g},${style.backgroundColor.b},${style.backgroundColor.a})`;\r\n }\r\n if (!style.fontWeight) {\r\n style.fontWeight = \"inherit\";\r\n }\r\n const fontSize = style.fontSize;\r\n if (style.fontSize) {\r\n style.fontSize = style.fontSize + \"px\";\r\n } else {\r\n style.fontSize = \"inherit\";\r\n }\r\n if (style.rowHeightDelta) {\r\n const lineHeight = calculateLineHeight(fontSize, style.rowHeightDelta);\r\n if (style.rowHeightDelta) {\r\n delete style.rowHeightDelta;\r\n }\r\n style.lineHeight = lineHeight + \"px\";\r\n } else {\r\n const lineHeight = calculateLineHeight(fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA);\r\n style.lineHeight = lineHeight + \"px\";\r\n }\r\n if (this.props.getRowStyle) {\r\n const rowStyle = this.props.getRowStyle(params);\r\n if (rowStyle) {\r\n return Object.assign(style, rowStyle) as RowStyle;\r\n }\r\n }\r\n return style as RowStyle;\r\n }\r\n return DataGrid.EMPTY_STYLE;\r\n }\r\n\r\n _getRowHeight(): number {\r\n return this.state.rowHeight;\r\n }\r\n\r\n _getCellStyle(params: { colDef: ColDef }) {\r\n const fontSize = this.state.fontSize;\r\n const cellStyles: { [key: string]: any } = {\"fontSize\": fontSize + \"px\"};\r\n if (params.colDef.type && params.colDef.type.indexOf(\"alignRight\") >= 0) {\r\n cellStyles[\"textAlign\"] = \"right\";\r\n }\r\n if (params.colDef.cellRendererParams?.originalCellStyle) {\r\n const originalCellStylesOrHandler = params.colDef.cellRendererParams.originalCellStyle as {} | ((params: any) => {});\r\n if (typeof originalCellStylesOrHandler === \"object\") {\r\n Object.assign(cellStyles, originalCellStylesOrHandler);\r\n } else if (typeof originalCellStylesOrHandler === \"function\") {\r\n const originalCellStyles = originalCellStylesOrHandler(params);\r\n if (originalCellStyles) {\r\n Object.assign(cellStyles, originalCellStyles);\r\n }\r\n }\r\n }\r\n return cellStyles;\r\n }\r\n\r\n getDefaultColDefinition(colDef: ColDef | undefined): ColDef {\r\n if (colDef) {\r\n return {...colDef, suppressKeyboardEvent: this.suppressKeyboardEvent} as ColDef;\r\n } else {\r\n return {suppressKeyboardEvent: this.suppressKeyboardEvent} as ColDef;\r\n }\r\n }\r\n\r\n private getCustomComponents(components: any) {\r\n let customComponents = gridFrameworkComponents;\r\n if (components) {\r\n customComponents = Object.assign(gridFrameworkComponents, components);\r\n }\r\n return customComponents;\r\n }\r\n\r\n private onPageOrientationChange(pageOrientation: PageOrientation) {\r\n this.setState({pageOrientation: pageOrientation});\r\n }\r\n\r\n private onExport(start: boolean) {\r\n this.setState({exporting: start});\r\n }\r\n\r\n renderNavigationPanel(): ReactElement {\r\n return (\r\n <React.Fragment>\r\n {this.props.toolbar && this.props.toolbar.renderToolbar ? this.props.toolbar.renderToolbar(this.renderToolBarWithSearch()) : this.renderToolBarWithSearch()}\r\n {this.props.paging.pageSize >= 0 &&\r\n <DataGridPagination\r\n disabled={this.state.loading}\r\n current={this.state.pageIndex ? this.state.pageIndex + 1 : 1}\r\n pageSize={this.state.pageSize ? this.state.pageSize : 20}\r\n total={this.state.recordsCount ?? 1}\r\n onGoToPage={page => {\r\n this.onGoToPage(page - 1);\r\n }}\r\n />}\r\n {this.props.paging.pageSize < 0 && this.state.recordsCount && !this.props.toolbar?.hideRecordCount ?\r\n <span style={{\r\n flex: \"0 1 auto\",\r\n textAlign: \"right\",\r\n whiteSpace: \"nowrap\",\r\n margin: \"0 12px\",\r\n lineHeight: \"32px\",\r\n }}>{`${this.state.viewport[0]}-${this.state.viewport[1]} ${i18n('of')} ${this.state.recordsCount}`}</span>\r\n : undefined}\r\n {this.props.toolbar?.extraContent}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n renderToolBarWithSearch(): ReactElement {\r\n return (\r\n <Space.Compact key=\"filter-panel\"\r\n className=\"datagrid-autocomplete-input-group\"\r\n style={{whiteSpace: \"nowrap\", flexGrow: 1, display: \"flex\"}}>\r\n {this.props.toolbar?.toolbarButtons}\r\n <Dropdown trigger={[\"click\"]}\r\n menu={getContextMenu({\r\n showMilliseconds: !!this.props.showMilliseconds,\r\n showYear: !this.props.hideYear,\r\n renderer: this.props.exportMenu?.renderer,\r\n onClick: this.props.exportMenu?.onClick,\r\n getExportContent: this.getExportContent,\r\n pageOrientation: this.state.pageOrientation,\r\n exporting: this.state.exporting,\r\n onPageOrientationChange: this.onPageOrientationChange,\r\n onExport: this.onExport\r\n })}\r\n disabled={this.state.loading}>\r\n <Button title={i18n(\"Export\")}>\r\n <DownloadOutlined/>\r\n </Button>\r\n </Dropdown>\r\n\r\n <Dropdown trigger={[\"click\"]}\r\n menu={this.getSettingsMenu()}>\r\n <Button\r\n title={i18n(\"Extended table features\")}\r\n disabled={this.state.loading}>\r\n <TableOutlined/>\r\n </Button>\r\n </Dropdown>\r\n {!this.props.search?.hidden && !this.props.search?.searchRenderer && <AutoCompleteInput\r\n style={{minWidth: 100, flexGrow: 1}}\r\n placeholder={this.props.search ? this.props.search.placeholder : undefined}\r\n stringFormatter={this.props.search ? this.props.search.stringFormatter : undefined}\r\n value={this.props.search ? this.props.search.searchString : undefined}\r\n options={this.props.search ? this.props.search.searchHistory : undefined}\r\n onChange={this.props.search ? this.props.search.onChange : undefined}\r\n onSearch={this.props.search ? this.props.search.onSearch : undefined}\r\n disabled={this.state.loading || (this.props.filter && this.props.filter.columnSearchVisible)}\r\n />}\r\n {this.props.search?.searchRenderer?.()}\r\n {!this.props.search?.searchButtonHidden &&\r\n <Button title={this.props.search?.hidden ? i18n(\"Refresh\") : i18n(\"Search\")}\r\n className={\"search-btn \" + (this.props.search && this.props.search.searchButtonClassName ? this.props.search.searchButtonClassName : \"\")}\r\n disabled={this.props.search?.searchButtonDisabled}\r\n type=\"primary\"\r\n onClick={() => {\r\n if (this.props.search && this.props.search.onSearch) {\r\n this.props.search.onSearch();\r\n }\r\n }}>\r\n {this.state.loading ? <LoadingOutlined/> : (this.props.search?.hidden ? <ReloadOutlined/> :\r\n <SearchOutlined/>)}\r\n </Button>\r\n }\r\n </Space.Compact>\r\n );\r\n }\r\n\r\n getSettingsMenu(): MenuProps {\r\n let menuItems: MenuElement[] = [\r\n {\r\n key: \"columnFilter\",\r\n icon: <FileSearchOutlined/>,\r\n className: this.props.filter && this.props.filter.columnSearchVisible ? \"ant-dropdown-menu-item-selected\" : \"\",\r\n title: i18n(\"Turn on/off column filter\"),\r\n label: i18n(\"Column Filter\"),\r\n },\r\n {\r\n key: \"autosizeAllColumns\",\r\n icon: <ColumnWidthOutlined/>,\r\n label: i18n(\"Autosize All Columns\"),\r\n },\r\n {\r\n key: \"columnsConfig\",\r\n icon: <ControlOutlined/>,\r\n label: i18n(\"Columns Configuration\"),\r\n },\r\n {\r\n key: \"columnsAndAdvancedConfigDivider\",\r\n type: \"divider\"\r\n },\r\n {\r\n key: \"advancedConfig\",\r\n icon: <SettingOutlined/>,\r\n label: i18n(\"Advanced Settings\"),\r\n }\r\n ];\r\n\r\n if (this.props.settingsMenu?.renderer) {\r\n menuItems = this.props.settingsMenu.renderer(menuItems);\r\n }\r\n\r\n return {\r\n items: menuItems,\r\n onClick: (menuInfo) => {\r\n switch (menuInfo.key) {\r\n case \"columnFilter\":\r\n const visible = !(this.props.filter && this.props.filter.columnSearchVisible);\r\n this.setColumnSearchVisible(visible);\r\n break;\r\n case \"autosizeAllColumns\":\r\n this.gridApi?.autoSizeAllColumns();\r\n break;\r\n case \"columnsConfig\":\r\n this.showColumnsConfig(true);\r\n break;\r\n case \"advancedConfig\":\r\n this.showTableConfiguration(true);\r\n break;\r\n default:\r\n if (this.props.settingsMenu?.onClick) {\r\n this.props.settingsMenu.onClick(menuInfo.key + \"\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getAdaptedColumnDefs(columnDefs: DataGridColDef[], floatingFilterEnabled: boolean | undefined, disableColumnDefsPreprocessing: boolean) {\r\n if (columnDefs.length === 0) {\r\n return undefined;\r\n }\r\n if (disableColumnDefsPreprocessing) {\r\n return columnDefs;\r\n }\r\n const adaptedColumnDefs = columnDefs ? columnDefs.map((columnDef) => {\r\n const {group, floatingFilter, hide, cellEditorPopup, editable, ...rest} = columnDef as DataGridColDef;\r\n let floatingFilterEnabledForColumn = !!floatingFilter;\r\n if (typeof columnDef.type === \"string\") {\r\n if (!!(this.columnTypes[columnDef.type]?.floatingFilter)) {\r\n floatingFilterEnabledForColumn = true;\r\n }\r\n } else {\r\n columnDef.type?.forEach((type) => {\r\n if (!!(this.columnTypes[type]?.floatingFilter)) {\r\n floatingFilterEnabledForColumn = true;\r\n }\r\n });\r\n\r\n }\r\n return {\r\n ...rest,\r\n floatingFilter: floatingFilterEnabledForColumn && floatingFilterEnabled,\r\n resizable: true,\r\n headerComponent: \"simpleHeader\",\r\n headerComponentParams: {\r\n onColumnsConfigVisible: this.showColumnsConfig\r\n },\r\n hide: hide === undefined ? rest.initialHide : hide,\r\n cellStyle: this._getCellStyle,\r\n cellRendererParams: columnDef.cellStyle ? Object.assign(columnDef.cellRendererParams !== undefined ? columnDef.cellRendererParams : {}, {originalCellStyle: columnDef.cellStyle}) : columnDef.cellRendererParams,\r\n editable: editable,\r\n cellEditorPopup: !editable ? undefined : cellEditorPopup !== false\r\n };\r\n }) : undefined;\r\n if (adaptedColumnDefs) {\r\n setTimeout(() => {\r\n this.props.onColumnDefsAdapted?.(adaptedColumnDefs);\r\n }, 0);\r\n }\r\n return adaptedColumnDefs;\r\n }\r\n\r\n render() {\r\n const {\r\n onGridReady,\r\n columnDefs, disableColumnDefsPreprocessing, onColumnsChanged,\r\n paging, onPaginationChanged, onViewportChanged,\r\n selectedIds,\r\n search, toolbar,\r\n filter, onFilterChanged, onFilterModified, onCellFocused,\r\n onSortChanged, components,\r\n tableConfigVisible, onTableConfigVisible,\r\n noRecordsOverlayRenderer, loadingOverlayRenderer, onRowDataUpdated,\r\n rowStyleRules, onChangeRowStyleRules,\r\n defaultShowMilliseconds, onShowMilliseconds, defaultHideYear, onShowYear,\r\n suppressLoadingOverlay, defaultColDef, headerHeight,\r\n rowData,\r\n rowDataManualMode,\r\n gridRef,\r\n quickFilterParser, quickFilterMatcher,\r\n ...passedProperties\r\n } = this.props;\r\n let key: string;\r\n let paginationPageSize: number | undefined = undefined;\r\n if (paging.pageSize > 0) {\r\n paginationPageSize = paging.pageSize;\r\n passedProperties.pagination = true;\r\n key = \"paginated-table\";\r\n } else if (paging.pageSize === 0) {\r\n passedProperties.paginationAutoPageSize = true;\r\n passedProperties.pagination = true;\r\n key = \"paginated-table\";\r\n } else {\r\n // pagination is disabled\r\n passedProperties.pagination = false;\r\n key = \"non-paginated-table\";\r\n }\r\n\r\n // nejde\r\n const floatingFilterEnabled = !!filter && !!filter.columnSearchVisible;\r\n const adaptedColumnDefs = this.getAdaptedColumnDefs(columnDefs, floatingFilterEnabled, !!disableColumnDefsPreprocessing);\r\n\r\n const customComponents = this.getCustomComponents(components);\r\n const debugMode = process.env.NODE_ENV === 'development';\r\n const panelStyle = {\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n paddingBottom: 8,\r\n };\r\n if (this.props.panelStyle) {\r\n Object.assign(panelStyle, this.props.panelStyle);\r\n }\r\n const tablePanelStyle = {flex: \"1 1 auto\", marginTop: 16, overflow: \"auto\"};\r\n if (this.props.tablePanelStyle) {\r\n Object.assign(tablePanelStyle, this.props.tablePanelStyle);\r\n }\r\n const headerFilterRowHeight = calculateRowHeight(this.state.fontSize, GRID_DEFAULT_ROW_HEIGHT_DELTA + 2);\r\n\r\n return (\r\n <React.Fragment>\r\n <Card size=\"small\" bordered={false}\r\n style={{height: \"100%\"}}\r\n styles={{body: panelStyle}}>\r\n <div style={{display: \"flex\"}}>\r\n {this.renderNavigationPanel()}\r\n </div>\r\n <div style={tablePanelStyle}>\r\n <Dropdown trigger={[\"contextMenu\"]}\r\n getPopupContainer={() => {\r\n // very nasty trick how remove error of ResizeObservers infinite cycling - because popover (with dynamic size) is placed in in resizable panel\r\n const parentNode = (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\r\n return parentNode;\r\n }}\r\n menu={getContextMenu({\r\n onlySelectedNodes: true,\r\n showMilliseconds: !!this.props.showMilliseconds,\r\n showYear: !this.props.hideYear,\r\n renderer: this.props.contextMenu?.renderer,\r\n onClick: this.props.contextMenu?.onClick,\r\n getExportContent: this.getExportContent,\r\n hideNotificationOnClipboardCopy: true,\r\n pageOrientation: this.state.pageOrientation,\r\n exporting: this.state.exporting,\r\n onPageOrientationChange: this.onPageOrientationChange,\r\n onExport: this.onExport\r\n })}\r\n open={this.state.contextMenuVisible}\r\n onOpenChange={(visible) => {\r\n if (!visible) {\r\n this.setState({contextMenuVisible: false});\r\n }\r\n }}\r\n >\r\n <div className=\"ag-theme-balham\" style={{width: \"100%\", height: \"100%\"}}\r\n ref={(wrapingDiv) => {\r\n this.wrappingDiv = wrapingDiv;\r\n }}>\r\n <AgGridReact\r\n key={key}\r\n debug={debugMode}\r\n ref={gridRef}\r\n paginationPageSize={paginationPageSize}\r\n maxConcurrentDatasourceRequests={this.props.rowModelType === \"infinite\" ? 1 : undefined}\r\n onGridReady={this.onGridReady}\r\n onPaginationChanged={this.onPaginationChanged}\r\n onFilterModified={this.onFilterModified}\r\n onFilterChanged={this.onFilterChanged}\r\n onSortChanged={this.onSortChanged}\r\n defaultColDef={this.getDefaultColDefinition(defaultColDef)}\r\n columnDefs={adaptedColumnDefs as ColDef[]}\r\n rowData={!rowDataManualMode ? rowData : undefined}\r\n {...passedProperties}\r\n onCellFocused={this.onCellFocused}\r\n suppressPaginationPanel={true}\r\n getRowId={getRowId}\r\n components={customComponents}\r\n columnTypes={this.columnTypes}\r\n onColumnVisible={this.onColumnsChanged}\r\n onColumnPinned={this.onColumnsChanged}\r\n onColumnResized={this.onColumnsChanged}\r\n onColumnMoved={this.onColumnsChanged}\r\n onCellMouseDown={this.onCellMouseDown}\r\n navigateToNextCell={this.navigateToNextCell}\r\n onViewportChanged={this.onViewportChanged}\r\n onCellContextMenu={this.onCellContextMenu}\r\n loadingOverlayComponent='loadingOverlay'\r\n noRowsOverlayComponent='noRecordsOverlay'\r\n onRowDataUpdated={this.onRowDataUpdated}\r\n context={this.table_context}\r\n rowHeight={this.state.rowHeight}\r\n getRowStyle={this._getRowStyle}\r\n getRowHeight={this._getRowHeight}\r\n headerHeight={headerHeight !== undefined ? headerHeight : headerFilterRowHeight}\r\n floatingFiltersHeight={headerFilterRowHeight}\r\n suppressLoadingOverlay={this.props.loadingOverlayRenderer ? true : this.props.suppressLoadingOverlay}\r\n quickFilterParser={this.wildcardQuickFilter.quickFilterParser}\r\n quickFilterMatcher={this.wildcardQuickFilter.quickFilterMatcher}\r\n >\r\n </AgGridReact>\r\n {this.state.loading && this.props.loadingOverlayRenderer &&\r\n <div className=\"ag-overlay\" aria-hidden=\"true\" ref=\"overlayWrapper\">\r\n <div className=\"ag-overlay-panel\">\r\n <div\r\n className=\"ag-overlay-wrapper ag-layout-normal ag-overlay-loading-wrapper\">\r\n <div className=\"ag-react-container\">\r\n {this.props.loadingOverlayRenderer?.()}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </Dropdown>\r\n {this.props.tableOverlayRenderer?.()}\r\n </div>\r\n </Card>\r\n\r\n {!!this.gridApi && !!this.gridApi && this.state.pageSize !== null &&\r\n <DataGridEditor dataGrid={this}\r\n gridApi={this.gridApi}\r\n columnDefinitions={columnDefs}\r\n columnModel={this.state.columnModel}\r\n visible={!!this.props.tableConfigVisible}\r\n onTableConfigVisible={this.showTableConfiguration}\r\n paginationPageSize={paging.pageSize}\r\n paginationDefaultPageSize={paging.defaultPageSize}\r\n currentPageSize={this.state.pageSize}\r\n showMilliseconds={!!this.props.showMilliseconds}\r\n defaultShowMilliseconds={!!this.props.defaultShowMilliseconds}\r\n showYear={!this.props.hideYear}\r\n defaultShowYear={!this.props.defaultHideYear}\r\n rowStyleRules={this.props.rowStyleRules}\r\n defaultRowStyleRules={this.props.defaultRowStyleRules}\r\n onChangeRowStyleRules={onChangeRowStyleRules}\r\n />}\r\n\r\n\r\n {!!this.gridApi && <ModalDialog\r\n mode={ModalDialogMode.OK_CANCEL}\r\n open={this.state.columnsConfigVisible}\r\n initialWidth={700}\r\n initialHeight={this.state.columnTransferHeight}\r\n title={<span><ControlOutlined style={{\r\n color: \"#faad14\",\r\n fontSize: 22,\r\n marginRight: 16\r\n }}/>{i18n(\"Columns Configuration\")}</span>}\r\n cancelText={i18n(\"Cancel\")}\r\n onCancel={() => {\r\n if (this.gridApi && this.columnModelBeforeEdit) {\r\n this.gridApi.applyColumnState({state: this.columnModelBeforeEdit, applyOrder: true});\r\n delete this.columnModelBeforeEdit;\r\n this.showColumnsConfig(false);\r\n }\r\n }}\r\n onOk={() => {\r\n delete this.columnModelBeforeEdit;\r\n this.showColumnsConfig(false);\r\n }}\r\n onResize={({height}) => {\r\n this.setState({columnTransferHeight: height});\r\n }}\r\n zIndex={100}\r\n >\r\n <ColumnTransfer\r\n columnDefinitions={columnDefs as ColDef[]}\r\n columnModel={this.state.columnModel}\r\n gridApi={this.gridApi}\r\n height={this.state.columnTransferHeight - 154}\r\n />\r\n </ModalDialog>}\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}"]}