{"version":3,"file":"93fe9d73-c5043be4b3f8f0a8eafa.js","mappings":"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","sources":["webpack://instar-wiki/./node_modules/@devexpress/dx-react-grid/dist/dx-react-grid.es.js"],"sourcesContent":["/**\n * Bundle of @devexpress/dx-react-grid\n * Generated: 2021-06-24\n * Version: 2.7.6\n * License: https://js.devexpress.com/Licensing\n */\n\nimport { memo, createElement, useCallback, PureComponent, Fragment, createRef, Component } from 'react';\nimport { Plugin, Getter, Template, TemplatePlaceholder, PluginHost, TemplateConnector, createStateHelper, Action, DragDropProvider as DragDropProvider$1, withComponents, DropTarget, DragSource, RefHolder, Sizer, connectProps } from '@devexpress/dx-react-core';\nimport { tableColumnsWithGrouping, rowIdGetter, cellValueGetter, tableColumnsWithDataRows, checkTableColumnExtensions, visibleTableColumns, orderedColumns, columnChooserItems, changeColumnFilter, getColumnExtensionValueGetter, filterExpression, defaultFilterPredicate, filteredCollapsedRowsGetter, unwrappedFilteredRows, filteredRows, getColumnExtension, startEditRows, stopEditRows, startEditCells, stopEditCells, changeRow, cancelChanges, changedRowsByIds, addRow, changeAddedRow, cancelAddedRows, addedRowsByIds, deleteRows, cancelDeletedRows, createRowChangeGetter, setCurrentPage, setPageSize, rowsWithPageHeaders, rowCount, paginatedRows, currentPage, toggleExpandedGroups, draftColumnGrouping, cancelColumnGroupingDraft, adjustSortIndex, changeColumnGrouping, groupRowChecker, groupRowLevelKeyGetter, groupCollapsedRowsGetter, expandedGroupRows, groupedRows, customGroupingRowIdGetter, customGroupedRows, toggleSelection, rowsWithAvailableToSelect, allSelected, someSelected, unwrapSelectedRows, getPersistentSortedColumns, calculateKeepOther, changeColumnSorting, sortedRows, draftOrder, TABLE_DATA_TYPE, getTableTargetColumnIndex, changeColumnOrder, TABLE_REORDERING_TYPE, tableHeaderRowsWithReordering, tableCellColSpanGetter, isHeaderStubTableCell, isDataTableCell, isNoDataTableRow, isNoDataTableCell, isDataTableRow, TABLE_NODATA_TYPE, tableRowsWithDataRows, isSelectAllTableCell, isSelectTableCell, isRowHighlighted, TABLE_SELECT_TYPE, tableColumnsWithSelection, toggleDetailRowExpanded, isDetailToggleTableCell, isDetailRowExpanded, isDetailTableRow, isDetailTableCell, TABLE_DETAIL_TYPE, tableDetailCellColSpanGetter, tableColumnsWithDetail, tableRowsWithExpandedDetail, defaultFormatlessSummaries, getGroupInlineSummaries, isGroupTableRow, isGroupTableCell, calculateGroupCellIndent, isGroupIndentTableCell, isGroupIndentStubTableCell, isGroupRowOrdinaryCell, isRowSummaryCell, getColumnSummaries, isPreviousCellContainSummary, TABLE_FLEX_TYPE, TABLE_GROUP_TYPE, tableRowsWithGrouping, tableGroupCellColSpanGetter, isHeadingTableCell, getNextColumnName, getColumnSortingDirection, isHeadingTableRow, TABLE_HEADING_TYPE, tableRowsWithHeading, columnBandLevels, isBandedOrHeaderRow, getBandComponent, BAND_FILL_LEVEL_CELL, BAND_HEADER_CELL, BAND_GROUP_CELL, BAND_EMPTY_CELL, BAND_DUPLICATE_RENDER, isBandedTableRow, TABLE_BAND_TYPE, bandLevelsVisibility, columnVisibleIntervals, tableRowsWithBands, tableHeaderColumnChainsWithBands, isFilterTableCell, getColumnFilterConfig, getColumnFilterOperations, getSelectedFilterOperation, isFilterTableRow, TABLE_FILTER_TYPE, tableHeaderRowsWithFilter, TOP_POSITION, isFilterValueEmpty, isEditTableCell, isAddedTableRow, getRowChange, isEditTableRow, TABLE_ADDED_TYPE, TABLE_EDIT_TYPE, tableRowsWithEditing, isHeadingEditCommandsTableCell, isEditCommandsTableCell, TABLE_EDIT_COMMAND_TYPE, tableColumnsWithEditing, tableColumnsWithWidths, tableColumnsWithDraftWidths, changeTableColumnWidth, draftTableColumnWidth, cancelTableColumnWidthDraft, pageCount, getGroupCellTargetIndex, groupingPanelItems, getAvailableFilterOperationsGetter, toggleColumn, tableDataColumnsExist, toggleRowExpanded, expandedTreeRows, customTreeRowIdGetter, customTreeRowLevelKeyGetter, isTreeRowLeafGetter, getTreeRowLevelGetter, collapsedTreeRowsGetter, unwrappedCustomTreeRows, customTreeRowsWithMeta, isTreeTableCell, changeSearchValue, searchFilterExpression, calculateFixedColumnProps, isFixedTableRow, tableHeaderRowsWithFixed, tableHeaderColumnChainsWithFixed, tableColumnsWithFixed, prepareGroupSummaryItems, defaultSummaryCalculator, totalSummaryValues, groupSummaryValues, treeSummaryValues, isTotalSummaryTableCell, isGroupSummaryTableCell, isFooterSummary, isTreeSummaryTableCell, isTotalSummaryTableRow, isGroupSummaryTableRow, isTreeSummaryTableRow, TABLE_TREE_SUMMARY_TYPE, TABLE_GROUP_SUMMARY_TYPE, TABLE_TOTAL_SUMMARY_TYPE, tableRowsWithSummaries, tableRowsWithTotalSummaries, getReferenceIndex, needFetchMorePages, getRequestMeta, shouldSendRequest, emptyVirtualRows, trimRowsToInterval, getAvailableRowCount, virtualRowsWithCache, plainRows, loadedRowsStart, rowsWithEditingCells, columnsWithEditingCells, getAnimations, filterActiveAnimations, evalAnimations, TABLE_STUB_TYPE, getViewport, getCollapsedGrids, getColumnWidthGetter, getTopRowId, getScrollTop, isStubTableCell, BOTTOM_POSITION, checkColumnWidths } from '@devexpress/dx-grid-core';\nimport { getMessagesFormatter, memoize, shallowEqual } from '@devexpress/dx-core';\nimport { createPortal, findDOMNode } from 'react-dom';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\nvar showColumnWhenGroupedGetter = function (showColumnsWhenGrouped, columnExtensions) {\n if (columnExtensions === void 0) {\n columnExtensions = [];\n }\n var map = columnExtensions.reduce(function (acc, columnExtension) {\n acc[columnExtension.columnName] = columnExtension.showWhenGrouped;\n return acc;\n }, {});\n return function (columnName) {\n return map[columnName] || showColumnsWhenGrouped;\n };\n};\n/** @internal */\nvar TableColumnsWithGrouping = memo(function (_a) {\n var indentColumnWidth = _a.indentColumnWidth,\n showColumnsWhenGrouped = _a.showColumnsWhenGrouped,\n columnExtensions = _a.columnExtensions;\n var tableColumnsComputed = function (_a) {\n var columns = _a.columns,\n tableColumns = _a.tableColumns,\n grouping = _a.grouping,\n draftGrouping = _a.draftGrouping;\n return tableColumnsWithGrouping(columns, tableColumns, grouping, draftGrouping, indentColumnWidth, showColumnWhenGroupedGetter(showColumnsWhenGrouped, columnExtensions));\n };\n return createElement(Plugin, null, createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }));\n});\nTableColumnsWithGrouping.defaultProps = {\n indentColumnWidth: 0\n};\nvar GridCoreGetters = memo(function (_a) {\n var rows = _a.rows,\n columns = _a.columns,\n getRowId = _a.getRowId,\n getCellValue = _a.getCellValue;\n return createElement(Plugin, null, createElement(Getter, {\n name: \"rows\",\n value: rows\n }), createElement(Getter, {\n name: \"getRowId\",\n value: rowIdGetter(getRowId, rows)\n }), createElement(Getter, {\n name: \"columns\",\n value: columns\n }), createElement(Getter, {\n name: \"getCellValue\",\n value: cellValueGetter(getCellValue, columns)\n }));\n});\nvar TableColumnsWithDataRowsGetter = memo(function (_a) {\n var columnExtensions = _a.columnExtensions;\n var tableColumnsComputed = useCallback(function (_a) {\n var columns = _a.columns;\n return tableColumnsWithDataRows(columns, columnExtensions);\n }, [columnExtensions]);\n checkTableColumnExtensions(columnExtensions);\n return createElement(Plugin, null, createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }));\n});\nvar visibleTableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns,\n hiddenColumnNames = _a.hiddenColumnNames;\n return visibleTableColumns(tableColumns, hiddenColumnNames);\n};\n/** @internal */\nvar VisibleTableColumns = memo(function (_a) {\n var hiddenColumnNames = _a.hiddenColumnNames;\n return createElement(Plugin, null, createElement(Getter, {\n name: \"hiddenColumnNames\",\n value: hiddenColumnNames\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: visibleTableColumnsComputed\n }));\n});\nVisibleTableColumns.defaultProps = {\n hiddenColumnNames: []\n};\n\n/** @internal */\nvar OrderedTableColumns = function (_a) {\n var order = _a.order;\n var columnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return orderedColumns(tableColumns, order);\n };\n return createElement(Plugin, null, createElement(Getter, {\n name: \"tableColumns\",\n computed: columnsComputed\n }));\n};\nOrderedTableColumns.defaultProps = {\n order: []\n};\nvar GridCore = /*#__PURE__*/function (_super) {\n __extends(GridCore, _super);\n function GridCore() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridCore.prototype.render = function () {\n var _a = this.props,\n Root = _a.rootComponent,\n restProps = __rest(_a, [\"rootComponent\"]);\n return createElement(Plugin, null, createElement(Getter, {\n name: \"skip\",\n value: 0\n }), createElement(Getter, {\n name: \"loadedRowsStart\",\n value: 0\n }), createElement(GridCoreGetters, __assign({}, restProps)), createElement(Template, {\n name: \"root\"\n }, createElement(Root, null, createElement(TemplatePlaceholder, {\n name: \"header\"\n }), createElement(TemplatePlaceholder, {\n name: \"body\"\n }), createElement(TemplatePlaceholder, {\n name: \"footer\"\n }))));\n };\n return GridCore;\n}(PureComponent);\nvar GridBase = function (_a) {\n var rows = _a.rows,\n columns = _a.columns,\n getRowId = _a.getRowId,\n getCellValue = _a.getCellValue,\n rootComponent = _a.rootComponent,\n children = _a.children;\n return createElement(PluginHost, null, createElement(GridCore, {\n rows: rows,\n columns: columns,\n getRowId: getRowId,\n getCellValue: getCellValue,\n rootComponent: rootComponent\n }), children);\n};\n/***\r\n * The Grid is a root container component designed to process and display data specified via\r\n * the `rows` property. You can configure columns using the `columns` property. The Grid's\r\n * functionality is implemented in several plugins specified as child components.\r\n * See the plugins concept for details.\r\n * */\nvar Grid = GridBase;\nvar pluginDependencies = [{\n name: 'TableColumnVisibility'\n}, {\n name: 'Toolbar'\n}];\nvar ColumnChooserBase = /*#__PURE__*/function (_super) {\n __extends(ColumnChooserBase, _super);\n function ColumnChooserBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n visible: false\n };\n _this.handleToggle = _this.handleToggle.bind(_this);\n _this.handleHide = _this.handleHide.bind(_this);\n _this.setButtonRef = _this.setButtonRef.bind(_this);\n return _this;\n }\n ColumnChooserBase.prototype.setButtonRef = function (button) {\n this.button = button;\n };\n ColumnChooserBase.prototype.handleToggle = function () {\n var visible = this.state.visible;\n this.setState({\n visible: !visible\n });\n };\n ColumnChooserBase.prototype.handleHide = function () {\n this.setState({\n visible: false\n });\n };\n ColumnChooserBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n Overlay = _a.overlayComponent,\n Container = _a.containerComponent,\n Item = _a.itemComponent,\n ToggleButton = _a.toggleButtonComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(messages);\n var visible = this.state.visible;\n return createElement(Plugin, {\n name: \"ColumnChooser\",\n dependencies: pluginDependencies\n }, createElement(Template, {\n name: \"toolbarContent\"\n }, createElement(TemplatePlaceholder, null), createElement(TemplateConnector, null, function (_a, _b) {\n var columns = _a.columns,\n hiddenColumnNames = _a.hiddenColumnNames,\n isColumnTogglingEnabled = _a.isColumnTogglingEnabled;\n var toggleColumnVisibility = _b.toggleColumnVisibility;\n return createElement(Fragment, null, createElement(ToggleButton, {\n buttonRef: _this.setButtonRef,\n onToggle: _this.handleToggle,\n getMessage: getMessage,\n active: visible\n }), createElement(Overlay, {\n visible: visible,\n target: _this.button,\n onHide: _this.handleHide\n }, createElement(Container, null, columnChooserItems(columns, hiddenColumnNames).map(function (item) {\n var columnName = item.column.name;\n var togglingEnabled = isColumnTogglingEnabled(columnName);\n return createElement(Item, {\n key: columnName,\n item: item,\n disabled: !togglingEnabled,\n onToggle: function () {\n return toggleColumnVisibility(columnName);\n }\n });\n }))));\n })));\n };\n ColumnChooserBase.defaultProps = {\n messages: {}\n };\n ColumnChooserBase.components = {\n overlayComponent: 'Overlay',\n containerComponent: 'Container',\n itemComponent: 'Item',\n toggleButtonComponent: 'ToggleButton'\n };\n return ColumnChooserBase;\n}(PureComponent);\n/***\r\n * The ColumnChooser plugin allows a user to toggle grid columns' visibility at runtime.\r\n * The column chooser lists columns with checkboxes that control a corresponding\r\n * column's visibility.\r\n * */\nvar ColumnChooser = ColumnChooserBase;\nvar columnExtensionValueGetter = function (columnExtensions, defaultValue) {\n return getColumnExtensionValueGetter(columnExtensions, 'filteringEnabled', defaultValue);\n};\nvar filterExpressionComputed = function (_a) {\n var filters = _a.filters,\n filterExpressionValue = _a.filterExpression;\n return filterExpression(filters, filterExpressionValue);\n};\nvar FilteringStateBase = /*#__PURE__*/function (_super) {\n __extends(FilteringStateBase, _super);\n function FilteringStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n filters: props.filters || props.defaultFilters\n };\n var stateHelper = createStateHelper(_this, {\n filters: function () {\n var onFiltersChange = _this.props.onFiltersChange;\n return onFiltersChange;\n }\n });\n _this.changeColumnFilter = stateHelper.applyFieldReducer.bind(stateHelper, 'filters', changeColumnFilter);\n return _this;\n }\n // tslint:disable-next-line:member-ordering\n FilteringStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.filters,\n filters = _a === void 0 ? prevState.filters : _a;\n return {\n filters: filters\n };\n };\n FilteringStateBase.prototype.render = function () {\n var filters = this.state.filters;\n var _a = this.props,\n columnExtensions = _a.columnExtensions,\n columnFilteringEnabled = _a.columnFilteringEnabled;\n return createElement(Plugin, {\n name: \"FilteringState\"\n }, createElement(Getter, {\n name: \"filters\",\n value: filters\n }), createElement(Getter, {\n name: \"filterExpression\",\n computed: filterExpressionComputed\n }), createElement(Getter, {\n name: \"isColumnFilteringEnabled\",\n value: columnExtensionValueGetter(columnExtensions, columnFilteringEnabled)\n }), createElement(Action, {\n name: \"changeColumnFilter\",\n action: this.changeColumnFilter\n }));\n };\n FilteringStateBase.defaultProps = {\n defaultFilters: [],\n columnFilteringEnabled: true\n };\n return FilteringStateBase;\n}(PureComponent);\n/** A plugin that manages the filtering state. */\nvar FilteringState = FilteringStateBase;\nvar pluginDependencies$1 = [{\n name: 'FilteringState',\n optional: true\n}, {\n name: 'SearchState',\n optional: true\n}];\nvar getCollapsedRowsComputed = function (_a) {\n var rows = _a.rows;\n return filteredCollapsedRowsGetter(rows);\n};\nvar unwrappedRowsComputed = function (_a) {\n var rows = _a.rows;\n return unwrappedFilteredRows(rows);\n};\nvar IntegratedFilteringBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedFilteringBase, _super);\n function IntegratedFilteringBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedFilteringBase.prototype.render = function () {\n var columnExtensions = this.props.columnExtensions;\n var getColumnPredicate = function (columnName) {\n return getColumnExtension(columnExtensions, columnName).predicate;\n };\n var rowsComputed = function (_a) {\n var rows = _a.rows,\n filterExpression = _a.filterExpression,\n getCellValue = _a.getCellValue,\n getRowLevelKey = _a.getRowLevelKey,\n getCollapsedRows = _a.getCollapsedRows;\n return filteredRows(rows, filterExpression, getCellValue, getColumnPredicate, getRowLevelKey, getCollapsedRows);\n };\n return createElement(Plugin, {\n name: \"IntegratedFiltering\",\n dependencies: pluginDependencies$1\n }, createElement(Getter, {\n name: \"rows\",\n computed: rowsComputed\n }), createElement(Getter, {\n name: \"getCollapsedRows\",\n computed: getCollapsedRowsComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: unwrappedRowsComputed\n }));\n };\n return IntegratedFilteringBase;\n}(PureComponent);\nIntegratedFilteringBase.defaultPredicate = defaultFilterPredicate;\nvar IntegratedFiltering = IntegratedFilteringBase;\nvar columnExtensionValueGetter$1 = function (columnExtensions, defaultValue) {\n return getColumnExtensionValueGetter(columnExtensions, 'editingEnabled', defaultValue);\n};\nvar EditingStateBase = /*#__PURE__*/function (_super) {\n __extends(EditingStateBase, _super);\n function EditingStateBase(props) {\n var _this = _super.call(this, props) || this;\n var rowChanges = props.rowChanges || props.defaultRowChanges;\n var addedRows = props.addedRows || props.defaultAddedRows;\n var getRowChanges = function () {\n var stateRowChanges = _this.state.rowChanges;\n return stateRowChanges;\n };\n var getAddedRows = function () {\n var stateAddedRows = _this.state.addedRows;\n return stateAddedRows;\n };\n _this.state = {\n addedRows: addedRows,\n rowChanges: rowChanges,\n editingRowIds: props.editingRowIds || props.defaultEditingRowIds,\n deletedRowIds: props.deletedRowIds || props.defaultDeletedRowIds,\n editingCells: props.editingCells || props.defaultEditingCells\n };\n var stateHelper = createStateHelper(_this, {\n editingRowIds: function () {\n var onEditingRowIdsChange = _this.props.onEditingRowIdsChange;\n return onEditingRowIdsChange;\n },\n editingCells: function () {\n var onEditingCellsChange = _this.props.onEditingCellsChange;\n return onEditingCellsChange;\n },\n addedRows: function () {\n var onAddedRowsChange = _this.props.onAddedRowsChange;\n return onAddedRowsChange;\n },\n rowChanges: function () {\n var onRowChangesChange = _this.props.onRowChangesChange;\n return onRowChangesChange;\n },\n deletedRowIds: function () {\n var onDeletedRowIdsChange = _this.props.onDeletedRowIdsChange;\n return onDeletedRowIdsChange;\n }\n });\n _this.startEditRows = stateHelper.applyFieldReducer.bind(stateHelper, 'editingRowIds', startEditRows);\n _this.stopEditRows = stateHelper.applyFieldReducer.bind(stateHelper, 'editingRowIds', stopEditRows);\n _this.startEditCells = stateHelper.applyFieldReducer.bind(stateHelper, 'editingCells', startEditCells);\n _this.stopEditCells = stateHelper.applyFieldReducer.bind(stateHelper, 'editingCells', stopEditCells);\n _this.changeRow = stateHelper.applyFieldReducer.bind(stateHelper, 'rowChanges', changeRow);\n _this.cancelChangedRows = stateHelper.applyFieldReducer.bind(stateHelper, 'rowChanges', cancelChanges);\n _this.commitChangedRows = function (_a) {\n var rowIds = _a.rowIds;\n var onCommitChanges = _this.props.onCommitChanges;\n onCommitChanges({\n changed: changedRowsByIds(getRowChanges(), rowIds)\n });\n _this.cancelChangedRows({\n rowIds: rowIds\n });\n };\n _this.addRow = stateHelper.applyFieldReducer.bind(stateHelper, 'addedRows', addRow);\n _this.changeAddedRow = stateHelper.applyFieldReducer.bind(stateHelper, 'addedRows', changeAddedRow);\n _this.cancelAddedRows = stateHelper.applyFieldReducer.bind(stateHelper, 'addedRows', cancelAddedRows);\n _this.commitAddedRows = function (_a) {\n var rowIds = _a.rowIds;\n var onCommitChanges = _this.props.onCommitChanges;\n onCommitChanges({\n added: addedRowsByIds(getAddedRows(), rowIds)\n });\n _this.cancelAddedRows({\n rowIds: rowIds\n });\n };\n _this.deleteRows = stateHelper.applyFieldReducer.bind(stateHelper, 'deletedRowIds', deleteRows);\n _this.cancelDeletedRows = stateHelper.applyFieldReducer.bind(stateHelper, 'deletedRowIds', cancelDeletedRows);\n _this.commitDeletedRows = function (_a) {\n var rowIds = _a.rowIds;\n var onCommitChanges = _this.props.onCommitChanges;\n onCommitChanges({\n deleted: rowIds\n });\n _this.cancelDeletedRows({\n rowIds: rowIds\n });\n };\n return _this;\n }\n EditingStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.editingRowIds,\n editingRowIds = _a === void 0 ? prevState.editingRowIds : _a,\n _b = nextProps.editingCells,\n editingCells = _b === void 0 ? prevState.editingCells : _b,\n _c = nextProps.rowChanges,\n rowChanges = _c === void 0 ? prevState.rowChanges : _c,\n _d = nextProps.addedRows,\n addedRows = _d === void 0 ? prevState.addedRows : _d,\n _e = nextProps.deletedRowIds,\n deletedRowIds = _e === void 0 ? prevState.deletedRowIds : _e;\n return {\n editingRowIds: editingRowIds,\n editingCells: editingCells,\n rowChanges: rowChanges,\n addedRows: addedRows,\n deletedRowIds: deletedRowIds\n };\n };\n EditingStateBase.prototype.render = function () {\n var _a = this.props,\n createRowChange = _a.createRowChange,\n columnExtensions = _a.columnExtensions,\n columnEditingEnabled = _a.columnEditingEnabled;\n var _b = this.state,\n editingRowIds = _b.editingRowIds,\n editingCells = _b.editingCells,\n rowChanges = _b.rowChanges,\n addedRows = _b.addedRows,\n deletedRowIds = _b.deletedRowIds;\n return createElement(Plugin, {\n name: \"EditingState\"\n }, createElement(Getter, {\n name: \"createRowChange\",\n value: createRowChangeGetter(createRowChange, columnExtensions)\n }), createElement(Getter, {\n name: \"editingRowIds\",\n value: editingRowIds\n }), createElement(Action, {\n name: \"startEditRows\",\n action: this.startEditRows\n }), createElement(Action, {\n name: \"stopEditRows\",\n action: this.stopEditRows\n }), createElement(Getter, {\n name: \"editingCells\",\n value: editingCells\n }), createElement(Action, {\n name: \"startEditCells\",\n action: this.startEditCells\n }), createElement(Action, {\n name: \"stopEditCells\",\n action: this.stopEditCells\n }), createElement(Getter, {\n name: \"rowChanges\",\n value: rowChanges\n }), createElement(Action, {\n name: \"changeRow\",\n action: this.changeRow\n }), createElement(Action, {\n name: \"cancelChangedRows\",\n action: this.cancelChangedRows\n }), createElement(Action, {\n name: \"commitChangedRows\",\n action: this.commitChangedRows\n }), createElement(Getter, {\n name: \"addedRows\",\n value: addedRows\n }), createElement(Action, {\n name: \"addRow\",\n action: this.addRow\n }), createElement(Action, {\n name: \"changeAddedRow\",\n action: this.changeAddedRow\n }), createElement(Action, {\n name: \"cancelAddedRows\",\n action: this.cancelAddedRows\n }), createElement(Action, {\n name: \"commitAddedRows\",\n action: this.commitAddedRows\n }), createElement(Getter, {\n name: \"deletedRowIds\",\n value: deletedRowIds\n }), createElement(Action, {\n name: \"deleteRows\",\n action: this.deleteRows\n }), createElement(Action, {\n name: \"cancelDeletedRows\",\n action: this.cancelDeletedRows\n }), createElement(Action, {\n name: \"commitDeletedRows\",\n action: this.commitDeletedRows\n }), createElement(Getter, {\n name: \"isColumnEditingEnabled\",\n value: columnExtensionValueGetter$1(columnExtensions, columnEditingEnabled)\n }));\n };\n EditingStateBase.defaultProps = {\n columnEditingEnabled: true,\n defaultEditingRowIds: [],\n defaultEditingCells: [],\n defaultRowChanges: {},\n defaultAddedRows: [],\n defaultDeletedRowIds: []\n };\n return EditingStateBase;\n}(PureComponent);\n/***\r\n * A plugin that manages grid rows' editing state. It arranges grid rows\r\n * by different lists depending on a row's state.\r\n * */\nvar EditingState = EditingStateBase;\nvar PagingStateBase = /*#__PURE__*/function (_super) {\n __extends(PagingStateBase, _super);\n function PagingStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n currentPage: props.currentPage || props.defaultCurrentPage,\n pageSize: props.pageSize !== undefined ? props.pageSize : props.defaultPageSize\n };\n var stateHelper = createStateHelper(_this, {\n currentPage: function () {\n var onCurrentPageChange = _this.props.onCurrentPageChange;\n return onCurrentPageChange;\n },\n pageSize: function () {\n var onPageSizeChange = _this.props.onPageSizeChange;\n return onPageSizeChange;\n }\n });\n _this.setCurrentPage = stateHelper.applyFieldReducer.bind(stateHelper, 'currentPage', setCurrentPage);\n _this.setPageSize = stateHelper.applyFieldReducer.bind(stateHelper, 'pageSize', setPageSize);\n return _this;\n }\n PagingStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.currentPage,\n currentPage = _a === void 0 ? prevState.currentPage : _a,\n _b = nextProps.pageSize,\n pageSize = _b === void 0 ? prevState.pageSize : _b;\n return {\n currentPage: currentPage,\n pageSize: pageSize\n };\n };\n PagingStateBase.prototype.render = function () {\n var _a = this.state,\n pageSize = _a.pageSize,\n currentPage = _a.currentPage;\n return createElement(Plugin, {\n name: \"PagingState\"\n }, createElement(Getter, {\n name: \"currentPage\",\n value: currentPage\n }), createElement(Getter, {\n name: \"pageSize\",\n value: pageSize\n }), createElement(Action, {\n name: \"setCurrentPage\",\n action: this.setCurrentPage\n }), createElement(Action, {\n name: \"setPageSize\",\n action: this.setPageSize\n }));\n };\n PagingStateBase.defaultProps = {\n defaultPageSize: 10,\n defaultCurrentPage: 0\n };\n return PagingStateBase;\n}(PureComponent);\n/***\r\n * A plugin that manages the paging state. It controls the total page count depending on the\r\n * total row count and the specified page size, controls the currently selected page number\r\n * and changes it in response to the corresponding actions.\r\n * */\nvar PagingState = PagingStateBase;\nvar pluginDependencies$2 = [{\n name: 'PagingState'\n}];\nvar rowsWithHeadersComputed = function (_a) {\n var rows = _a.rows,\n pageSize = _a.pageSize,\n getRowLevelKey = _a.getRowLevelKey;\n return rowsWithPageHeaders(rows, pageSize, getRowLevelKey);\n};\nvar totalCountComputed = function (_a) {\n var rows = _a.rows;\n return rowCount(rows);\n};\nvar paginatedRowsComputed = function (_a) {\n var rows = _a.rows,\n pageSize = _a.pageSize,\n page = _a.currentPage;\n return paginatedRows(rows, pageSize, page);\n};\nvar currentPageComputed = function (_a, _b) {\n var page = _a.currentPage,\n totalCount = _a.totalCount,\n pageSize = _a.pageSize;\n var setCurrentPage = _b.setCurrentPage;\n return currentPage(page, totalCount, pageSize, setCurrentPage);\n};\n// eslint-disable-next-line react/prefer-stateless-function\nvar IntegratedPagingBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedPagingBase, _super);\n function IntegratedPagingBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedPagingBase.prototype.render = function () {\n return createElement(Plugin, {\n name: \"IntegratedPaging\",\n dependencies: pluginDependencies$2\n }, createElement(Getter, {\n name: \"rows\",\n computed: rowsWithHeadersComputed\n }), createElement(Getter, {\n name: \"totalCount\",\n computed: totalCountComputed\n }), createElement(Getter, {\n name: \"currentPage\",\n computed: currentPageComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: paginatedRowsComputed\n }));\n };\n return IntegratedPagingBase;\n}(PureComponent);\n/***\r\n * A plugin that performs built-in data paging. It also changes the current page if the provided\r\n * one cannot be applied due to fewer available pages.\r\n * */\nvar IntegratedPaging = IntegratedPagingBase;\nvar pluginDependencies$3 = [{\n name: 'PagingState'\n}];\nvar CustomPagingBase = /*#__PURE__*/function (_super) {\n __extends(CustomPagingBase, _super);\n function CustomPagingBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomPagingBase.prototype.render = function () {\n var totalCount = this.props.totalCount;\n return createElement(Plugin, {\n name: \"CustomPaging\",\n dependencies: pluginDependencies$3\n }, createElement(Getter, {\n name: \"totalCount\",\n value: totalCount\n }));\n };\n CustomPagingBase.defaultProps = {\n totalCount: 0\n };\n return CustomPagingBase;\n}(PureComponent);\n/** A plugin that allows implementing a custom totalCount calculation logic. */\nvar CustomPaging = CustomPagingBase;\nvar dependencies = [{\n name: 'SortingState',\n optional: true\n}];\nvar columnExtensionValueGetter$2 = function (columnExtensions, defaultValue) {\n return getColumnExtensionValueGetter(columnExtensions, 'groupingEnabled', defaultValue);\n};\nvar GroupingStateBase = /*#__PURE__*/function (_super) {\n __extends(GroupingStateBase, _super);\n function GroupingStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n grouping: props.grouping || props.defaultGrouping,\n draftGrouping: null,\n expandedGroups: props.expandedGroups || props.defaultExpandedGroups\n };\n _this.stateHelper = createStateHelper(_this, {\n grouping: function () {\n var onGroupingChange = _this.props.onGroupingChange;\n return onGroupingChange;\n },\n expandedGroups: function () {\n var onExpandedGroupsChange = _this.props.onExpandedGroupsChange;\n return onExpandedGroupsChange;\n }\n });\n _this.changeColumnGrouping = _this.changeColumnGrouping.bind(_this);\n _this.toggleGroupExpanded = _this.stateHelper.applyReducer.bind(_this.stateHelper, toggleExpandedGroups);\n _this.draftColumnGrouping = _this.stateHelper.applyReducer.bind(_this.stateHelper, draftColumnGrouping);\n _this.cancelColumnGroupingDraft = _this.stateHelper.applyReducer.bind(_this.stateHelper, cancelColumnGroupingDraft);\n _this.changeColumnSorting = _this.changeColumnSorting.bind(_this);\n return _this;\n }\n GroupingStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.grouping,\n grouping = _a === void 0 ? prevState.grouping : _a,\n _b = nextProps.expandedGroups,\n expandedGroups = _b === void 0 ? prevState.expandedGroups : _b;\n return {\n grouping: grouping,\n expandedGroups: expandedGroups\n };\n };\n GroupingStateBase.prototype.changeColumnSorting = function (_a, _b, _c) {\n var sorting = _b.sorting;\n var changeColumnSorting = _c.changeColumnSorting;\n var columnName = _a.columnName,\n keepOther = _a.keepOther,\n restParams = __rest(_a, [\"columnName\", \"keepOther\"]);\n var grouping = this.state.grouping;\n var groupingIndex = grouping.findIndex(function (columnGrouping) {\n return columnGrouping.columnName === columnName;\n });\n if (groupingIndex === -1) {\n changeColumnSorting(__assign({\n columnName: columnName,\n keepOther: keepOther || grouping.map(function (columnGrouping) {\n return columnGrouping.columnName;\n })\n }, restParams));\n return false;\n }\n var sortIndex = adjustSortIndex(groupingIndex, grouping, sorting);\n changeColumnSorting(__assign({\n columnName: columnName,\n sortIndex: sortIndex,\n keepOther: true\n }, restParams));\n return false;\n };\n GroupingStateBase.prototype.changeColumnGrouping = function (_a, getters, actions) {\n var columnName = _a.columnName,\n groupIndex = _a.groupIndex;\n this.stateHelper.applyReducer(changeColumnGrouping, {\n columnName: columnName,\n groupIndex: groupIndex\n }, function (nextState, state) {\n var grouping = nextState.grouping;\n var prevGrouping = state.grouping;\n var sorting = getters.sorting;\n var changeColumnSorting = actions.changeColumnSorting;\n if (!sorting) return;\n var columnSortingIndex = sorting.findIndex(function (columnSorting) {\n return columnSorting.columnName === columnName;\n });\n var prevGroupingIndex = prevGrouping.findIndex(function (columnGrouping) {\n return columnGrouping.columnName === columnName;\n });\n var groupingIndex = grouping.findIndex(function (columnGrouping) {\n return columnGrouping.columnName === columnName;\n });\n if (columnSortingIndex === -1 || prevGroupingIndex === prevGrouping.length - 1 && groupingIndex === -1) return;\n var sortIndex = adjustSortIndex(groupingIndex === -1 ? grouping.length : groupingIndex, grouping, sorting);\n if (columnSortingIndex === sortIndex) return;\n changeColumnSorting(__assign({\n sortIndex: sortIndex,\n keepOther: true\n }, sorting[columnSortingIndex]));\n });\n };\n GroupingStateBase.prototype.render = function () {\n var _a = this.state,\n grouping = _a.grouping,\n draftGrouping = _a.draftGrouping,\n expandedGroups = _a.expandedGroups;\n var _b = this.props,\n columnExtensions = _b.columnExtensions,\n columnGroupingEnabled = _b.columnGroupingEnabled;\n return createElement(Plugin, {\n name: \"GroupingState\",\n dependencies: dependencies\n }, createElement(Getter, {\n name: \"grouping\",\n value: grouping\n }), createElement(Getter, {\n name: \"draftGrouping\",\n value: draftGrouping || grouping\n }), createElement(Getter, {\n name: \"isColumnGroupingEnabled\",\n value: columnExtensionValueGetter$2(columnExtensions, columnGroupingEnabled)\n }), createElement(Action, {\n name: \"changeColumnGrouping\",\n action: this.changeColumnGrouping\n }), createElement(Action, {\n name: \"draftColumnGrouping\",\n action: this.draftColumnGrouping\n }), createElement(Action, {\n name: \"cancelColumnGroupingDraft\",\n action: this.cancelColumnGroupingDraft\n }), createElement(Getter, {\n name: \"expandedGroups\",\n value: expandedGroups\n }), createElement(Action, {\n name: \"toggleGroupExpanded\",\n action: this.toggleGroupExpanded\n }), createElement(Action, {\n name: \"changeColumnSorting\",\n action: this.changeColumnSorting\n }));\n };\n GroupingStateBase.defaultProps = {\n defaultGrouping: [],\n defaultExpandedGroups: [],\n columnGroupingEnabled: true\n };\n return GroupingStateBase;\n}(PureComponent);\n/***\r\n * A plugin that manages the grouping state. It lists columns used for grouping and stores\r\n * information about expanded/collapsed groups.\r\n * */\nvar GroupingState = GroupingStateBase;\nvar pluginDependencies$4 = [{\n name: 'GroupingState'\n}];\nvar getCollapsedRowsComputed$1 = function (_a) {\n var getCollapsedRows = _a.getCollapsedRows;\n return groupCollapsedRowsGetter(getCollapsedRows);\n};\nvar expandedGroupedRowsComputed = function (_a) {\n var rows = _a.rows,\n grouping = _a.grouping,\n expandedGroups = _a.expandedGroups,\n isExporting = _a.isExporting;\n return expandedGroupRows(rows, grouping, expandedGroups, isExporting);\n};\nvar IntegratedGroupingBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedGroupingBase, _super);\n function IntegratedGroupingBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedGroupingBase.prototype.render = function () {\n var columnExtensions = this.props.columnExtensions;\n var getColumnCriteria = function (columnName) {\n return getColumnExtension(columnExtensions, columnName).criteria;\n };\n var groupedRowsComputed = function (_a) {\n var rows = _a.rows,\n grouping = _a.grouping,\n getCellValue = _a.getCellValue;\n return groupedRows(rows, grouping, getCellValue, getColumnCriteria);\n };\n return createElement(Plugin, {\n name: \"IntegratedGrouping\",\n dependencies: pluginDependencies$4\n }, createElement(Getter, {\n name: \"isGroupRow\",\n value: groupRowChecker\n }), createElement(Getter, {\n name: \"getRowLevelKey\",\n value: groupRowLevelKeyGetter\n }), createElement(Getter, {\n name: \"getCollapsedRows\",\n computed: getCollapsedRowsComputed$1\n }), createElement(Getter, {\n name: \"rows\",\n computed: groupedRowsComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: expandedGroupedRowsComputed\n }));\n };\n return IntegratedGroupingBase;\n}(PureComponent);\n/* tslint:disable: max-line-length */\n/** A plugin that performs built-in grouping and group expanding/collapsing. */\nvar IntegratedGrouping = IntegratedGroupingBase;\n/* tslint:enable: max-line-length */\n\nvar pluginDependencies$5 = [{\n name: 'GroupingState'\n}];\nvar getCollapsedRowsComputed$2 = function (_a) {\n var getCollapsedRows = _a.getCollapsedRows;\n return groupCollapsedRowsGetter(getCollapsedRows);\n};\nvar expandedGroupedRowsComputed$1 = function (_a) {\n var rows = _a.rows,\n grouping = _a.grouping,\n expandedGroups = _a.expandedGroups,\n isExporting = _a.isExporting;\n return expandedGroupRows(rows, grouping, expandedGroups, isExporting);\n};\nvar getRowIdComputed = function (_a) {\n var getRowId = _a.getRowId,\n rows = _a.rows;\n return customGroupingRowIdGetter(getRowId, rows);\n};\nvar CustomGroupingBase = /*#__PURE__*/function (_super) {\n __extends(CustomGroupingBase, _super);\n function CustomGroupingBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomGroupingBase.prototype.render = function () {\n var _a = this.props,\n getChildGroups = _a.getChildGroups,\n appliedGrouping = _a.grouping,\n appliedExpandedGroups = _a.expandedGroups;\n var groupedRowsComputed = function (_a) {\n var rows = _a.rows,\n grouping = _a.grouping;\n return customGroupedRows(rows, grouping, getChildGroups);\n };\n return createElement(Plugin, {\n name: \"CustomGrouping\",\n dependencies: pluginDependencies$5\n }, appliedGrouping && createElement(Getter, {\n name: \"grouping\",\n value: appliedGrouping\n }), appliedExpandedGroups && createElement(Getter, {\n name: \"expandedGroups\",\n value: appliedExpandedGroups\n }), createElement(Getter, {\n name: \"isGroupRow\",\n value: groupRowChecker\n }), createElement(Getter, {\n name: \"getRowLevelKey\",\n value: groupRowLevelKeyGetter\n }), createElement(Getter, {\n name: \"getCollapsedRows\",\n computed: getCollapsedRowsComputed$2\n }), createElement(Getter, {\n name: \"rows\",\n computed: groupedRowsComputed\n }), createElement(Getter, {\n name: \"getRowId\",\n computed: getRowIdComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: expandedGroupedRowsComputed$1\n }));\n };\n return CustomGroupingBase;\n}(PureComponent);\n// tslint:disable-next-line: max-line-length\n/** A plugin that converts custom formatted grouped data to a supported format and performs local group expanding/collapsing. */\nvar CustomGrouping = CustomGroupingBase;\nvar SelectionStateBase = /*#__PURE__*/function (_super) {\n __extends(SelectionStateBase, _super);\n function SelectionStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n selection: props.selection || props.defaultSelection\n };\n var stateHelper = createStateHelper(_this, {\n selection: function () {\n var onSelectionChange = _this.props.onSelectionChange;\n return onSelectionChange;\n }\n });\n _this.toggleSelection = stateHelper.applyFieldReducer.bind(stateHelper, 'selection', toggleSelection);\n return _this;\n }\n SelectionStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.selection,\n selection = _a === void 0 ? prevState.selection : _a;\n return {\n selection: selection\n };\n };\n SelectionStateBase.prototype.render = function () {\n var selection = this.state.selection;\n return createElement(Plugin, {\n name: \"SelectionState\"\n }, createElement(Getter, {\n name: \"selection\",\n value: selection\n }), createElement(Action, {\n name: \"toggleSelection\",\n action: this.toggleSelection\n }));\n };\n SelectionStateBase.defaultProps = {\n defaultSelection: []\n };\n return SelectionStateBase;\n}(PureComponent);\n/** A plugin that manages the selection state. */\nvar SelectionState = SelectionStateBase;\nvar rowsWithAvailableToSelectComputed = function (_a) {\n var rows = _a.rows,\n getRowId = _a.getRowId,\n isGroupRow = _a.isGroupRow;\n return rowsWithAvailableToSelect(rows, getRowId, isGroupRow);\n};\nvar allSelectedComputed = function (_a) {\n var rows = _a.rows,\n selection = _a.selection;\n return allSelected(rows, selection);\n};\nvar someSelectedComputed = function (_a) {\n var rows = _a.rows,\n selection = _a.selection;\n return someSelected(rows, selection);\n};\nvar selectAllAvailableComputed = function (_a) {\n var availableToSelect = _a.rows.availableToSelect;\n return !!availableToSelect.length;\n};\nvar toggleSelectAll = function (state, _a, _b) {\n var availableToSelect = _a.rows.availableToSelect;\n var toggleSelection = _b.toggleSelection;\n toggleSelection({\n state: state,\n rowIds: availableToSelect\n });\n};\nvar unwrapRowsComputed = function (_a) {\n var rows = _a.rows;\n return unwrapSelectedRows(rows);\n};\nvar pluginDependencies$6 = [{\n name: 'SelectionState'\n}];\n// eslint-disable-next-line react/prefer-stateless-function\nvar IntegratedSelectionBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedSelectionBase, _super);\n function IntegratedSelectionBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedSelectionBase.prototype.render = function () {\n return createElement(Plugin, {\n name: \"IntegratedSelection\",\n dependencies: pluginDependencies$6\n }, createElement(Getter, {\n name: \"rows\",\n computed: rowsWithAvailableToSelectComputed\n }), createElement(Getter, {\n name: \"allSelected\",\n computed: allSelectedComputed\n }), createElement(Getter, {\n name: \"someSelected\",\n computed: someSelectedComputed\n }), createElement(Getter, {\n name: \"selectAllAvailable\",\n computed: selectAllAvailableComputed\n }), createElement(Action, {\n name: \"toggleSelectAll\",\n action: toggleSelectAll\n }), createElement(Getter, {\n name: \"rows\",\n computed: unwrapRowsComputed\n }));\n };\n return IntegratedSelectionBase;\n}(PureComponent);\n/* tslint:disable: max-line-length */\n/** A plugin that performs built-in selection. */\nvar IntegratedSelection = IntegratedSelectionBase;\n/* tslint:enable: max-line-length */\n\nvar columnExtensionValueGetter$3 = function (columnExtensions, defaultValue) {\n return getColumnExtensionValueGetter(columnExtensions, 'sortingEnabled', defaultValue);\n};\nvar SortingStateBase = /*#__PURE__*/function (_super) {\n __extends(SortingStateBase, _super);\n function SortingStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n sorting: props.sorting || props.defaultSorting\n };\n var stateHelper = createStateHelper(_this, {\n sorting: function () {\n var onSortingChange = _this.props.onSortingChange;\n return onSortingChange;\n }\n });\n _this.changeColumnSorting = stateHelper.applyReducer.bind(stateHelper, function (prevState, payload) {\n var _a = _this.props.sorting,\n sorting = _a === void 0 ? prevState.sorting : _a;\n var persistentSortedColumns = getPersistentSortedColumns(sorting, props.columnExtensions);\n var keepOther = calculateKeepOther(prevState.sorting, payload.keepOther, persistentSortedColumns);\n return changeColumnSorting(prevState, __assign(__assign({}, payload), {\n keepOther: keepOther\n }));\n });\n return _this;\n }\n SortingStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.sorting,\n sorting = _a === void 0 ? prevState.sorting : _a;\n return {\n sorting: sorting\n };\n };\n SortingStateBase.prototype.render = function () {\n var sorting = this.state.sorting;\n var _a = this.props,\n columnExtensions = _a.columnExtensions,\n columnSortingEnabled = _a.columnSortingEnabled;\n return createElement(Plugin, {\n name: \"SortingState\"\n }, createElement(Getter, {\n name: \"sorting\",\n value: sorting\n }), createElement(Getter, {\n name: \"isColumnSortingEnabled\",\n value: columnExtensionValueGetter$3(columnExtensions, columnSortingEnabled)\n }), createElement(Action, {\n name: \"changeColumnSorting\",\n action: this.changeColumnSorting\n }));\n };\n SortingStateBase.defaultProps = {\n defaultSorting: [],\n columnSortingEnabled: true\n };\n return SortingStateBase;\n}(PureComponent);\n// tslint:disable-next-line: max-line-length\n/** A plugin that manages the sorting state. It controls the list of columns that participate in sorting. */\nvar SortingState = SortingStateBase;\nvar pluginDependencies$7 = [{\n name: 'SortingState'\n}];\nvar IntegratedSortingBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedSortingBase, _super);\n function IntegratedSortingBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedSortingBase.prototype.render = function () {\n var columnExtensions = this.props.columnExtensions;\n var getColumnCompare = function (columnName) {\n return getColumnExtension(columnExtensions, columnName).compare;\n };\n var rowsComputed = function (_a) {\n var rows = _a.rows,\n sorting = _a.sorting,\n getCellValue = _a.getCellValue,\n isGroupRow = _a.isGroupRow,\n getRowLevelKey = _a.getRowLevelKey;\n return sortedRows(rows, sorting, getCellValue, getColumnCompare, isGroupRow, getRowLevelKey);\n };\n return createElement(Plugin, {\n name: \"IntegratedSorting\",\n dependencies: pluginDependencies$7\n }, createElement(Getter, {\n name: \"rows\",\n computed: rowsComputed\n }));\n };\n return IntegratedSortingBase;\n}(PureComponent);\n/** A plugin that performs built-in data sorting. */\nvar IntegratedSorting = IntegratedSortingBase;\nvar getTargetColumns = function (payload, columns) {\n return payload.filter(function (item) {\n return item.type === 'column';\n }).map(function (item) {\n return columns.find(function (column) {\n return column.name === item.columnName;\n });\n });\n};\n// tslint:disable-next-line: max-line-length\nvar DragDropProviderBase = /*#__PURE__*/function (_super) {\n __extends(DragDropProviderBase, _super);\n function DragDropProviderBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n payload: null,\n clientOffset: null\n };\n _this.change = function (_a) {\n var payload = _a.payload,\n clientOffset = _a.clientOffset;\n return _this.setState({\n payload: payload,\n clientOffset: clientOffset\n });\n };\n return _this;\n }\n DragDropProviderBase.prototype.componentDidMount = function () {\n this.bodyRef = document.body;\n };\n DragDropProviderBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n Container = _a.containerComponent,\n Column = _a.columnComponent;\n var _b = this.state,\n payload = _b.payload,\n clientOffset = _b.clientOffset;\n return createElement(Plugin, {\n name: \"DragDropProvider\"\n }, createElement(Getter, {\n name: \"draggingEnabled\",\n value: true\n }), createElement(Template, {\n name: \"root\"\n }, createElement(DragDropProvider$1, {\n onChange: this.change\n }, createElement(TemplatePlaceholder, null)), payload && createElement(TemplateConnector, null, function (_a) {\n var columns = _a.columns;\n return createPortal(createElement(Container, {\n clientOffset: clientOffset\n }, getTargetColumns(payload, columns).map(function (column) {\n return createElement(Column, {\n key: column.name,\n column: column\n });\n })), _this.bodyRef);\n })));\n };\n DragDropProviderBase.components = {\n containerComponent: 'Container',\n columnComponent: 'Column'\n };\n return DragDropProviderBase;\n}(PureComponent);\n// tslint:disable-next-line: max-line-length\n/** A plugin that implements the drag-and-drop functionality and visualizes columns that are being dragged. */\nvar DragDropProvider = DragDropProviderBase;\nvar pluginDependencies$8 = [{\n name: 'Table'\n}, {\n name: 'DragDropProvider',\n optional: true\n}];\nvar tableHeaderRowsComputed = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows;\n return tableHeaderRowsWithReordering(tableHeaderRows);\n};\n// tslint:disable-next-line: max-line-length\nvar TableColumnReorderingRaw = /*#__PURE__*/function (_super) {\n __extends(TableColumnReorderingRaw, _super);\n function TableColumnReorderingRaw(props) {\n var _this = _super.call(this, props) || this;\n _this.cellDimensionGetters = {};\n _this.cellDimensions = [];\n _this.state = {\n order: props.defaultOrder,\n sourceColumnIndex: -1,\n targetColumnIndex: -1\n };\n _this.onOver = _this.handleOver.bind(_this);\n _this.onLeave = _this.handleLeave.bind(_this);\n _this.onDrop = _this.handleDrop.bind(_this);\n return _this;\n }\n TableColumnReorderingRaw.prototype.getState = function () {\n var orderState = this.state.order;\n var _a = this.props.order,\n order = _a === void 0 ? orderState : _a;\n return __assign(__assign({}, this.state), {\n order: order\n });\n };\n TableColumnReorderingRaw.prototype.getDraftOrder = function () {\n var _a = this.getState(),\n order = _a.order,\n sourceColumnIndex = _a.sourceColumnIndex,\n targetColumnIndex = _a.targetColumnIndex;\n return draftOrder(order, sourceColumnIndex, targetColumnIndex);\n };\n TableColumnReorderingRaw.prototype.getAvailableColumns = function () {\n var _this = this;\n return this.getDraftOrder().filter(function (columnName) {\n return !!_this.cellDimensionGetters[columnName];\n });\n };\n TableColumnReorderingRaw.prototype.cacheCellDimensions = function () {\n var _this = this;\n this.cellDimensions = this.cellDimensions && this.cellDimensions.length ? this.cellDimensions : this.getAvailableColumns().map(function (columnName) {\n return _this.cellDimensionGetters[columnName]();\n });\n };\n TableColumnReorderingRaw.prototype.resetCellDimensions = function () {\n this.cellDimensions = [];\n };\n TableColumnReorderingRaw.prototype.ensureCellDimensionGetters = function (tableColumns) {\n var _this = this;\n Object.keys(this.cellDimensionGetters).forEach(function (columnName) {\n var columnIndex = tableColumns.findIndex(function (_a) {\n var type = _a.type,\n column = _a.column;\n return type === TABLE_DATA_TYPE && column.name === columnName;\n });\n if (columnIndex === -1) {\n delete _this.cellDimensionGetters[columnName];\n }\n });\n };\n // tslint:disable-next-line: max-line-length\n TableColumnReorderingRaw.prototype.storeCellDimensionsGetter = function (tableColumn, getter, tableColumns) {\n if (tableColumn.type === TABLE_DATA_TYPE) {\n this.cellDimensionGetters[tableColumn.column.name] = getter;\n }\n this.ensureCellDimensionGetters(tableColumns);\n };\n TableColumnReorderingRaw.prototype.handleOver = function (_a) {\n var payload = _a.payload,\n x = _a.clientOffset.x;\n var sourceColumnName = payload[0].columnName;\n var availableColumns = this.getAvailableColumns();\n var relativeSourceColumnIndex = availableColumns.indexOf(sourceColumnName);\n if (relativeSourceColumnIndex === -1) return;\n this.cacheCellDimensions();\n var cellDimensions = this.cellDimensions;\n var relativeTargetIndex = getTableTargetColumnIndex(cellDimensions, x);\n if (relativeTargetIndex === -1) return;\n var _b = this.getState(),\n prevSourceColumnIndex = _b.sourceColumnIndex,\n prevTargetColumnIndex = _b.targetColumnIndex;\n var draftOrder = this.getDraftOrder();\n var targetColumnIndex = draftOrder.indexOf(availableColumns[relativeTargetIndex]);\n if (targetColumnIndex === prevTargetColumnIndex) return;\n var sourceColumnIndex = prevSourceColumnIndex === -1 ? draftOrder.indexOf(sourceColumnName) : prevSourceColumnIndex;\n this.setState({\n sourceColumnIndex: sourceColumnIndex,\n targetColumnIndex: targetColumnIndex\n });\n };\n TableColumnReorderingRaw.prototype.handleLeave = function () {\n this.setState({\n sourceColumnIndex: -1,\n targetColumnIndex: -1\n });\n this.resetCellDimensions();\n };\n TableColumnReorderingRaw.prototype.handleDrop = function () {\n var _a = this.getState(),\n sourceColumnIndex = _a.sourceColumnIndex,\n targetColumnIndex = _a.targetColumnIndex,\n order = _a.order;\n var onOrderChange = this.props.onOrderChange;\n if (sourceColumnIndex === -1 && targetColumnIndex === -1) return;\n var nextOrder = changeColumnOrder(order, {\n sourceColumnName: order[sourceColumnIndex],\n targetColumnName: order[targetColumnIndex]\n });\n this.setState({\n order: nextOrder,\n sourceColumnIndex: -1,\n targetColumnIndex: -1\n });\n if (onOrderChange) {\n onOrderChange(nextOrder);\n }\n this.resetCellDimensions();\n };\n TableColumnReorderingRaw.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n Container = _a.tableContainerComponent,\n Row = _a.rowComponent,\n Cell = _a.cellComponent;\n this.cellDimensionGetters = {};\n return createElement(Plugin, {\n name: \"TableColumnReordering\",\n dependencies: pluginDependencies$8\n }, createElement(OrderedTableColumns, {\n order: this.getDraftOrder()\n }), createElement(Getter, {\n name: \"tableHeaderRows\",\n computed: tableHeaderRowsComputed\n }), createElement(Template, {\n name: \"table\"\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var draggingEnabled = _a.draggingEnabled;\n return createElement(Container, __assign({}, params, {\n onOver: _this.onOver,\n onLeave: _this.onLeave,\n onDrop: _this.onDrop,\n draggingEnabled: draggingEnabled\n }), createElement(TemplatePlaceholder, null));\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return tableRow.type === TABLE_REORDERING_TYPE;\n }\n }, function (params) {\n return createElement(Row, __assign({}, params));\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return tableRow.type === TABLE_REORDERING_TYPE;\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns;\n return createElement(Cell, __assign({}, params, {\n getCellDimensions: function (getter) {\n return _this.storeCellDimensionsGetter(params.tableColumn, getter, tableColumns);\n }\n }));\n });\n }));\n };\n TableColumnReorderingRaw.defaultProps = {\n defaultOrder: []\n };\n TableColumnReorderingRaw.components = {\n tableContainerComponent: 'TableContainer',\n rowComponent: 'Row',\n cellComponent: 'Cell'\n };\n return TableColumnReorderingRaw;\n}(PureComponent);\nvar TableContainer = function (_a) {\n var onOver = _a.onOver,\n onLeave = _a.onLeave,\n onDrop = _a.onDrop,\n children = _a.children,\n draggingEnabled = _a.draggingEnabled;\n return draggingEnabled ? createElement(DropTarget, {\n onOver: onOver,\n onLeave: onLeave,\n onDrop: onDrop\n }, children) : children;\n};\n/** A plugin that manages the displayed columns' order. */\nvar TableColumnReordering = withComponents({\n TableContainer: TableContainer\n})(TableColumnReorderingRaw);\nvar RowPlaceholder = function (props) {\n return createElement(TemplatePlaceholder, {\n name: \"tableRow\",\n params: props\n });\n};\nvar CellPlaceholder = function (props) {\n return createElement(TemplatePlaceholder, {\n name: \"tableCell\",\n params: props\n });\n};\nvar tableHeaderRows = [];\nvar tableBodyRowsComputed = function (_a) {\n var rows = _a.rows,\n getRowId = _a.getRowId,\n isDataLoading = _a.isDataLoading;\n return tableRowsWithDataRows(rows, getRowId, isDataLoading);\n};\nvar tableFooterRows = [];\nvar defaultMessages = {\n noData: 'No data'\n};\nvar TableBase = /*#__PURE__*/function (_super) {\n __extends(TableBase, _super);\n function TableBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableBase.prototype.render = function () {\n var _a = this.props,\n Layout = _a.layoutComponent,\n Cell = _a.cellComponent,\n Row = _a.rowComponent,\n NoDataRow = _a.noDataRowComponent,\n NoDataCell = _a.noDataCellComponent,\n StubRow = _a.stubRowComponent,\n StubCell = _a.stubCellComponent,\n StubHeaderCell = _a.stubHeaderCellComponent,\n columnExtensions = _a.columnExtensions,\n messages = _a.messages,\n containerComponent = _a.containerComponent,\n tableComponent = _a.tableComponent,\n headComponent = _a.headComponent,\n bodyComponent = _a.bodyComponent,\n footerComponent = _a.footerComponent;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages), messages));\n return createElement(Plugin, {\n name: \"Table\"\n }, createElement(Getter, {\n name: \"tableHeaderRows\",\n value: tableHeaderRows\n }), createElement(Getter, {\n name: \"tableBodyRows\",\n computed: tableBodyRowsComputed\n }), createElement(Getter, {\n name: \"tableFooterRows\",\n value: tableFooterRows\n }), createElement(TableColumnsWithDataRowsGetter, {\n columnExtensions: columnExtensions\n }), createElement(Getter, {\n name: \"getTableCellColSpan\",\n value: tableCellColSpanGetter\n }), createElement(Template, {\n name: \"body\"\n }, createElement(TemplatePlaceholder, {\n name: \"table\"\n })), createElement(Template, {\n name: \"table\"\n }, createElement(TemplateConnector, null, function (_a) {\n var headerRows = _a.tableHeaderRows,\n bodyRows = _a.tableBodyRows,\n footerRows = _a.tableFooterRows,\n columns = _a.tableColumns,\n getTableCellColSpan = _a.getTableCellColSpan;\n return createElement(TemplatePlaceholder, {\n name: \"tableLayout\",\n params: {\n tableComponent: tableComponent,\n headComponent: headComponent,\n bodyComponent: bodyComponent,\n footerComponent: footerComponent,\n containerComponent: containerComponent,\n headerRows: headerRows,\n bodyRows: bodyRows,\n footerRows: footerRows,\n columns: columns,\n rowComponent: RowPlaceholder,\n cellComponent: CellPlaceholder,\n getCellColSpan: getTableCellColSpan\n }\n });\n })), createElement(Template, {\n name: \"tableLayout\"\n }, function (params) {\n return createElement(Layout, __assign({}, params));\n }), createElement(Template, {\n name: \"tableCell\"\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var headerRows = _a.tableHeaderRows;\n return isHeaderStubTableCell(params.tableRow, headerRows) ? createElement(StubHeaderCell, __assign({}, params)) : createElement(StubCell, __assign({}, params));\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isDataTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var getCellValue = _a.getCellValue;\n var columnName = params.tableColumn.column.name;\n var value = getCellValue(params.tableRow.row, columnName);\n return createElement(TemplatePlaceholder, {\n name: \"valueFormatter\",\n params: {\n value: value,\n row: params.tableRow.row,\n column: params.tableColumn.column\n }\n }, function (content) {\n return createElement(Cell, __assign({}, params, {\n row: params.tableRow.row,\n column: params.tableColumn.column,\n value: value\n }), content);\n });\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isNoDataTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns;\n if (isNoDataTableCell(params.tableColumn, tableColumns)) {\n return createElement(NoDataCell, __assign({}, params, {\n getMessage: getMessage\n }));\n }\n return null;\n });\n }), createElement(Template, {\n name: \"tableRow\"\n }, function (params) {\n return createElement(StubRow, __assign({}, params));\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isDataTableRow(tableRow);\n }\n }, function (params) {\n return createElement(Row, __assign({}, params, {\n row: params.tableRow.row\n }));\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isNoDataTableRow(tableRow);\n }\n }, function (params) {\n return createElement(NoDataRow, __assign({}, params));\n }));\n };\n TableBase.COLUMN_TYPE = TABLE_DATA_TYPE;\n TableBase.ROW_TYPE = TABLE_DATA_TYPE;\n TableBase.NODATA_ROW_TYPE = TABLE_NODATA_TYPE;\n TableBase.defaultProps = {\n messages: {}\n };\n TableBase.components = {\n tableComponent: 'Table',\n headComponent: 'TableHead',\n bodyComponent: 'TableBody',\n footerComponent: 'TableFooter',\n containerComponent: 'Container',\n layoutComponent: 'Layout',\n rowComponent: 'Row',\n cellComponent: 'Cell',\n noDataRowComponent: 'NoDataRow',\n noDataCellComponent: 'NoDataCell',\n stubRowComponent: 'StubRow',\n stubCellComponent: 'StubCell',\n stubHeaderCellComponent: 'StubHeaderCell'\n };\n return TableBase;\n}(PureComponent);\n/***\r\n * A plugin that renders Grid data as a table. This plugin enables you to customize\r\n * table rows and columns, and contains the Table Row and Table Cell components\r\n * that can be extended by other plugins\r\n * */\nvar Table = TableBase;\nvar TableSelectionBase = /*#__PURE__*/function (_super) {\n __extends(TableSelectionBase, _super);\n function TableSelectionBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableSelectionBase.prototype.render = function () {\n var _a = this.props,\n highlightRow = _a.highlightRow,\n selectByRowClick = _a.selectByRowClick,\n showSelectionColumn = _a.showSelectionColumn,\n showSelectAll = _a.showSelectAll,\n HeaderCell = _a.headerCellComponent,\n Cell = _a.cellComponent,\n Row = _a.rowComponent,\n selectionColumnWidth = _a.selectionColumnWidth;\n var tableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithSelection(tableColumns, selectionColumnWidth);\n };\n return createElement(Plugin, {\n name: \"TableSelection\",\n dependencies: [{\n name: 'Table'\n }, {\n name: 'SelectionState'\n }, {\n name: 'IntegratedSelection',\n optional: !showSelectAll\n }]\n }, showSelectionColumn && createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), highlightRow && createElement(Getter, {\n name: \"highlightSelectedRow\",\n value: true\n }), showSelectionColumn && showSelectAll && createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isSelectAllTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var selectAllAvailable = _a.selectAllAvailable,\n allSelected = _a.allSelected,\n someSelected = _a.someSelected;\n var toggleSelectAll = _b.toggleSelectAll;\n return createElement(HeaderCell, __assign({}, params, {\n disabled: !selectAllAvailable,\n allSelected: allSelected,\n someSelected: someSelected,\n onToggle: function (select) {\n return toggleSelectAll(select);\n }\n }));\n });\n }), showSelectionColumn && createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isSelectTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var selection = _a.selection;\n var toggleSelection = _b.toggleSelection;\n return createElement(Cell, __assign({}, params, {\n row: params.tableRow.row,\n selected: selection.indexOf(params.tableRow.rowId) !== -1,\n onToggle: function () {\n return toggleSelection({\n rowIds: [params.tableRow.rowId]\n });\n }\n }));\n });\n }), (highlightRow || selectByRowClick) && createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isDataTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var selection = _a.selection;\n var toggleSelection = _b.toggleSelection;\n return createElement(Row, __assign({}, params, {\n selectByRowClick: selectByRowClick,\n highlighted: isRowHighlighted(highlightRow, selection, params.tableRow),\n onToggle: function () {\n return toggleSelection({\n rowIds: [params.tableRow.rowId]\n });\n }\n }));\n });\n }));\n };\n TableSelectionBase.defaultProps = {\n highlightRow: false,\n selectByRowClick: false,\n showSelectAll: false,\n showSelectionColumn: true\n };\n TableSelectionBase.components = {\n rowComponent: 'Row',\n cellComponent: 'Cell',\n headerCellComponent: 'HeaderCell'\n };\n TableSelectionBase.COLUMN_TYPE = TABLE_SELECT_TYPE;\n return TableSelectionBase;\n}(PureComponent);\n/***\r\n * A plugin that visualizes table rows' selection state by rendering selection checkboxes\r\n * and highlighting the selected rows.\r\n * */\nvar TableSelection = TableSelectionBase;\n\n// tslint:disable-next-line: max-line-length\nvar RowDetailStateBase = /*#__PURE__*/function (_super) {\n __extends(RowDetailStateBase, _super);\n function RowDetailStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n expandedRowIds: props.expandedRowIds || props.defaultExpandedRowIds\n };\n var stateHelper = createStateHelper(_this, {\n expandedRowIds: function () {\n var onExpandedRowIdsChange = _this.props.onExpandedRowIdsChange;\n return onExpandedRowIdsChange;\n }\n });\n _this.toggleDetailRowExpanded = stateHelper.applyFieldReducer.bind(stateHelper, 'expandedRowIds', toggleDetailRowExpanded);\n return _this;\n }\n RowDetailStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.expandedRowIds,\n expandedRowIds = _a === void 0 ? prevState.expandedRowIds : _a;\n return {\n expandedRowIds: expandedRowIds\n };\n };\n RowDetailStateBase.prototype.render = function () {\n var expandedRowIds = this.state.expandedRowIds;\n return createElement(Plugin, {\n name: \"RowDetailState\"\n }, createElement(Getter, {\n name: \"expandedDetailRowIds\",\n value: expandedRowIds\n }), createElement(Action, {\n name: \"toggleDetailRowExpanded\",\n action: this.toggleDetailRowExpanded\n }));\n };\n RowDetailStateBase.defaultProps = {\n defaultExpandedRowIds: []\n };\n return RowDetailStateBase;\n}(PureComponent);\n/** A plugin that manages the expanded state for table row details. */\nvar RowDetailState = RowDetailStateBase;\nvar getCellColSpanComputed = function (_a) {\n var getTableCellColSpan = _a.getTableCellColSpan;\n return tableDetailCellColSpanGetter(getTableCellColSpan);\n};\nvar pluginDependencies$9 = [{\n name: 'RowDetailState'\n}, {\n name: 'Table'\n}];\nvar TableRowDetailBase = /*#__PURE__*/function (_super) {\n __extends(TableRowDetailBase, _super);\n function TableRowDetailBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableRowDetailBase.prototype.render = function () {\n var _a = this.props,\n rowHeight = _a.rowHeight,\n Content = _a.contentComponent,\n ToggleCell = _a.toggleCellComponent,\n Cell = _a.cellComponent,\n Row = _a.rowComponent,\n toggleColumnWidth = _a.toggleColumnWidth;\n var tableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithDetail(tableColumns, toggleColumnWidth);\n };\n var tableBodyRowsComputed = function (_a) {\n var tableBodyRows = _a.tableBodyRows,\n expandedDetailRowIds = _a.expandedDetailRowIds;\n return tableRowsWithExpandedDetail(tableBodyRows, expandedDetailRowIds, rowHeight);\n };\n return createElement(Plugin, {\n name: \"TableRowDetail\",\n dependencies: pluginDependencies$9\n }, createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), createElement(Getter, {\n name: \"tableBodyRows\",\n computed: tableBodyRowsComputed\n }), createElement(Getter, {\n name: \"getTableCellColSpan\",\n computed: getCellColSpanComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isDetailToggleTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var expandedDetailRowIds = _a.expandedDetailRowIds;\n var toggleDetailRowExpanded = _b.toggleDetailRowExpanded;\n return createElement(ToggleCell, __assign({}, params, {\n row: params.tableRow.row,\n expanded: isDetailRowExpanded(expandedDetailRowIds, params.tableRow.rowId),\n onToggle: function () {\n return toggleDetailRowExpanded({\n rowId: params.tableRow.rowId\n });\n }\n }));\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isDetailTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns;\n if (isDetailTableCell(params.tableColumn, tableColumns)) {\n return createElement(Cell, __assign({}, params, {\n row: params.tableRow.row\n }), Content && createElement(Content, {\n row: params.tableRow.row\n }));\n }\n return null;\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isDetailTableRow(tableRow);\n }\n }, function (params) {\n return createElement(Row, __assign({}, params, {\n row: params.tableRow.row\n }));\n }));\n };\n TableRowDetailBase.ROW_TYPE = TABLE_DETAIL_TYPE;\n TableRowDetailBase.COLUMN_TYPE = TABLE_DETAIL_TYPE;\n TableRowDetailBase.defaultProps = {\n contentComponent: function () {\n return null;\n }\n };\n TableRowDetailBase.components = {\n rowComponent: 'Row',\n cellComponent: 'Cell',\n toggleCellComponent: 'ToggleCell'\n };\n return TableRowDetailBase;\n}(PureComponent);\n/** A plugin that renders detail rows. */\nvar TableRowDetail = TableRowDetailBase;\nvar defaultSummaryMessages = {\n sum: 'Sum',\n min: 'Min',\n max: 'Max',\n avg: 'Avg',\n count: 'Count'\n};\nvar TableSummaryContent = function (_a) {\n var column = _a.column,\n columnSummaries = _a.columnSummaries,\n formatlessSummaryTypes = _a.formatlessSummaryTypes,\n Item = _a.itemComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultSummaryMessages), messages));\n var SummaryItem = function (_a) {\n var summary = _a.summary,\n children = _a.children;\n return createElement(Item, {\n getMessage: getMessage,\n type: summary.type,\n value: summary.value\n }, children || String(summary.value));\n };\n var isFormatlessSummary = function (summary) {\n return summary.value === null || formatlessSummaryTypes.includes(summary.type) || defaultFormatlessSummaries.includes(summary.type);\n };\n return createElement(Fragment, null, columnSummaries.map(function (summary) {\n if (isFormatlessSummary(summary)) {\n return createElement(SummaryItem, {\n key: summary.type,\n summary: summary\n });\n }\n return createElement(TemplatePlaceholder, {\n key: summary.type,\n name: \"valueFormatter\",\n params: {\n column: column,\n value: summary.value\n }\n }, function (content) {\n return createElement(SummaryItem, {\n summary: summary\n }, content);\n });\n }));\n};\nvar getInlineSummaryComponent = function (column, summary, formatlessSummaries) {\n return function () {\n return summary.value === null || formatlessSummaries.includes(summary.type) ? createElement(Fragment, null, summary.value) : createElement(TemplatePlaceholder, {\n key: summary.type,\n name: \"valueFormatter\",\n params: {\n column: column,\n value: summary.value\n }\n }, function (content) {\n return content || summary.value;\n });\n };\n};\nvar flattenGroupInlineSummaries = function (columns, tableRow, groupSummaryItems, groupSummaryValues, formatlessSummaries) {\n return getGroupInlineSummaries(groupSummaryItems, columns, groupSummaryValues[tableRow.row.compoundKey]).map(function (colSummaries) {\n return __spread(colSummaries.summaries.map(function (summary) {\n return __assign(__assign({}, summary), {\n columnTitle: colSummaries.column.title,\n messageKey: summary.type + \"Of\",\n component: getInlineSummaryComponent(colSummaries.column, summary, formatlessSummaries)\n });\n }));\n }).reduce(function (acc, summaries) {\n return acc.concat(summaries);\n }, []);\n};\nvar pluginDependencies$a = [{\n name: 'GroupingState'\n}, {\n name: 'Table'\n}, {\n name: 'DataTypeProvider',\n optional: true\n}, {\n name: 'SummaryState',\n optional: true\n}, {\n name: 'CustomSummary',\n optional: true\n}, {\n name: 'IntegratedSummary',\n optional: true\n}, {\n name: 'Table'\n}, {\n name: 'DataTypeProvider',\n optional: true\n}, {\n name: 'TableSelection',\n optional: true\n}];\nvar side = 'left';\n/** @internal */\nvar defaultMessages$1 = {\n countOf: 'Count: ',\n sumOf: 'Sum of {columnTitle} is ',\n maxOf: 'Max of {columnTitle} is ',\n minOf: 'Min of {columnTitle} is ',\n avgOf: 'Avg of {columnTitle} is '\n};\nvar tableBodyRowsComputed$1 = function (_a) {\n var tableBodyRows = _a.tableBodyRows,\n isGroupRow = _a.isGroupRow;\n return tableRowsWithGrouping(tableBodyRows, isGroupRow);\n};\nvar getCellColSpanComputed$1 = function (_a) {\n var getTableCellColSpan = _a.getTableCellColSpan,\n groupSummaryItems = _a.groupSummaryItems,\n viewport = _a.viewport;\n var firstVisibleColumnIndex = viewport === null || viewport === void 0 ? void 0 : viewport.columns[0][0];\n return tableGroupCellColSpanGetter(getTableCellColSpan, groupSummaryItems, firstVisibleColumnIndex);\n};\nvar TableGroupRowBase = /*#__PURE__*/function (_super) {\n __extends(TableGroupRowBase, _super);\n function TableGroupRowBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableGroupRowBase.prototype.render = function () {\n var _a = this.props,\n GroupCell = _a.cellComponent,\n Content = _a.contentComponent,\n Icon = _a.iconComponent,\n GroupRow = _a.rowComponent,\n Container = _a.containerComponent,\n GroupIndentCell = _a.indentCellComponent,\n InlineSummary = _a.inlineSummaryComponent,\n InlineSummaryItem = _a.inlineSummaryItemComponent,\n SummaryCell = _a.summaryCellComponent,\n SummaryItem = _a.summaryItemComponent,\n StubCell = _a.stubCellComponent,\n indentColumnWidth = _a.indentColumnWidth,\n contentCellPadding = _a.contentCellPadding,\n showColumnsWhenGrouped = _a.showColumnsWhenGrouped,\n columnExtensions = _a.columnExtensions,\n messages = _a.messages,\n formatlessSummaryTypes = _a.formatlessSummaryTypes;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$1), messages));\n return createElement(Plugin, {\n name: \"TableGroupRow\",\n dependencies: pluginDependencies$a\n }, createElement(TableColumnsWithGrouping, {\n columnExtensions: columnExtensions,\n showColumnsWhenGrouped: showColumnsWhenGrouped,\n indentColumnWidth: indentColumnWidth\n }), createElement(Getter, {\n name: \"tableBodyRows\",\n computed: tableBodyRowsComputed$1\n }), createElement(Getter, {\n name: \"getTableCellColSpan\",\n computed: getCellColSpanComputed$1\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return isGroupTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var grouping = _a.grouping,\n expandedGroups = _a.expandedGroups,\n groupSummaryItems = _a.groupSummaryItems,\n groupSummaryValues = _a.groupSummaryValues,\n columns = _a.columns;\n var toggleGroupExpanded = _b.toggleGroupExpanded;\n if (isGroupTableCell(params.tableRow, params.tableColumn)) {\n var formatlessSummaries = defaultFormatlessSummaries.concat(formatlessSummaryTypes);\n var inlineSummaries_1 = groupSummaryItems ? flattenGroupInlineSummaries(columns, params.tableRow, groupSummaryItems, groupSummaryValues, formatlessSummaries) : [];\n var cellIndent = calculateGroupCellIndent(params.tableColumn, grouping, indentColumnWidth);\n var contentIndent_1 = \"calc(\" + cellIndent + \"px + \" + contentCellPadding + \")\";\n return createElement(TemplatePlaceholder, {\n name: \"valueFormatter\",\n params: {\n column: params.tableColumn.column,\n value: params.tableRow.row.value\n }\n }, function (content) {\n return createElement(GroupCell, __assign({}, params, {\n contentComponent: Content,\n iconComponent: Icon,\n containerComponent: Container,\n row: params.tableRow.row,\n column: params.tableColumn.column,\n expanded: expandedGroups.indexOf(params.tableRow.row.compoundKey) !== -1,\n onToggle: function () {\n return toggleGroupExpanded({\n groupKey: params.tableRow.row.compoundKey\n });\n },\n inlineSummaries: inlineSummaries_1,\n inlineSummaryComponent: InlineSummary,\n inlineSummaryItemComponent: InlineSummaryItem,\n getMessage: getMessage,\n position: contentIndent_1,\n side: side\n }), content);\n });\n }\n if (isGroupIndentTableCell(params.tableRow, params.tableColumn, grouping)) {\n var fixedProps = {\n side: side,\n position: calculateGroupCellIndent(params.tableColumn, grouping, indentColumnWidth)\n };\n if (GroupIndentCell) {\n return createElement(GroupIndentCell, __assign({}, params, fixedProps, {\n row: params.tableRow.row,\n column: params.tableColumn.column\n }));\n }\n return createElement(TemplatePlaceholder, {\n params: fixedProps\n });\n }\n if (isGroupIndentStubTableCell(params.tableRow, params.tableColumn, grouping)) {\n return createElement(TemplatePlaceholder, {\n params: params\n });\n }\n return null;\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isGroupRowOrdinaryCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var groupSummaryItems = _a.groupSummaryItems,\n groupSummaryValues = _a.groupSummaryValues,\n grouping = _a.grouping,\n tableColumns = _a.tableColumns;\n var toggleGroupExpanded = _b.toggleGroupExpanded;\n var tableColumn = params.tableColumn,\n tableRow = params.tableRow;\n var onToggle = function () {\n return toggleGroupExpanded({\n groupKey: tableRow.row.compoundKey\n });\n };\n if (isRowSummaryCell(tableRow, tableColumn, grouping, groupSummaryItems)) {\n var columnSummaries = getColumnSummaries(groupSummaryItems, tableColumn.column.name, groupSummaryValues[tableRow.row.compoundKey], function (summaryItem) {\n return !summaryItem.showInGroupFooter && summaryItem.alignByColumn;\n });\n return createElement(SummaryCell, __assign({}, params, {\n row: params.tableRow.row,\n column: params.tableColumn.column,\n onToggle: onToggle\n }), createElement(TableSummaryContent, {\n column: tableColumn.column,\n columnSummaries: columnSummaries,\n formatlessSummaryTypes: formatlessSummaryTypes,\n itemComponent: SummaryItem,\n messages: messages\n }));\n }\n // NOTE: ensure that right-aligned summary will fit into a column\n if (isPreviousCellContainSummary(tableRow, tableColumn, tableColumns, grouping, groupSummaryItems) || TABLE_FLEX_TYPE === tableColumn.type) {\n return createElement(StubCell, __assign({}, params, {\n onToggle: onToggle\n }));\n }\n return createElement(TemplatePlaceholder, null);\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return isGroupTableRow(tableRow);\n }\n }, function (params) {\n return createElement(GroupRow, __assign({}, params, {\n row: params.tableRow.row\n }));\n }));\n };\n TableGroupRowBase.ROW_TYPE = TABLE_GROUP_TYPE;\n TableGroupRowBase.COLUMN_TYPE = TABLE_GROUP_TYPE;\n TableGroupRowBase.defaultProps = {\n showColumnsWhenGrouped: false,\n formatlessSummaryTypes: []\n };\n TableGroupRowBase.components = {\n rowComponent: 'Row',\n cellComponent: 'Cell',\n contentComponent: 'Content',\n iconComponent: 'Icon',\n containerComponent: 'Container',\n indentCellComponent: 'IndentCell',\n inlineSummaryComponent: 'InlineSummary',\n inlineSummaryItemComponent: 'InlineSummaryItem',\n summaryCellComponent: 'SummaryCell',\n summaryItemComponent: 'SummaryItem',\n stubCellComponent: 'StubCell'\n };\n return TableGroupRowBase;\n}(PureComponent);\n/** A plugin that renders group rows and enables them to expand and collapse. */\nvar TableGroupRow = TableGroupRowBase;\nvar tableHeaderRowsComputed$1 = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows;\n return tableRowsWithHeading(tableHeaderRows || []);\n};\nvar TableHeaderRowBase = /*#__PURE__*/function (_super) {\n __extends(TableHeaderRowBase, _super);\n function TableHeaderRowBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableHeaderRowBase.prototype.render = function () {\n var _a = this.props,\n showSortingControls = _a.showSortingControls,\n showGroupingControls = _a.showGroupingControls,\n HeaderCell = _a.cellComponent,\n HeaderRow = _a.rowComponent,\n Content = _a.contentComponent,\n SortLabel = _a.sortLabelComponent,\n GroupButton = _a.groupButtonComponent,\n Title = _a.titleComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(messages);\n return createElement(Plugin, {\n name: \"TableHeaderRow\",\n dependencies: [{\n name: 'Table'\n }, {\n name: 'SortingState',\n optional: !showSortingControls\n }, {\n name: 'GroupingState',\n optional: !showGroupingControls\n }, {\n name: 'DragDropProvider',\n optional: true\n }, {\n name: 'TableColumnResizing',\n optional: true\n }]\n }, createElement(Getter, {\n name: \"tableHeaderRows\",\n computed: tableHeaderRowsComputed$1\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isHeadingTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var sorting = _a.sorting,\n tableColumns = _a.tableColumns,\n draggingEnabled = _a.draggingEnabled,\n tableColumnResizingEnabled = _a.tableColumnResizingEnabled,\n isColumnSortingEnabled = _a.isColumnSortingEnabled,\n isColumnGroupingEnabled = _a.isColumnGroupingEnabled,\n columnResizingMode = _a.columnResizingMode;\n var changeColumnSorting = _b.changeColumnSorting,\n changeColumnGrouping = _b.changeColumnGrouping,\n changeTableColumnWidth = _b.changeTableColumnWidth,\n draftTableColumnWidth = _b.draftTableColumnWidth,\n cancelTableColumnWidthDraft = _b.cancelTableColumnWidthDraft,\n _c = _b.storeWidthGetters,\n storeWidthGetters = _c === void 0 ? function () {} : _c;\n var _d = params.tableColumn.column,\n columnName = _d.name,\n columnTitle = _d.title;\n var atLeastOneDataColumn = tableColumns.filter(function (_a) {\n var type = _a.type;\n return type === TABLE_DATA_TYPE;\n }).length > 1;\n var sortingEnabled = isColumnSortingEnabled && isColumnSortingEnabled(columnName);\n var groupingEnabled = isColumnGroupingEnabled && isColumnGroupingEnabled(columnName) && atLeastOneDataColumn;\n var nextColumnName = getNextColumnName(tableColumns, columnName);\n return createElement(HeaderCell, __assign({}, params, {\n column: params.tableColumn.column,\n draggingEnabled: draggingEnabled && atLeastOneDataColumn,\n resizingEnabled: tableColumnResizingEnabled && (!!nextColumnName || columnResizingMode === 'widget'),\n onWidthChange: function (_a) {\n var shift = _a.shift;\n return changeTableColumnWidth({\n columnName: columnName,\n nextColumnName: nextColumnName,\n shift: shift\n });\n },\n onWidthDraft: function (_a) {\n var shift = _a.shift;\n return draftTableColumnWidth({\n columnName: columnName,\n nextColumnName: nextColumnName,\n shift: shift\n });\n },\n onWidthDraftCancel: function () {\n return cancelTableColumnWidthDraft();\n },\n getCellWidth: function (getter) {\n return storeWidthGetters({\n tableColumn: params.tableColumn,\n getter: getter,\n tableColumns: tableColumns\n });\n }\n }), createElement(TemplatePlaceholder, {\n name: \"tableHeaderCellBefore\",\n params: {\n column: params.tableColumn.column\n }\n }), createElement(Content, {\n column: params.tableColumn.column,\n align: params.tableColumn.align\n }, showSortingControls ? createElement(SortLabel, {\n column: params.tableColumn.column,\n align: params.tableColumn.align,\n direction: getColumnSortingDirection(sorting, columnName) || null,\n disabled: !sortingEnabled,\n onSort: function (_a) {\n var direction = _a.direction,\n keepOther = _a.keepOther;\n changeColumnSorting({\n columnName: columnName,\n direction: direction,\n keepOther: keepOther\n });\n },\n getMessage: getMessage\n }, createElement(Title, null, columnTitle || columnName)) : createElement(Title, null, columnTitle || columnName)), showGroupingControls ? createElement(GroupButton, {\n disabled: !groupingEnabled,\n onGroup: function () {\n return changeColumnGrouping({\n columnName: columnName\n });\n }\n }) : null);\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isHeadingTableRow(tableRow);\n }\n }, function (params) {\n return createElement(HeaderRow, __assign({}, params));\n }));\n };\n TableHeaderRowBase.ROW_TYPE = TABLE_HEADING_TYPE;\n TableHeaderRowBase.defaultProps = {\n showSortingControls: false,\n showGroupingControls: false,\n messages: {}\n };\n TableHeaderRowBase.components = {\n cellComponent: 'Cell',\n rowComponent: 'Row',\n contentComponent: 'Content',\n sortLabelComponent: 'SortLabel',\n titleComponent: 'Title',\n groupButtonComponent: 'GroupButton'\n };\n return TableHeaderRowBase;\n}(PureComponent);\nTableHeaderRowBase.components = {\n cellComponent: 'Cell',\n rowComponent: 'Row',\n contentComponent: 'Content',\n sortLabelComponent: 'SortLabel',\n titleComponent: 'Title',\n groupButtonComponent: 'GroupButton'\n};\n/***\r\n * A plugin that renders the table's header row. The Column's `title` field specifies the\r\n * column's title in the header row.The plugin also allows you to manage a column's sorting\r\n * and grouping state and initiate column dragging.\r\n * */\nvar TableHeaderRow = TableHeaderRowBase;\nvar CellPlaceholder$1 = function (props) {\n return createElement(TemplatePlaceholder, {\n params: props\n });\n};\nvar bandLevelsVisibilityComputed = function (_a) {\n var columnIntervals = _a.columnVisibleIntervals,\n tableHeaderColumnChains = _a.tableHeaderColumnChains,\n bandLevels = _a.bandLevels;\n return bandLevelsVisibility(columnIntervals, tableHeaderColumnChains, bandLevels);\n};\nvar columnVisibleIntervalsComputed = function (_a) {\n var viewport = _a.viewport,\n tableColumns = _a.tableColumns;\n return columnVisibleIntervals(viewport, tableColumns);\n};\nvar TableBandHeaderBase = /*#__PURE__*/function (_super) {\n __extends(TableBandHeaderBase, _super);\n function TableBandHeaderBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableBandHeaderBase.prototype.render = function () {\n var _a = this.props,\n Cell = _a.cellComponent,\n Row = _a.rowComponent,\n HeaderCell = _a.bandedHeaderCellComponent,\n InvisibleCell = _a.invisibleCellComponent,\n columnBands = _a.columnBands;\n var tableHeaderRowsComputed = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows,\n tableColumns = _a.tableColumns;\n return tableRowsWithBands(tableHeaderRows, columnBands, tableColumns);\n };\n var tableHeaderColumnChainsComputed = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows,\n tableColumns = _a.tableColumns;\n return tableHeaderColumnChainsWithBands(tableHeaderRows, tableColumns, columnBands);\n };\n var bandLevels = columnBandLevels(columnBands);\n return createElement(Plugin, {\n name: \"TableBandHeader\",\n dependencies: [{\n name: 'Table'\n }, {\n name: 'TableHeaderRow'\n }, {\n name: 'TableSelection',\n optional: true\n }, {\n name: 'TableEditColumn',\n optional: true\n }]\n }, createElement(Getter, {\n name: \"tableHeaderRows\",\n computed: tableHeaderRowsComputed\n }), createElement(Getter, {\n name: \"columnVisibleIntervals\",\n computed: columnVisibleIntervalsComputed\n }), createElement(Getter, {\n name: \"tableHeaderColumnChains\",\n computed: tableHeaderColumnChainsComputed\n }), createElement(Getter, {\n name: \"bandLevels\",\n value: bandLevels\n }), createElement(Getter, {\n name: \"bandLevelsVisibility\",\n computed: bandLevelsVisibilityComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isBandedOrHeaderRow(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns,\n tableHeaderRows = _a.tableHeaderRows,\n tableHeaderColumnChains = _a.tableHeaderColumnChains,\n columnIntervals = _a.columnVisibleIntervals,\n levelsVisibility = _a.bandLevelsVisibility;\n var bandComponent = getBandComponent(params, tableHeaderRows, tableColumns, columnBands, tableHeaderColumnChains, columnIntervals, levelsVisibility);\n switch (bandComponent.type) {\n case BAND_DUPLICATE_RENDER:\n return createElement(TemplatePlaceholder, {\n params: __assign({}, params)\n });\n case BAND_EMPTY_CELL:\n return createElement(InvisibleCell, null);\n case BAND_GROUP_CELL:\n {\n var _b = bandComponent.payload,\n value = _b.value,\n payload = __rest(_b, [\"value\"]);\n return createElement(Cell, __assign({}, params, payload), value);\n }\n case BAND_HEADER_CELL:\n return createElement(TemplatePlaceholder, {\n name: \"tableCell\",\n params: __assign(__assign({}, params), bandComponent.payload)\n });\n case BAND_FILL_LEVEL_CELL:\n return createElement(Cell, __assign({}, params, bandComponent.payload, {\n style: {\n whiteSpace: 'pre'\n }\n }), ' ');\n default:\n return null;\n }\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isHeadingTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(HeaderCell, __assign({\n component: CellPlaceholder$1\n }, params));\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isBandedTableRow(tableRow);\n }\n }, function (params) {\n return createElement(Row, __assign({}, params));\n }));\n };\n TableBandHeaderBase.ROW_TYPE = TABLE_BAND_TYPE;\n TableBandHeaderBase.components = {\n cellComponent: 'Cell',\n rowComponent: 'Row',\n bandedHeaderCellComponent: 'BandedHeaderCell',\n invisibleCellComponent: 'InvisibleCell'\n };\n return TableBandHeaderBase;\n}(PureComponent);\nTableBandHeaderBase.components = {\n cellComponent: 'Cell',\n rowComponent: 'Row',\n bandedHeaderCellComponent: 'BandedHeaderCell',\n invisibleCellComponent: 'InvisibleCell'\n};\n/** A plugin that renders the banded cells. */\nvar TableBandHeader = TableBandHeaderBase;\nvar pluginDependencies$b = [{\n name: 'FilteringState'\n}, {\n name: 'Table'\n}, {\n name: 'DataTypeProvider',\n optional: true\n}];\nvar defaultMessages$2 = {\n filterPlaceholder: 'Filter...',\n contains: 'Contains',\n notContains: 'Does not contain',\n startsWith: 'Starts with',\n endsWith: 'Ends with',\n equal: 'Equals',\n notEqual: 'Does not equal',\n greaterThan: 'Greater than',\n greaterThanOrEqual: 'Greater than or equal to',\n lessThan: 'Less than',\n lessThanOrEqual: 'Less than or equal to'\n};\nvar TableFilterRowBase = /*#__PURE__*/function (_super) {\n __extends(TableFilterRowBase, _super);\n function TableFilterRowBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n filterOperations: {}\n };\n return _this;\n }\n TableFilterRowBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n rowHeight = _a.rowHeight,\n showFilterSelector = _a.showFilterSelector,\n FilterCell = _a.cellComponent,\n FilterRow = _a.rowComponent,\n FilterSelector = _a.filterSelectorComponent,\n iconComponent = _a.iconComponent,\n toggleButtonComponent = _a.toggleButtonComponent,\n EditorComponent = _a.editorComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$2), messages));\n var tableHeaderRowsComputed = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows;\n return tableHeaderRowsWithFilter(tableHeaderRows, rowHeight);\n };\n return createElement(Plugin, {\n name: \"TableFilterRow\",\n dependencies: pluginDependencies$b\n }, createElement(Getter, {\n name: \"tableHeaderRows\",\n computed: tableHeaderRowsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isFilterTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var filters = _a.filters,\n isColumnFilteringEnabled = _a.isColumnFilteringEnabled,\n getAvailableFilterOperations = _a.getAvailableFilterOperations,\n isDataRemote = _a.isDataRemote;\n var changeColumnFilter = _b.changeColumnFilter,\n scrollToRow = _b.scrollToRow;\n var filterOperations = _this.state.filterOperations;\n var columnName = params.tableColumn.column.name;\n var filter = getColumnFilterConfig(filters, columnName);\n var onFilter = function (config) {\n if (isDataRemote) {\n scrollToRow(TOP_POSITION);\n }\n changeColumnFilter({\n columnName: columnName,\n config: config\n });\n };\n var columnFilterOperations = getColumnFilterOperations(getAvailableFilterOperations, columnName);\n var selectedFilterOperation = getSelectedFilterOperation(filterOperations, columnName, filter, columnFilterOperations);\n var handleFilterOperationChange = function (value) {\n var _a;\n _this.setState({\n filterOperations: __assign(__assign({}, filterOperations), (_a = {}, _a[columnName] = value, _a))\n });\n if (filter && !isFilterValueEmpty(filter.value)) {\n onFilter({\n value: filter.value,\n operation: value\n });\n }\n };\n var handleFilterValueChange = function (value) {\n return onFilter(!isFilterValueEmpty(value) ? {\n value: value,\n operation: selectedFilterOperation\n } : null);\n };\n var filteringEnabled = isColumnFilteringEnabled(columnName);\n return createElement(TemplatePlaceholder, {\n name: \"valueEditor\",\n params: {\n column: params.tableColumn.column,\n value: filter ? filter.value : undefined,\n onValueChange: handleFilterValueChange,\n disabled: !filteringEnabled\n }\n }, function (content) {\n return createElement(FilterCell, __assign({}, params, {\n getMessage: getMessage,\n column: params.tableColumn.column,\n filter: filter,\n filteringEnabled: filteringEnabled,\n onFilter: onFilter\n }), showFilterSelector ? createElement(FilterSelector, {\n toggleButtonComponent: toggleButtonComponent,\n iconComponent: iconComponent,\n value: selectedFilterOperation,\n availableValues: columnFilterOperations,\n onChange: handleFilterOperationChange,\n disabled: !filteringEnabled,\n getMessage: getMessage\n }) : null, content || createElement(EditorComponent, {\n value: filter ? filter.value : undefined,\n disabled: !filteringEnabled,\n getMessage: getMessage,\n onChange: handleFilterValueChange\n }));\n });\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isFilterTableRow(tableRow);\n }\n }, function (params) {\n return createElement(FilterRow, __assign({}, params));\n }));\n };\n TableFilterRowBase.ROW_TYPE = TABLE_FILTER_TYPE;\n TableFilterRowBase.defaultProps = {\n showFilterSelector: false,\n messages: {}\n };\n TableFilterRowBase.components = {\n rowComponent: 'Row',\n cellComponent: 'Cell',\n filterSelectorComponent: 'FilterSelector',\n iconComponent: 'Icon',\n editorComponent: 'Editor',\n toggleButtonComponent: 'ToggleButton'\n };\n return TableFilterRowBase;\n}(PureComponent);\n/** A plugin that renders a filter row. */\nvar TableFilterRow = TableFilterRowBase;\nvar pluginDependencies$c = [{\n name: 'EditingState'\n}, {\n name: 'Table'\n}, {\n name: 'DataTypeProvider',\n optional: true\n}];\nvar TableEditRowBase = /*#__PURE__*/function (_super) {\n __extends(TableEditRowBase, _super);\n function TableEditRowBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableEditRowBase.prototype.render = function () {\n var _a = this.props,\n EditCell = _a.cellComponent,\n EditRow = _a.rowComponent,\n rowHeight = _a.rowHeight;\n var tableBodyRowsComputed = function (_a) {\n var tableBodyRows = _a.tableBodyRows,\n editingRowIds = _a.editingRowIds,\n addedRows = _a.addedRows;\n return tableRowsWithEditing(tableBodyRows, editingRowIds, addedRows, rowHeight);\n };\n return createElement(Plugin, {\n name: \"TableEditRow\",\n dependencies: pluginDependencies$c\n }, createElement(Getter, {\n name: \"tableBodyRows\",\n computed: tableBodyRowsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isEditTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var getCellValue = _a.getCellValue,\n createRowChange = _a.createRowChange,\n rowChanges = _a.rowChanges,\n isColumnEditingEnabled = _a.isColumnEditingEnabled;\n var changeAddedRow = _b.changeAddedRow,\n changeRow = _b.changeRow;\n var _c = params.tableRow,\n rowId = _c.rowId,\n row = _c.row;\n var column = params.tableColumn.column;\n var columnName = column.name;\n var isNew = isAddedTableRow(params.tableRow);\n var changedRow = isNew ? row : __assign(__assign({}, row), getRowChange(rowChanges, rowId));\n var value = getCellValue(changedRow, columnName);\n var onValueChange = function (newValue) {\n var changeArgs = {\n rowId: rowId,\n change: createRowChange(changedRow, newValue, columnName)\n };\n if (isNew) {\n changeAddedRow(changeArgs);\n } else {\n changeRow(changeArgs);\n }\n };\n var editingEnabled = isColumnEditingEnabled(columnName);\n return createElement(TemplatePlaceholder, {\n name: \"valueEditor\",\n params: {\n column: column,\n row: row,\n value: value,\n onValueChange: onValueChange,\n disabled: !editingEnabled\n }\n }, function (content) {\n return createElement(EditCell, __assign({}, params, {\n row: row,\n column: column,\n value: value,\n editingEnabled: editingEnabled,\n onValueChange: onValueChange\n }), content);\n });\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!(isEditTableRow(tableRow) || isAddedTableRow(tableRow));\n }\n }, function (params) {\n return createElement(EditRow, __assign({}, params, {\n row: params.tableRow.row\n }));\n }));\n };\n TableEditRowBase.ADDED_ROW_TYPE = TABLE_ADDED_TYPE;\n TableEditRowBase.EDIT_ROW_TYPE = TABLE_EDIT_TYPE;\n TableEditRowBase.components = {\n rowComponent: 'Row',\n cellComponent: 'Cell'\n };\n return TableEditRowBase;\n}(PureComponent);\n/** A plugin that renders a row being edited. */\nvar TableEditRow = TableEditRowBase;\nvar pluginDependencies$d = [{\n name: 'EditingState'\n}, {\n name: 'Table'\n}];\nvar defaultMessages$3 = {\n addCommand: 'New',\n editCommand: 'Edit',\n deleteCommand: 'Delete',\n commitCommand: 'Save',\n cancelCommand: 'Cancel'\n};\nvar TableEditColumnBase = /*#__PURE__*/function (_super) {\n __extends(TableEditColumnBase, _super);\n function TableEditColumnBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableEditColumnBase.prototype.render = function () {\n var _a = this.props,\n Cell = _a.cellComponent,\n HeaderCell = _a.headerCellComponent,\n Command = _a.commandComponent,\n showAddCommand = _a.showAddCommand,\n showEditCommand = _a.showEditCommand,\n showDeleteCommand = _a.showDeleteCommand,\n width = _a.width,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$3), messages));\n var tableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithEditing(tableColumns, width);\n };\n return createElement(Plugin, {\n name: \"TableEditColumn\",\n dependencies: pluginDependencies$d\n }, createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isHeadingEditCommandsTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (getters, actions) {\n return createElement(HeaderCell, __assign({}, params), showAddCommand && createElement(Command, {\n id: \"add\",\n text: getMessage('addCommand'),\n onExecute: function () {\n return actions.addRow();\n }\n }));\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isEditCommandsTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (getters, actions) {\n var isEdit = isEditTableRow(params.tableRow);\n var isNew = isAddedTableRow(params.tableRow);\n var isEditing = isEdit || isNew;\n var rowIds = [params.tableRow.rowId];\n return createElement(Cell, __assign({}, params, {\n row: params.tableRow.row\n }), showEditCommand && !isEditing && createElement(Command, {\n id: \"edit\",\n text: getMessage('editCommand'),\n onExecute: function () {\n return actions.startEditRows({\n rowIds: rowIds\n });\n }\n }), showDeleteCommand && !isEditing && createElement(Command, {\n id: \"delete\",\n text: getMessage('deleteCommand'),\n onExecute: function () {\n actions.deleteRows({\n rowIds: rowIds\n });\n actions.commitDeletedRows({\n rowIds: rowIds\n });\n }\n }), isEditing && createElement(Command, {\n id: \"commit\",\n text: getMessage('commitCommand'),\n onExecute: function () {\n if (isNew) {\n actions.commitAddedRows({\n rowIds: rowIds\n });\n } else {\n actions.stopEditRows({\n rowIds: rowIds\n });\n actions.commitChangedRows({\n rowIds: rowIds\n });\n }\n }\n }), isEditing && createElement(Command, {\n id: \"cancel\",\n text: getMessage('cancelCommand'),\n onExecute: function () {\n if (isNew) {\n actions.cancelAddedRows({\n rowIds: rowIds\n });\n } else {\n actions.stopEditRows({\n rowIds: rowIds\n });\n actions.cancelChangedRows({\n rowIds: rowIds\n });\n }\n }\n }));\n });\n }));\n };\n TableEditColumnBase.COLUMN_TYPE = TABLE_EDIT_COMMAND_TYPE;\n TableEditColumnBase.defaultProps = {\n showAddCommand: false,\n showEditCommand: false,\n showDeleteCommand: false,\n width: 140,\n messages: {}\n };\n TableEditColumnBase.components = {\n cellComponent: 'Cell',\n headerCellComponent: 'HeaderCell',\n commandComponent: 'Command'\n };\n return TableEditColumnBase;\n}(PureComponent);\n/***\r\n * A plugin that renders a command column. This column contains controls used for row editing,\r\n * creating, or deleting and committing/canceling changes.\r\n * */\nvar TableEditColumn = TableEditColumnBase;\nvar pluginDependencies$e = [{\n name: 'Table'\n}];\n// tslint:disable-next-line: max-line-length\nvar TableColumnResizingBase = /*#__PURE__*/function (_super) {\n __extends(TableColumnResizingBase, _super);\n function TableColumnResizingBase(props) {\n var _this = _super.call(this, props) || this;\n _this.widthGetters = {};\n _this.cachedWidths = {};\n _this.state = {\n columnWidths: props.columnWidths || props.defaultColumnWidths,\n draftColumnWidths: []\n };\n var stateHelper = createStateHelper(_this, {\n columnWidths: function () {\n var onColumnWidthsChange = _this.props.onColumnWidthsChange;\n return onColumnWidthsChange;\n }\n });\n _this.tableColumnsComputed = memoize(function (columnWidths) {\n return function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithWidths(tableColumns, columnWidths, _this.props.resizingMode);\n };\n });\n _this.tableColumnsDraftComputed = memoize(function (draftColumnWidths) {\n return function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithDraftWidths(tableColumns, draftColumnWidths, _this.props.resizingMode);\n };\n });\n _this.changeTableColumnWidth = stateHelper.applyReducer.bind(stateHelper, function (prevState, payload) {\n var cachedWidths = __assign({}, _this.cachedWidths);\n var _a = _this.props,\n minColumnWidth = _a.minColumnWidth,\n maxColumnWidth = _a.maxColumnWidth,\n columnExtensions = _a.columnExtensions,\n resizingMode = _a.resizingMode;\n return changeTableColumnWidth(prevState, __assign(__assign({}, payload), {\n cachedWidths: cachedWidths,\n resizingMode: resizingMode,\n minColumnWidth: minColumnWidth,\n maxColumnWidth: maxColumnWidth,\n columnExtensions: columnExtensions\n }));\n });\n _this.draftTableColumnWidth = stateHelper.applyReducer.bind(stateHelper, function (prevState, payload) {\n _this.storeCache(payload);\n var cachedWidths = _this.cachedWidths;\n var _a = _this.props,\n minColumnWidth = _a.minColumnWidth,\n maxColumnWidth = _a.maxColumnWidth,\n columnExtensions = _a.columnExtensions,\n resizingMode = _a.resizingMode;\n return draftTableColumnWidth(prevState, __assign(__assign({}, payload), {\n cachedWidths: cachedWidths,\n resizingMode: resizingMode,\n minColumnWidth: minColumnWidth,\n maxColumnWidth: maxColumnWidth,\n columnExtensions: columnExtensions\n }));\n });\n _this.cancelTableColumnWidthDraft = stateHelper.applyReducer.bind(stateHelper, cancelTableColumnWidthDraft);\n _this.storeCache = function (_a) {\n var columnName = _a.columnName,\n nextColumnName = _a.nextColumnName;\n if (Object.keys(_this.cachedWidths).length === 0) {\n _this.cachedWidths[columnName] = _this.widthGetters[columnName]();\n if (nextColumnName) {\n _this.cachedWidths[nextColumnName] = _this.widthGetters[nextColumnName]();\n }\n }\n };\n _this.clearCache = function () {\n Object.keys(_this.cachedWidths).forEach(function (columnName) {\n return delete _this.cachedWidths[columnName];\n });\n };\n _this.storeWidthGetters = memoize(function (_a) {\n var tableColumn = _a.tableColumn,\n getter = _a.getter,\n tableColumns = _a.tableColumns;\n if (tableColumn.type === TABLE_DATA_TYPE) {\n _this.widthGetters[tableColumn.column.name] = getter;\n }\n Object.keys(_this.widthGetters).forEach(function (columnName) {\n var columnIndex = tableColumns.findIndex(function (_a) {\n var type = _a.type,\n column = _a.column;\n return type === TABLE_DATA_TYPE && column.name === columnName;\n });\n if (columnIndex === -1) {\n delete _this.widthGetters[columnName];\n }\n });\n });\n return _this;\n }\n TableColumnResizingBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.columnWidths,\n columnWidths = _a === void 0 ? prevState.columnWidths : _a;\n return {\n columnWidths: columnWidths\n };\n };\n TableColumnResizingBase.prototype.componentDidUpdate = function (_, prevState) {\n var currentWidths = this.state.columnWidths;\n var prevWidths = prevState.columnWidths;\n if (currentWidths !== prevWidths) {\n this.clearCache();\n }\n };\n TableColumnResizingBase.prototype.render = function () {\n var _a = this.state,\n columnWidths = _a.columnWidths,\n draftColumnWidths = _a.draftColumnWidths;\n var resizingMode = this.props.resizingMode;\n var tableColumnsComputed = this.tableColumnsComputed(columnWidths);\n var tableColumnsDraftComputed = this.tableColumnsDraftComputed(draftColumnWidths);\n return createElement(Plugin, {\n name: \"TableColumnResizing\",\n dependencies: pluginDependencies$e\n }, createElement(Getter, {\n name: \"tableColumnResizingEnabled\",\n value: true\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsDraftComputed\n }), createElement(Getter, {\n name: \"columnResizingMode\",\n value: resizingMode\n }), createElement(Action, {\n name: \"changeTableColumnWidth\",\n action: this.changeTableColumnWidth\n }), createElement(Action, {\n name: \"draftTableColumnWidth\",\n action: this.draftTableColumnWidth\n }), createElement(Action, {\n name: \"cancelTableColumnWidthDraft\",\n action: this.cancelTableColumnWidthDraft\n }), createElement(Action, {\n name: \"storeWidthGetters\",\n action: this.storeWidthGetters\n }));\n };\n TableColumnResizingBase.defaultProps = {\n defaultColumnWidths: [],\n resizingMode: 'widget'\n };\n return TableColumnResizingBase;\n}(PureComponent);\n/* tslint:disable: max-line-length */\n/** A plugin that manages table column widths. */\nvar TableColumnResizing = TableColumnResizingBase;\n/* tslint:enable: max-line-length */\n\nvar pluginDependencies$f = [{\n name: 'PagingState'\n}];\nvar defaultMessages$4 = {\n showAll: 'All',\n info: function (_a) {\n var from = _a.from,\n to = _a.to,\n count = _a.count;\n return \"\" + from + (from < to ? \"-\" + to : '') + \" of \" + count;\n }\n};\nvar PagingPanelBase = /*#__PURE__*/function (_super) {\n __extends(PagingPanelBase, _super);\n function PagingPanelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PagingPanelBase.prototype.render = function () {\n var _a = this.props,\n Pager = _a.containerComponent,\n pageSizes = _a.pageSizes,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$4), messages));\n return createElement(Plugin, {\n name: \"PagingPanel\",\n dependencies: pluginDependencies$f\n }, createElement(Template, {\n name: \"footer\"\n }, createElement(TemplatePlaceholder, null), createElement(TemplateConnector, null, function (_a, _b) {\n var currentPage = _a.currentPage,\n pageSize = _a.pageSize,\n totalCount = _a.totalCount;\n var setCurrentPage = _b.setCurrentPage,\n setPageSize = _b.setPageSize;\n return createElement(Pager, {\n currentPage: currentPage,\n pageSize: pageSize,\n totalCount: totalCount,\n totalPages: pageCount(totalCount, pageSize),\n pageSizes: pageSizes,\n getMessage: getMessage,\n onCurrentPageChange: setCurrentPage,\n onPageSizeChange: setPageSize\n });\n })));\n };\n PagingPanelBase.defaultProps = {\n pageSizes: [],\n messages: {}\n };\n PagingPanelBase.components = {\n containerComponent: 'Container'\n };\n return PagingPanelBase;\n}(PureComponent);\n/** A plugin that renders the paging panel used for navigation through data pages. */\nvar PagingPanel = PagingPanelBase;\nvar defaultProps = {\n draggingEnabled: false,\n onDragStart: function () {},\n onDragEnd: function () {}\n};\n// tslint:disable-next-line: max-line-length\nvar ItemLayout = /*#__PURE__*/function (_super) {\n __extends(ItemLayout, _super);\n function ItemLayout(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n dragging: false\n };\n return _this;\n }\n ItemLayout.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n item = _a.item,\n Item = _a.itemComponent,\n draggingEnabled = _a.draggingEnabled,\n onDragStart = _a.onDragStart,\n onDragEnd = _a.onDragEnd;\n var dragging = this.state.dragging;\n var itemElement = createElement(Item, {\n item: __assign(__assign({}, item), {\n draft: dragging || item.draft\n })\n });\n return draggingEnabled ? createElement(DragSource, {\n payload: [{\n type: 'column',\n columnName: item.column.name\n }],\n onStart: function () {\n _this.setState({\n dragging: true\n });\n onDragStart();\n },\n onEnd: function () {\n _this.setState({\n dragging: false\n });\n onDragEnd();\n }\n }, itemElement) : itemElement;\n };\n ItemLayout.defaultProps = defaultProps;\n return ItemLayout;\n}(PureComponent);\nvar defaultProps$1 = {\n onGroup: function () {},\n draggingEnabled: false,\n isColumnGroupingEnabled: function () {\n return false;\n },\n onGroupDraft: function () {},\n onGroupDraftCancel: function () {}\n};\n// tslint:disable-next-line: max-line-length\nvar GroupPanelLayoutBase = /*#__PURE__*/function (_super) {\n __extends(GroupPanelLayoutBase, _super);\n function GroupPanelLayoutBase(props) {\n var _this = _super.call(this, props) || this;\n _this.itemRefs = [];\n _this.draggingColumnName = null;\n _this.state = {\n sourceColumnName: null,\n targetItemIndex: -1\n };\n _this.handleDragEvent = function (eventHandler, _a) {\n var payload = _a.payload,\n restArgs = __rest(_a, [\"payload\"]);\n var isColumnGroupingEnabled = _this.props.isColumnGroupingEnabled;\n var columnName = payload[0].columnName;\n if (isColumnGroupingEnabled(columnName)) {\n eventHandler(__assign({\n payload: payload\n }, restArgs));\n }\n };\n _this.onEnter = function (_a) {\n var payload = _a.payload;\n _this.setState({\n sourceColumnName: payload[0].columnName\n });\n };\n _this.onOver = function (_a) {\n var clientOffset = _a.clientOffset;\n var _b = _this.props,\n onGroupDraft = _b.onGroupDraft,\n items = _b.items;\n var _c = _this.state,\n sourceColumnName = _c.sourceColumnName,\n prevTargetItemIndex = _c.targetItemIndex;\n // eslint-disable-next-line react/no-find-dom-node\n var itemGeometries = _this.itemRefs.map(function (ref) {\n return findDOMNode(ref).getBoundingClientRect();\n });\n var sourceItemIndex = items.findIndex(function (_a) {\n var column = _a.column;\n return column.name === sourceColumnName;\n });\n var targetItemIndex = getGroupCellTargetIndex(itemGeometries, sourceItemIndex, clientOffset);\n if (prevTargetItemIndex === targetItemIndex) return;\n onGroupDraft({\n columnName: sourceColumnName,\n groupIndex: targetItemIndex\n });\n _this.setState({\n targetItemIndex: targetItemIndex\n });\n };\n _this.onLeave = function () {\n var onGroupDraft = _this.props.onGroupDraft;\n var sourceColumnName = _this.state.sourceColumnName;\n if (!_this.draggingColumnName) {\n _this.resetState();\n return;\n }\n onGroupDraft({\n columnName: sourceColumnName,\n groupIndex: -1\n });\n _this.setState({\n targetItemIndex: -1\n });\n };\n _this.onDrop = function () {\n var onGroup = _this.props.onGroup;\n var _a = _this.state,\n sourceColumnName = _a.sourceColumnName,\n targetItemIndex = _a.targetItemIndex;\n _this.resetState();\n onGroup({\n columnName: sourceColumnName,\n groupIndex: targetItemIndex\n });\n };\n _this.onDragStart = function (columnName) {\n _this.draggingColumnName = columnName;\n };\n _this.onDragEnd = function () {\n _this.draggingColumnName = null;\n var _a = _this.state,\n sourceColumnName = _a.sourceColumnName,\n targetItemIndex = _a.targetItemIndex;\n var onGroup = _this.props.onGroup;\n if (sourceColumnName && targetItemIndex === -1) {\n onGroup({\n columnName: sourceColumnName\n });\n }\n _this.resetState();\n };\n return _this;\n }\n GroupPanelLayoutBase.prototype.resetState = function () {\n var onGroupDraftCancel = this.props.onGroupDraftCancel;\n onGroupDraftCancel();\n this.setState({\n sourceColumnName: null,\n targetItemIndex: -1\n });\n };\n GroupPanelLayoutBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n items = _a.items,\n EmptyMessage = _a.emptyMessageComponent,\n Container = _a.containerComponent,\n Item = _a.itemComponent,\n draggingEnabled = _a.draggingEnabled,\n isColumnGroupingEnabled = _a.isColumnGroupingEnabled;\n this.itemRefs = [];\n var groupPanel = items.length ? createElement(Container, null, items.map(function (item) {\n var columnName = item.column.name;\n return createElement(ItemLayout, {\n key: columnName,\n ref: function (element) {\n return element && _this.itemRefs.push(element);\n },\n item: item,\n itemComponent: Item,\n draggingEnabled: draggingEnabled && isColumnGroupingEnabled(columnName),\n onDragStart: function () {\n return _this.onDragStart(columnName);\n },\n onDragEnd: _this.onDragEnd\n });\n })) : createElement(EmptyMessage, null);\n return draggingEnabled ? createElement(DropTarget, {\n onEnter: function (args) {\n return _this.handleDragEvent(_this.onEnter, args);\n },\n onOver: function (args) {\n return _this.handleDragEvent(_this.onOver, args);\n },\n onLeave: function (args) {\n return _this.handleDragEvent(_this.onLeave, args);\n },\n onDrop: function (args) {\n return _this.handleDragEvent(_this.onDrop, args);\n }\n }, groupPanel) : groupPanel;\n };\n GroupPanelLayoutBase.defaultProps = defaultProps$1;\n return GroupPanelLayoutBase;\n}(PureComponent);\n/** @internal */\nvar GroupPanelLayout = GroupPanelLayoutBase;\nvar defaultMessages$5 = {\n groupByColumn: 'Drag a column header here to group by that column'\n};\nvar defaultProps$2 = {\n showSortingControls: false,\n showGroupingControls: false,\n messages: {}\n};\nvar GroupingPanelRaw = /*#__PURE__*/function (_super) {\n __extends(GroupingPanelRaw, _super);\n function GroupingPanelRaw() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupingPanelRaw.prototype.render = function () {\n var _a = this.props,\n LayoutComponent = _a.layoutComponent,\n Container = _a.containerComponent,\n Item = _a.itemComponent,\n EmptyMessage = _a.emptyMessageComponent,\n showSortingControls = _a.showSortingControls,\n showGroupingControls = _a.showGroupingControls,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$5), messages));\n var EmptyMessagePlaceholder = function () {\n return createElement(EmptyMessage, {\n getMessage: getMessage\n });\n };\n var ItemPlaceholder = function (_a) {\n var item = _a.item;\n var columnName = item.column.name;\n return createElement(TemplateConnector, null, function (_a, _b) {\n var sorting = _a.sorting,\n isColumnSortingEnabled = _a.isColumnSortingEnabled,\n isColumnGroupingEnabled = _a.isColumnGroupingEnabled;\n var changeColumnGrouping = _b.changeColumnGrouping,\n changeColumnSorting = _b.changeColumnSorting;\n var sortingEnabled = isColumnSortingEnabled && isColumnSortingEnabled(columnName);\n var groupingEnabled = isColumnGroupingEnabled && isColumnGroupingEnabled(columnName);\n return createElement(Item, {\n item: item,\n sortingEnabled: sortingEnabled,\n groupingEnabled: groupingEnabled,\n showSortingControls: showSortingControls,\n sortingDirection: showSortingControls ? getColumnSortingDirection(sorting, columnName) : undefined,\n showGroupingControls: showGroupingControls,\n onGroup: function () {\n return changeColumnGrouping({\n columnName: columnName\n });\n },\n onSort: function (_a) {\n var direction = _a.direction,\n keepOther = _a.keepOther;\n return changeColumnSorting({\n columnName: columnName,\n direction: direction,\n keepOther: keepOther\n });\n }\n });\n });\n };\n return createElement(Plugin, {\n name: \"GroupingPanel\",\n dependencies: [{\n name: 'GroupingState'\n }, {\n name: 'Toolbar'\n }, {\n name: 'SortingState',\n optional: !showSortingControls\n }]\n }, createElement(Template, {\n name: \"toolbarContent\"\n }, createElement(TemplateConnector, null, function (_a, _b) {\n var columns = _a.columns,\n grouping = _a.grouping,\n draftGrouping = _a.draftGrouping,\n draggingEnabled = _a.draggingEnabled,\n isColumnGroupingEnabled = _a.isColumnGroupingEnabled,\n isDataRemote = _a.isDataRemote;\n var changeColumnGrouping = _b.changeColumnGrouping,\n draftColumnGrouping = _b.draftColumnGrouping,\n cancelColumnGroupingDraft = _b.cancelColumnGroupingDraft,\n scrollToRow = _b.scrollToRow;\n var onGroup = function (config) {\n if (isDataRemote) {\n scrollToRow(TOP_POSITION);\n }\n changeColumnGrouping(config);\n };\n return createElement(LayoutComponent, {\n items: groupingPanelItems(columns, grouping, draftGrouping),\n isColumnGroupingEnabled: isColumnGroupingEnabled,\n draggingEnabled: draggingEnabled,\n onGroup: onGroup,\n onGroupDraft: draftColumnGrouping,\n onGroupDraftCancel: cancelColumnGroupingDraft,\n itemComponent: ItemPlaceholder,\n emptyMessageComponent: EmptyMessagePlaceholder,\n containerComponent: Container\n });\n }), createElement(TemplatePlaceholder, null)));\n };\n GroupingPanelRaw.defaultProps = defaultProps$2;\n GroupingPanelRaw.components = {\n layoutComponent: 'Layout',\n containerComponent: 'Container',\n itemComponent: 'Item',\n emptyMessageComponent: 'EmptyMessage'\n };\n return GroupingPanelRaw;\n}(PureComponent);\n/***\r\n * A plugin that renders the Grouping Panel in the Grid's header. This panel displays grouped\r\n * columns and allows a user to modify grouping options.Optionally, the plugin allows an end-user\r\n * to change grouped columns' sorting order and render sorting indicators.\r\n * */\nvar GroupingPanel = withComponents({\n Layout: GroupPanelLayout\n})(GroupingPanelRaw);\nvar DataTypeProviderBase = /*#__PURE__*/function (_super) {\n __extends(DataTypeProviderBase, _super);\n function DataTypeProviderBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataTypeProviderBase.prototype.render = function () {\n var _a = this.props,\n columnNames = _a.for,\n Formatter = _a.formatterComponent,\n Editor = _a.editorComponent,\n availableFilterOperations = _a.availableFilterOperations;\n var getAvailableFilterOperationsComputed = function (_a) {\n var getAvailableFilterOperations = _a.getAvailableFilterOperations;\n return getAvailableFilterOperationsGetter(getAvailableFilterOperations, availableFilterOperations, columnNames);\n };\n return createElement(Plugin, {\n name: \"DataTypeProvider\",\n key: columnNames.join('_')\n }, createElement(Getter, {\n name: \"getAvailableFilterOperations\",\n computed: getAvailableFilterOperationsComputed\n }), Formatter ? createElement(Template, {\n name: \"valueFormatter\",\n predicate: function (_a) {\n var column = _a.column;\n return columnNames.includes(column.name);\n }\n }, function (params) {\n return createElement(Formatter, __assign({}, params));\n }) : null, Editor ? createElement(Template, {\n name: \"valueEditor\",\n predicate: function (_a) {\n var column = _a.column;\n return columnNames.includes(column.name);\n }\n }, function (params) {\n return createElement(Editor, __assign({}, params));\n }) : null);\n };\n return DataTypeProviderBase;\n}(PureComponent);\n// tslint:disable-next-line: max-line-length\n/** A plugin that allows you to customize formatting options and editors depending on the data type. */\nvar DataTypeProvider = DataTypeProviderBase;\nvar pluginDependencies$g = [{\n name: 'Table'\n}];\nvar defaultMessages$6 = {\n noColumns: 'Nothing to show'\n};\nvar columnExtensionValueGetter$4 = function (columnExtensions, defaultValue) {\n return getColumnExtensionValueGetter(columnExtensions, 'togglingEnabled', defaultValue);\n};\n// tslint:disable-next-line: max-line-length\nvar TableColumnVisibilityBase = /*#__PURE__*/function (_super) {\n __extends(TableColumnVisibilityBase, _super);\n function TableColumnVisibilityBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n hiddenColumnNames: props.hiddenColumnNames || props.defaultHiddenColumnNames\n };\n var stateHelper = createStateHelper(_this, {\n hiddenColumnNames: function () {\n var onHiddenColumnNamesChange = _this.props.onHiddenColumnNamesChange;\n return onHiddenColumnNamesChange;\n }\n });\n _this.toggleColumnVisibility = stateHelper.applyFieldReducer.bind(stateHelper, 'hiddenColumnNames', toggleColumn);\n return _this;\n }\n TableColumnVisibilityBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.hiddenColumnNames,\n hiddenColumnNames = _a === void 0 ? prevState.hiddenColumnNames : _a;\n return {\n hiddenColumnNames: hiddenColumnNames\n };\n };\n TableColumnVisibilityBase.prototype.render = function () {\n var _a = this.props,\n EmptyMessage = _a.emptyMessageComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$6), messages));\n var hiddenColumnNames = this.state.hiddenColumnNames;\n var _b = this.props,\n columnExtensions = _b.columnExtensions,\n columnTogglingEnabled = _b.columnTogglingEnabled;\n return createElement(Plugin, {\n name: \"TableColumnVisibility\",\n dependencies: pluginDependencies$g\n }, createElement(VisibleTableColumns, {\n hiddenColumnNames: hiddenColumnNames\n }), createElement(Getter, {\n name: \"isColumnTogglingEnabled\",\n value: columnExtensionValueGetter$4(columnExtensions, columnTogglingEnabled)\n }), createElement(Action, {\n name: \"toggleColumnVisibility\",\n action: this.toggleColumnVisibility\n }), createElement(Template, {\n name: \"table\"\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns;\n return tableDataColumnsExist(tableColumns) ? createElement(TemplatePlaceholder, null) : createElement(EmptyMessage, __assign({\n getMessage: getMessage\n }, params));\n });\n }));\n };\n TableColumnVisibilityBase.defaultProps = {\n defaultHiddenColumnNames: [],\n messages: {},\n columnTogglingEnabled: true\n };\n TableColumnVisibilityBase.components = {\n emptyMessageComponent: 'EmptyMessage'\n };\n return TableColumnVisibilityBase;\n}(PureComponent);\nTableColumnVisibilityBase.components = {\n emptyMessageComponent: 'EmptyMessage'\n};\n/* tslint:disable: max-line-length */\n/** A plugin that manages Grid columns' visibility. */\nvar TableColumnVisibility = TableColumnVisibilityBase;\n/* tslint:enable: max-line-length */\n\nvar ToolbarBase = /*#__PURE__*/function (_super) {\n __extends(ToolbarBase, _super);\n function ToolbarBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ToolbarBase.prototype.render = function () {\n var _a = this.props,\n Root = _a.rootComponent,\n FlexibleSpaceComponent = _a.flexibleSpaceComponent;\n return createElement(Plugin, {\n name: \"Toolbar\"\n }, createElement(Template, {\n name: \"header\"\n }, createElement(Root, null, createElement(TemplatePlaceholder, {\n name: \"toolbarContent\"\n })), createElement(TemplatePlaceholder, null)), createElement(Template, {\n name: \"toolbarContent\"\n }, createElement(FlexibleSpaceComponent, null)));\n };\n ToolbarBase.components = {\n rootComponent: 'Root',\n flexibleSpaceComponent: 'FlexibleSpace'\n };\n return ToolbarBase;\n}(PureComponent);\n/** A plugin that renders the Grid toolbar. */\nvar Toolbar = ToolbarBase;\nvar TreeDataStateBase = /*#__PURE__*/function (_super) {\n __extends(TreeDataStateBase, _super);\n function TreeDataStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n expandedRowIds: props.expandedRowIds || props.defaultExpandedRowIds\n };\n var stateHelper = createStateHelper(_this, {\n expandedRowIds: function () {\n var onExpandedRowIdsChange = _this.props.onExpandedRowIdsChange;\n return onExpandedRowIdsChange;\n }\n });\n _this.toggleRowExpanded = stateHelper.applyFieldReducer.bind(stateHelper, 'expandedRowIds', toggleRowExpanded);\n return _this;\n }\n TreeDataStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.expandedRowIds,\n expandedRowIds = _a === void 0 ? prevState.expandedRowIds : _a;\n return {\n expandedRowIds: expandedRowIds\n };\n };\n TreeDataStateBase.prototype.render = function () {\n var expandedRowIds = this.state.expandedRowIds;\n return createElement(Plugin, {\n name: \"TreeDataState\"\n }, createElement(Getter, {\n name: \"expandedRowIds\",\n value: expandedRowIds\n }), ' ', createElement(Action, {\n name: \"toggleRowExpanded\",\n action: this.toggleRowExpanded\n }));\n };\n TreeDataStateBase.defaultProps = {\n defaultExpandedRowIds: []\n };\n return TreeDataStateBase;\n}(PureComponent);\n/** A plugin that manages the expanded state for tree rows. */\nvar TreeDataState = TreeDataStateBase;\nvar pluginDependencies$h = [{\n name: 'TreeDataState'\n}];\nvar expandedTreeRowsComputed = function (_a) {\n var rows = _a.rows,\n getRowId = _a.getRowId,\n expandedRowIds = _a.expandedRowIds;\n return expandedTreeRows(rows, getRowId, expandedRowIds);\n};\nvar getRowIdComputed$1 = function (_a) {\n var getRowId = _a.getRowId,\n rows = _a.rows;\n return customTreeRowIdGetter(getRowId, rows);\n};\nvar getRowLevelKeyComputed = function (_a) {\n var getRowLevelKey = _a.getRowLevelKey,\n rows = _a.rows;\n return customTreeRowLevelKeyGetter(getRowLevelKey, rows);\n};\nvar isTreeRowLeafComputed = function (_a) {\n var rows = _a.rows;\n return isTreeRowLeafGetter(rows);\n};\nvar getTreeRowLevelComputed = function (_a) {\n var rows = _a.rows;\n return getTreeRowLevelGetter(rows);\n};\nvar collapsedTreeRowsGetterComputed = function (_a) {\n var rows = _a.rows,\n getCollapsedRows = _a.getCollapsedRows;\n return collapsedTreeRowsGetter(getCollapsedRows, rows);\n};\nvar unwrappedTreeRowsComputed = function (_a) {\n var rows = _a.rows;\n return unwrappedCustomTreeRows(rows);\n};\nvar CustomTreeDataBase = /*#__PURE__*/function (_super) {\n __extends(CustomTreeDataBase, _super);\n function CustomTreeDataBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomTreeDataBase.prototype.render = function () {\n var getChildRows = this.props.getChildRows;\n var treeRowsComputed = function (_a) {\n var rows = _a.rows;\n return customTreeRowsWithMeta(rows, getChildRows);\n };\n return createElement(Plugin, {\n name: \"CustomTreeData\",\n dependencies: pluginDependencies$h\n }, createElement(Getter, {\n name: \"rows\",\n computed: treeRowsComputed\n }), createElement(Getter, {\n name: \"getRowId\",\n computed: getRowIdComputed$1\n }), createElement(Getter, {\n name: \"getRowLevelKey\",\n computed: getRowLevelKeyComputed\n }), createElement(Getter, {\n name: \"isTreeRowLeaf\",\n computed: isTreeRowLeafComputed\n }), createElement(Getter, {\n name: \"getTreeRowLevel\",\n computed: getTreeRowLevelComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: expandedTreeRowsComputed\n }), createElement(Getter, {\n name: \"getCollapsedRows\",\n computed: collapsedTreeRowsGetterComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: unwrappedTreeRowsComputed\n }));\n };\n return CustomTreeDataBase;\n}(PureComponent);\n/***\r\n * A plugin that converts custom formatted tree data to a supported format and performs\r\n * local row expanding/collapsing.\r\n * */\nvar CustomTreeData = CustomTreeDataBase;\nvar TableTreeColumnBase = /*#__PURE__*/function (_super) {\n __extends(TableTreeColumnBase, _super);\n function TableTreeColumnBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableTreeColumnBase.prototype.render = function () {\n var _a = this.props,\n forColumnName = _a.for,\n showSelectionControls = _a.showSelectionControls,\n showSelectAll = _a.showSelectAll,\n Indent = _a.indentComponent,\n ExpandButton = _a.expandButtonComponent,\n Checkbox = _a.checkboxComponent,\n Content = _a.contentComponent,\n Cell = _a.cellComponent;\n return createElement(Plugin, {\n name: \"TableTreeColumn\",\n dependencies: [{\n name: 'DataTypeProvider',\n optional: true\n }, {\n name: 'TreeDataState'\n }, {\n name: 'SelectionState',\n optional: !showSelectionControls\n }, {\n name: 'IntegratedSelection',\n optional: !showSelectAll\n }, {\n name: 'Table'\n }, {\n name: 'TableHeaderRow',\n optional: true\n }],\n key: forColumnName\n }, createElement(Getter, {\n name: \"tableTreeColumnName\",\n value: forColumnName\n }), createElement(Template, {\n name: \"tableHeaderCellBefore\",\n predicate: function (_a) {\n var column = _a.column;\n return column.name === forColumnName;\n }\n }, createElement(ExpandButton, {\n visible: false,\n expanded: false,\n onToggle: function () {}\n }), showSelectionControls && showSelectAll && createElement(TemplateConnector, null, function (_a, _b) {\n var selectAllAvailable = _a.selectAllAvailable,\n allSelected = _a.allSelected,\n someSelected = _a.someSelected;\n var toggleSelectAll = _b.toggleSelectAll;\n return createElement(Checkbox, {\n disabled: !selectAllAvailable,\n checked: allSelected,\n indeterminate: someSelected,\n onChange: toggleSelectAll\n });\n })), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isTreeTableCell(tableRow, tableColumn, forColumnName);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var getCollapsedRows = _a.getCollapsedRows,\n expandedRowIds = _a.expandedRowIds,\n selection = _a.selection,\n isTreeRowLeaf = _a.isTreeRowLeaf,\n getTreeRowLevel = _a.getTreeRowLevel,\n getCellValue = _a.getCellValue;\n var toggleRowExpanded = _b.toggleRowExpanded,\n toggleSelection = _b.toggleSelection;\n var _c = params.tableRow,\n row = _c.row,\n rowId = _c.rowId;\n var columnName = params.tableColumn.column.name;\n var value = getCellValue(row, columnName);\n var collapsedRows = getCollapsedRows(row);\n return createElement(TemplatePlaceholder, {\n name: \"valueFormatter\",\n params: {\n value: value,\n row: row,\n column: params.tableColumn.column\n }\n }, function (content) {\n return createElement(Cell, __assign({}, params, {\n row: row,\n column: params.tableColumn.column,\n value: value\n }), createElement(Indent, {\n level: getTreeRowLevel(row)\n }), createElement(ExpandButton, {\n visible: collapsedRows ? !!collapsedRows.length : !isTreeRowLeaf(row),\n expanded: expandedRowIds.indexOf(rowId) > -1,\n onToggle: function () {\n return toggleRowExpanded({\n rowId: rowId\n });\n }\n }), showSelectionControls && createElement(Checkbox, {\n disabled: false,\n checked: selection.indexOf(rowId) > -1,\n indeterminate: false,\n onChange: function () {\n return toggleSelection({\n rowIds: [rowId]\n });\n }\n }), createElement(Content, null, content || value));\n });\n });\n }));\n };\n TableTreeColumnBase.defaultProps = {\n showSelectionControls: false,\n showSelectAll: false\n };\n TableTreeColumnBase.components = {\n cellComponent: 'Cell',\n contentComponent: 'Content',\n indentComponent: 'Indent',\n expandButtonComponent: 'ExpandButton',\n checkboxComponent: 'Checkbox'\n };\n return TableTreeColumnBase;\n}(PureComponent);\n/** A plugin that renders a table column with a toggle button and sorting indicators. */\nvar TableTreeColumn = TableTreeColumnBase;\nvar SearchStateBase = /*#__PURE__*/function (_super) {\n __extends(SearchStateBase, _super);\n function SearchStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n value: props.value || props.defaultValue\n };\n var stateHelper = createStateHelper(_this, {\n value: function () {\n var onValueChange = _this.props.onValueChange;\n return onValueChange;\n }\n });\n _this.changeValue = stateHelper.applyFieldReducer.bind(stateHelper, 'value', changeSearchValue);\n return _this;\n }\n SearchStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.value,\n value = _a === void 0 ? prevState.value : _a;\n return {\n value: value\n };\n };\n SearchStateBase.prototype.render = function () {\n var value = this.state.value;\n var filterExpressionComputed = function (_a) {\n var filterExpression = _a.filterExpression,\n columns = _a.columns;\n return searchFilterExpression(value, columns, filterExpression);\n };\n return createElement(Plugin, {\n name: \"SearchState\"\n }, createElement(Getter, {\n name: \"filterExpression\",\n computed: filterExpressionComputed\n }), createElement(Getter, {\n name: \"searchValue\",\n value: value\n }), createElement(Action, {\n name: \"changeSearchValue\",\n action: this.changeValue\n }));\n };\n SearchStateBase.defaultProps = {\n defaultValue: ''\n };\n return SearchStateBase;\n}(PureComponent);\n/** A plugin that manages the search state. */\nvar SearchState = SearchStateBase;\nvar pluginDependencies$i = [{\n name: 'Toolbar'\n}, {\n name: 'SearchState'\n}];\nvar defaultMessages$7 = {\n searchPlaceholder: 'Search...'\n};\nvar SearchPanelBase = /*#__PURE__*/function (_super) {\n __extends(SearchPanelBase, _super);\n function SearchPanelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SearchPanelBase.prototype.render = function () {\n var _a = this.props,\n Input = _a.inputComponent,\n messages = _a.messages;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$7), messages));\n return createElement(Plugin, {\n name: \"SearchPanel\",\n dependencies: pluginDependencies$i\n }, createElement(Template, {\n name: \"toolbarContent\"\n }, createElement(TemplatePlaceholder, null), createElement(TemplateConnector, null, function (_a, _b) {\n var searchValue = _a.searchValue,\n isDataRemote = _a.isDataRemote;\n var changeSearchValue = _b.changeSearchValue,\n scrollToRow = _b.scrollToRow;\n var onValueChange = function (value) {\n if (isDataRemote) {\n scrollToRow(TOP_POSITION);\n }\n changeSearchValue(value);\n };\n return createElement(Input, {\n value: searchValue,\n onValueChange: onValueChange,\n getMessage: getMessage\n });\n })));\n };\n SearchPanelBase.defaultProps = {\n messages: {}\n };\n SearchPanelBase.components = {\n inputComponent: 'Input'\n };\n return SearchPanelBase;\n}(PureComponent);\n/** A plugin that renders the Search Panel. */\nvar SearchPanel = SearchPanelBase;\nvar tableHeaderRowsComputed$2 = function (_a) {\n var tableHeaderRows = _a.tableHeaderRows;\n return tableHeaderRowsWithFixed(tableHeaderRows);\n};\nvar tableHeaderColumnChainsComputed = function (_a) {\n var tableColumns = _a.tableColumns,\n tableHeaderRows = _a.tableHeaderRows,\n tableHeaderColumnChains = _a.tableHeaderColumnChains;\n return tableHeaderColumnChainsWithFixed(tableHeaderColumnChains, tableHeaderRows, tableColumns);\n};\nvar CellPlaceholder$2 = function (props) {\n return createElement(TemplatePlaceholder, {\n params: props\n });\n};\nvar pluginDependencies$j = [{\n name: 'Table'\n}, {\n name: 'TableBandHeader',\n optional: true\n}, {\n name: 'TableColumnReordering',\n optional: true\n}, {\n name: 'TableEditColumn',\n optional: true\n}, {\n name: 'TableEditRow',\n optional: true\n}, {\n name: 'TableFilterRow',\n optional: true\n}, {\n name: 'TableGroupRow',\n optional: true\n}, {\n name: 'TableHeaderRow',\n optional: true\n}, {\n name: 'TableRowDetail',\n optional: true\n}, {\n name: 'TableSelection',\n optional: true\n}, {\n name: 'TableSummaryRow',\n optional: true\n}, {\n name: 'TableTreeColumn',\n optional: true\n}];\n// tslint:disable-next-line: max-line-length\nvar TableFixedColumnsBase = /*#__PURE__*/function (_super) {\n __extends(TableFixedColumnsBase, _super);\n function TableFixedColumnsBase(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n tableColumnDimensions: {}\n };\n return _this;\n }\n TableFixedColumnsBase.prototype.handleListenerSizeChange = function (key, width) {\n var tableColumnDimensions = this.state.tableColumnDimensions;\n if (tableColumnDimensions[key] !== width) {\n this.setState(function (state) {\n var _a;\n return {\n tableColumnDimensions: __assign(__assign({}, state.tableColumnDimensions), (_a = {}, _a[key] = width, _a))\n };\n });\n }\n };\n TableFixedColumnsBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n Cell = _a.cellComponent,\n ListenerRow = _a.listenerRowComponent,\n ListenerCell = _a.listenerCellComponent;\n var leftColumns = this.props.leftColumns;\n var rightColumns = this.props.rightColumns;\n var tableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return tableColumnsWithFixed(tableColumns, leftColumns, rightColumns);\n };\n return createElement(Plugin, {\n name: \"TableFixedColumns\",\n dependencies: pluginDependencies$j\n }, createElement(Getter, {\n name: \"tableHeaderRows\",\n computed: tableHeaderRowsComputed$2\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), createElement(Getter, {\n name: \"tableHeaderColumnChains\",\n computed: tableHeaderColumnChainsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableColumn = _a.tableColumn;\n return !!tableColumn.fixed;\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var tableColumns = _a.tableColumns,\n tableHeaderColumnChains = _a.tableHeaderColumnChains,\n selection = _a.selection,\n highlightSelectedRow = _a.highlightSelectedRow;\n var selected = isRowHighlighted(highlightSelectedRow, selection, params.tableRow);\n var tableColumnDimensions = _this.state.tableColumnDimensions;\n var fixedColumnProps = calculateFixedColumnProps(params, {\n leftColumns: leftColumns,\n rightColumns: rightColumns\n }, tableColumns, tableColumnDimensions, tableHeaderColumnChains);\n return createElement(Cell, __assign({}, params, fixedColumnProps, {\n component: CellPlaceholder$2,\n selected: selected\n }));\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isFixedTableRow(tableRow);\n }\n }, function (params) {\n return createElement(ListenerRow, __assign({}, params));\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isFixedTableRow(tableRow);\n }\n }, function (params) {\n return createElement(ListenerCell, __assign({}, params, {\n listen: !!params.tableColumn.fixed,\n onSizeChange: function (_a) {\n var width = _a.width;\n return _this.handleListenerSizeChange(params.tableColumn.key, width);\n }\n }));\n }));\n };\n TableFixedColumnsBase.components = {\n cellComponent: 'Cell',\n listenerRowComponent: 'ListenerRow',\n listenerCellComponent: 'ListenerCell'\n };\n TableFixedColumnsBase.defaultProps = {\n leftColumns: [],\n rightColumns: []\n };\n return TableFixedColumnsBase;\n}(PureComponent);\n/** A plugin that enables you to fix columns to the left and right sides of the grid. */\nvar TableFixedColumns = TableFixedColumnsBase;\nvar groupSummaryItemsComputed = function (_a) {\n var groupSummaryItems = _a.groupSummaryItems;\n return prepareGroupSummaryItems(groupSummaryItems);\n};\nvar SummaryStateBase = /*#__PURE__*/function (_super) {\n __extends(SummaryStateBase, _super);\n function SummaryStateBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SummaryStateBase.prototype.render = function () {\n var _a = this.props,\n totalItems = _a.totalItems,\n groupItems = _a.groupItems,\n treeItems = _a.treeItems;\n return createElement(Plugin, {\n name: \"SummaryState\"\n }, createElement(Getter, {\n name: \"totalSummaryItems\",\n value: totalItems\n }), createElement(Getter, {\n name: \"groupSummaryItems\",\n value: groupItems\n }), createElement(Getter, {\n name: \"groupSummaryItems\",\n computed: groupSummaryItemsComputed\n }), createElement(Getter, {\n name: \"treeSummaryItems\",\n value: treeItems\n }));\n };\n SummaryStateBase.defaultProps = {\n totalItems: [],\n groupItems: [],\n treeItems: []\n };\n return SummaryStateBase;\n}(PureComponent);\n/** A plugin that provides items for total, group, and tree summaries. */\nvar SummaryState = SummaryStateBase;\nvar pluginDependencies$k = [{\n name: 'SummaryState'\n}, {\n name: 'IntegratedGrouping',\n optional: true\n}];\nvar IntegratedSummaryBase = /*#__PURE__*/function (_super) {\n __extends(IntegratedSummaryBase, _super);\n function IntegratedSummaryBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IntegratedSummaryBase.prototype.render = function () {\n var calculator = this.props.calculator;\n var totalSummaryValuesComputed = function (_a) {\n var rows = _a.rows,\n totalSummaryItems = _a.totalSummaryItems,\n getCellValue = _a.getCellValue,\n getRowLevelKey = _a.getRowLevelKey,\n isGroupRow = _a.isGroupRow,\n getCollapsedRows = _a.getCollapsedRows;\n return totalSummaryValues(rows, totalSummaryItems, getCellValue, getRowLevelKey, isGroupRow, getCollapsedRows, calculator);\n };\n var groupSummaryValuesComputed = function (_a) {\n var rows = _a.rows,\n groupSummaryItems = _a.groupSummaryItems,\n getCellValue = _a.getCellValue,\n getRowLevelKey = _a.getRowLevelKey,\n isGroupRow = _a.isGroupRow,\n getCollapsedRows = _a.getCollapsedRows;\n return groupSummaryValues(rows, groupSummaryItems, getCellValue, getRowLevelKey, isGroupRow, getCollapsedRows, calculator);\n };\n var treeSummaryValuesComputed = function (_a) {\n var rows = _a.rows,\n treeSummaryItems = _a.treeSummaryItems,\n getCellValue = _a.getCellValue,\n getRowLevelKey = _a.getRowLevelKey,\n isGroupRow = _a.isGroupRow,\n getRowId = _a.getRowId;\n return treeSummaryValues(rows, treeSummaryItems, getCellValue, getRowLevelKey, isGroupRow, getRowId, calculator);\n };\n return createElement(Plugin, {\n name: \"IntegratedSummary\",\n dependencies: pluginDependencies$k\n }, createElement(Getter, {\n name: \"totalSummaryValues\",\n computed: totalSummaryValuesComputed\n }), createElement(Getter, {\n name: \"groupSummaryValues\",\n computed: groupSummaryValuesComputed\n }), createElement(Getter, {\n name: \"treeSummaryValues\",\n computed: treeSummaryValuesComputed\n }));\n };\n IntegratedSummaryBase.defaultCalculator = defaultSummaryCalculator;\n return IntegratedSummaryBase;\n}(PureComponent);\n/** A plugin that performs a built-in data summary calculation. */\nvar IntegratedSummary = IntegratedSummaryBase;\nvar pluginDependencies$l = [{\n name: 'SummaryState'\n}];\nvar CustomSummaryBase = /*#__PURE__*/function (_super) {\n __extends(CustomSummaryBase, _super);\n function CustomSummaryBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomSummaryBase.prototype.render = function () {\n var _a = this.props,\n totalValues = _a.totalValues,\n groupValues = _a.groupValues,\n treeValues = _a.treeValues;\n return createElement(Plugin, {\n name: \"CustomSummary\",\n dependencies: pluginDependencies$l\n }, createElement(Getter, {\n name: \"totalSummaryValues\",\n value: totalValues\n }), createElement(Getter, {\n name: \"groupSummaryValues\",\n value: groupValues\n }), createElement(Getter, {\n name: \"treeSummaryValues\",\n value: treeValues\n }));\n };\n return CustomSummaryBase;\n}(PureComponent);\n/** A plugin that allows you to calculate a custom summary. */\nvar CustomSummary = CustomSummaryBase;\nvar dependencies$1 = [{\n name: 'DataTypeProvider',\n optional: true\n}, {\n name: 'SummaryState'\n}, {\n name: 'CustomSummary',\n optional: true\n}, {\n name: 'IntegratedSummary',\n optional: true\n}, {\n name: 'Table'\n}, {\n name: 'TableTreeColumn',\n optional: true\n}];\nvar tableBodyRowsComputed$2 = function (_a) {\n var tableBodyRows = _a.tableBodyRows,\n getRowLevelKey = _a.getRowLevelKey,\n isGroupRow = _a.isGroupRow,\n getRowId = _a.getRowId,\n groupSummaryItems = _a.groupSummaryItems,\n treeSummaryItems = _a.treeSummaryItems;\n return tableRowsWithSummaries(tableBodyRows, groupSummaryItems, treeSummaryItems, getRowLevelKey, isGroupRow, getRowId);\n};\nvar tableFooterRowsComputed = function (_a) {\n var tableFooterRows = _a.tableFooterRows,\n totalSummaryItems = _a.totalSummaryItems;\n return totalSummaryItems.length ? tableRowsWithTotalSummaries(tableFooterRows) : tableFooterRows;\n};\nvar TableSummaryRowBase = /*#__PURE__*/function (_super) {\n __extends(TableSummaryRowBase, _super);\n function TableSummaryRowBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableSummaryRowBase.prototype.renderContent = function (column, columnSummaries) {\n var _a = this.props,\n formatlessSummaryTypes = _a.formatlessSummaryTypes,\n Item = _a.itemComponent,\n messages = _a.messages;\n return createElement(TableSummaryContent, {\n column: column,\n columnSummaries: columnSummaries,\n formatlessSummaryTypes: formatlessSummaryTypes,\n itemComponent: Item,\n messages: messages\n });\n };\n TableSummaryRowBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n TotalRow = _a.totalRowComponent,\n GroupRow = _a.groupRowComponent,\n TreeRow = _a.treeRowComponent,\n TotalCell = _a.totalCellComponent,\n GroupCell = _a.groupCellComponent,\n TreeCell = _a.treeCellComponent,\n TreeColumnCell = _a.treeColumnCellComponent,\n TreeColumnContent = _a.treeColumnContentComponent,\n TreeColumnIndent = _a.treeColumnIndentComponent;\n return createElement(Plugin, {\n name: \"TableSummaryRow\",\n dependencies: dependencies$1\n }, createElement(Getter, {\n name: \"tableBodyRows\",\n computed: tableBodyRowsComputed$2\n }), createElement(Getter, {\n name: \"tableFooterRows\",\n computed: tableFooterRowsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isTotalSummaryTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var totalSummaryItems = _a.totalSummaryItems,\n totalSummaryValues = _a.totalSummaryValues;\n var columnSummaries = getColumnSummaries(totalSummaryItems, params.tableColumn.column.name, totalSummaryValues);\n return createElement(TotalCell, __assign({}, params, {\n column: params.tableColumn.column\n }), _this.renderContent(params.tableColumn.column, columnSummaries));\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isGroupSummaryTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var groupSummaryItems = _a.groupSummaryItems,\n groupSummaryValues = _a.groupSummaryValues;\n var columnSummaries = getColumnSummaries(groupSummaryItems, params.tableColumn.column.name, groupSummaryValues[params.tableRow.row.compoundKey], function (summaryItem) {\n return isFooterSummary(summaryItem);\n });\n return createElement(GroupCell, __assign({}, params, {\n column: params.tableColumn.column\n }), _this.renderContent(params.tableColumn.column, columnSummaries));\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return isTreeSummaryTableCell(tableRow, tableColumn);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var treeSummaryItems = _a.treeSummaryItems,\n treeSummaryValues = _a.treeSummaryValues,\n tableTreeColumnName = _a.tableTreeColumnName,\n getRowId = _a.getRowId,\n getTreeRowLevel = _a.getTreeRowLevel;\n var columnSummaries = getColumnSummaries(treeSummaryItems, params.tableColumn.column.name, treeSummaryValues[getRowId(params.tableRow.row)]);\n if (tableTreeColumnName === params.tableColumn.column.name) {\n return createElement(TreeColumnCell, __assign({}, params, {\n column: params.tableColumn.column\n }), createElement(TreeColumnIndent, {\n level: getTreeRowLevel(params.tableRow.row)\n }), createElement(TreeColumnContent, null, _this.renderContent(params.tableColumn.column, columnSummaries)));\n }\n return createElement(TreeCell, __assign({}, params, {\n column: params.tableColumn.column\n }), _this.renderContent(params.tableColumn.column, columnSummaries));\n });\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isTotalSummaryTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TotalRow, __assign({}, params));\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isGroupSummaryTableRow(tableRow);\n }\n }, function (params) {\n return createElement(GroupRow, __assign({}, params));\n }), createElement(Template, {\n name: \"tableRow\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isTreeSummaryTableRow(tableRow);\n }\n }, function (params) {\n return createElement(TreeRow, __assign({}, params));\n }));\n };\n TableSummaryRowBase.TREE_ROW_TYPE = TABLE_TREE_SUMMARY_TYPE;\n TableSummaryRowBase.GROUP_ROW_TYPE = TABLE_GROUP_SUMMARY_TYPE;\n TableSummaryRowBase.TOTAL_ROW_TYPE = TABLE_TOTAL_SUMMARY_TYPE;\n TableSummaryRowBase.defaultProps = {\n formatlessSummaryTypes: [],\n messages: {}\n };\n TableSummaryRowBase.components = {\n totalRowComponent: 'TotalRow',\n groupRowComponent: 'GroupRow',\n treeRowComponent: 'TreeRow',\n totalCellComponent: 'TotalCell',\n groupCellComponent: 'GroupCell',\n treeCellComponent: 'TreeCell',\n treeColumnCellComponent: 'TableTreeCell',\n treeColumnContentComponent: 'TableTreeContent',\n treeColumnIndentComponent: 'TableTreeIndent',\n itemComponent: 'Item'\n };\n return TableSummaryRowBase;\n}(PureComponent);\n/** A plugin that renders table rows that display a total, group, and tree summary. */\nvar TableSummaryRow = TableSummaryRowBase;\nvar virtualRowsComputed = function (_a) {\n var skip = _a.skip,\n rows = _a.rows,\n virtualRowsCache = _a.virtualRowsCache;\n return virtualRowsWithCache(skip, rows, virtualRowsCache);\n};\nvar rowsComputed = function (_a) {\n var virtualRows = _a.virtualRows,\n availableRowCount = _a.availableRowCount;\n return plainRows(virtualRows, availableRowCount);\n};\nvar loadedRowsStartComputed = function (_a) {\n var virtualRows = _a.virtualRows;\n return loadedRowsStart(virtualRows);\n};\n// tslint:disable-next-line: max-line-length\nvar VirtualTableStateBase = /*#__PURE__*/function (_super) {\n __extends(VirtualTableStateBase, _super);\n function VirtualTableStateBase(props) {\n var _this = _super.call(this, props) || this;\n _this.requestTimer = 0;\n _this.setViewport = function (viewport, _a, _b) {\n var virtualRows = _a.virtualRows;\n var requestNextPage = _b.requestNextPage;\n var pageSize = _this.props.pageSize;\n var referenceIndex = getReferenceIndex(viewport);\n if (needFetchMorePages(virtualRows, referenceIndex, pageSize)) {\n requestNextPage({\n referenceIndex: referenceIndex\n });\n }\n };\n _this.requestNextPageAction = function (_a, _b) {\n var referenceIndex = _a.referenceIndex,\n forceReload = _a.forceReload;\n var virtualRows = _b.virtualRows;\n var _c = _this.props,\n pageSize = _c.pageSize,\n totalRowCount = _c.totalRowCount,\n infiniteScrolling = _c.infiniteScrolling;\n var requestedStartIndex = _this.state.requestedStartIndex;\n var actualVirtualRows = forceReload ? emptyVirtualRows : virtualRows;\n var _d = getRequestMeta(referenceIndex, virtualRows, pageSize, totalRowCount, forceReload, infiniteScrolling),\n requestedRange = _d.requestedRange,\n actualBounds = _d.actualBounds;\n if (forceReload || shouldSendRequest(requestedRange, requestedStartIndex)) {\n _this.requestNextPage(requestedRange, actualVirtualRows, actualBounds);\n }\n };\n _this.clearRowsCacheAction = function (_, __, _a) {\n var requestNextPage = _a.requestNextPage;\n _this.setState({\n virtualRowsCache: emptyVirtualRows\n });\n requestNextPage({\n forceReload: true\n });\n };\n _this.resetVirtualTablePosition = function () {\n return _this.requestFirstPage();\n };\n _this.state = {\n virtualRowsCache: emptyVirtualRows,\n requestedStartIndex: -1,\n availableRowCount: props.totalRowCount || 0\n };\n return _this;\n }\n VirtualTableStateBase.prototype.requestNextPage = function (requestedRange, virtualRows, actualBounds) {\n var _this = this;\n var _a = this.props,\n getRows = _a.getRows,\n infiniteScrolling = _a.infiniteScrolling,\n totalRowCount = _a.totalRowCount;\n var stateAvailableCount = this.state.availableRowCount;\n if (this.requestTimer !== 0) {\n clearTimeout(this.requestTimer);\n }\n this.requestTimer = window.setTimeout(function () {\n var requestedStartIndex = requestedRange.start,\n end = requestedRange.end;\n var loadCount = end - requestedStartIndex;\n var virtualRowsCache = trimRowsToInterval(virtualRows, actualBounds);\n var availableRowCount = getAvailableRowCount(infiniteScrolling, actualBounds.end, stateAvailableCount, totalRowCount);\n getRows(requestedStartIndex, loadCount);\n _this.setState({\n virtualRowsCache: virtualRowsCache,\n availableRowCount: availableRowCount,\n requestedStartIndex: requestedStartIndex\n });\n }, 50);\n };\n VirtualTableStateBase.prototype.requestFirstPage = function () {\n var _this = this;\n var _a = this.props,\n getRows = _a.getRows,\n pageSize = _a.pageSize;\n if (this.requestTimer !== 0) {\n clearTimeout(this.requestTimer);\n }\n this.requestTimer = window.setTimeout(function () {\n getRows(0, 2 * pageSize);\n _this.setState({\n virtualRowsCache: emptyVirtualRows,\n requestedStartIndex: 0\n });\n }, 50);\n };\n VirtualTableStateBase.getDerivedStateFromProps = function (nextProps, prevState) {\n var _a = nextProps.availableRowCount,\n prevAvailableRowCount = _a === void 0 ? prevState.availableRowCount : _a,\n totalRowCount = nextProps.totalRowCount,\n pageSize = nextProps.pageSize,\n infiniteScrolling = nextProps.infiniteScrolling;\n var prevRequestedStartIndex = prevState.requestedStartIndex,\n prevVirtualRowCache = prevState.virtualRowsCache;\n var availableRowCount = getAvailableRowCount(infiniteScrolling, pageSize * 2, prevAvailableRowCount, totalRowCount);\n var requestedStartIndex = Math.max(Math.min(prevRequestedStartIndex, availableRowCount - pageSize), 0);\n var virtualRowsCache = prevRequestedStartIndex === requestedStartIndex ? prevVirtualRowCache : emptyVirtualRows;\n return {\n availableRowCount: availableRowCount,\n requestedStartIndex: requestedStartIndex,\n virtualRowsCache: virtualRowsCache\n };\n };\n VirtualTableStateBase.prototype.componentDidMount = function () {\n var _a = this.props,\n getRows = _a.getRows,\n pageSize = _a.pageSize,\n infiniteScrolling = _a.infiniteScrolling,\n totalRowCount = _a.totalRowCount;\n getRows(0, 2 * pageSize);\n var newRowCount = infiniteScrolling ? 2 * pageSize : totalRowCount;\n this.setState({\n availableRowCount: newRowCount\n });\n };\n VirtualTableStateBase.prototype.componentWillUnmount = function () {\n if (this.requestTimer !== 0) {\n window.clearTimeout(this.requestTimer);\n }\n };\n VirtualTableStateBase.prototype.render = function () {\n var _a = this.state,\n virtualRowsCache = _a.virtualRowsCache,\n availableRowCount = _a.availableRowCount;\n var _b = this.props,\n skip = _b.skip,\n pageSize = _b.pageSize,\n loading = _b.loading,\n infiniteScrolling = _b.infiniteScrolling;\n return createElement(Plugin, {\n name: \"VirtualTableState\"\n }, createElement(Getter, {\n name: \"isDataRemote\",\n value: true\n }), createElement(Getter, {\n name: \"isDataLoading\",\n value: loading\n }), createElement(Getter, {\n name: \"isScrollingInfinite\",\n value: infiniteScrolling\n }), createElement(Getter, {\n name: \"skip\",\n value: skip\n }), createElement(Getter, {\n name: \"virtualRowsCache\",\n value: virtualRowsCache\n }), createElement(Getter, {\n name: \"pageSize\",\n value: pageSize\n }), createElement(Getter, {\n name: \"availableRowCount\",\n value: availableRowCount\n }), createElement(Getter, {\n name: \"virtualRows\",\n computed: virtualRowsComputed\n }), createElement(Getter, {\n name: \"rows\",\n computed: rowsComputed\n }), createElement(Getter, {\n name: \"loadedRowsStart\",\n computed: loadedRowsStartComputed\n }), createElement(Action, {\n name: \"requestNextPage\",\n action: this.requestNextPageAction\n }), createElement(Action, {\n name: \"setViewport\",\n action: this.setViewport\n }), createElement(Action, {\n name: \"clearRowCache\",\n action: this.clearRowsCacheAction\n }), createElement(Action, {\n name: \"changeColumnSorting\",\n action: this.clearRowsCacheAction\n }), createElement(Action, {\n name: \"changeColumnFilter\",\n action: this.resetVirtualTablePosition\n }), createElement(Action, {\n name: \"changeSearchValue\",\n action: this.resetVirtualTablePosition\n }), createElement(Action, {\n name: \"changeColumnGrouping\",\n action: this.resetVirtualTablePosition\n }));\n };\n VirtualTableStateBase.defaultProps = {\n pageSize: 100\n };\n return VirtualTableStateBase;\n}(PureComponent);\nvar VirtualTableState = VirtualTableStateBase;\nvar pluginDependencies$m = [{\n name: 'EditingState'\n}, {\n name: 'Table'\n}, {\n name: 'DataTypeProvider',\n optional: true\n}];\nvar rowsWithEditingCellsComputed = function (_a) {\n var tableBodyRows = _a.tableBodyRows,\n editingCells = _a.editingCells;\n return rowsWithEditingCells(tableBodyRows, editingCells);\n};\nvar columnsWithEditingCellsComputed = function (_a) {\n var tableColumns = _a.tableColumns,\n editingCells = _a.editingCells;\n return columnsWithEditingCells(tableColumns, editingCells);\n};\n/* tslint:disable-next-line max-line-length*/\nvar INLINE_CELL_EDITING_ERROR = 'The startEditAction property of the InlineCellEditing plugin is given an invalid value.';\n// tslint:disable-next-line: max-line-length\nvar TableInlineCellEditingBase = function (props) {\n var EditCell = props.cellComponent,\n startEditAction = props.startEditAction,\n selectTextOnEditStart = props.selectTextOnEditStart;\n return createElement(Plugin, {\n name: \"TableInlineCellEditing\",\n dependencies: pluginDependencies$m\n }, createElement(Getter, {\n name: \"tableBodyRows\",\n computed: rowsWithEditingCellsComputed\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: columnsWithEditingCellsComputed\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return tableRow.type === TABLE_DATA_TYPE && tableColumn.type === TABLE_DATA_TYPE;\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var _c;\n var startEditCells = _b.startEditCells;\n var rowId = params.tableRow.rowId,\n column = params.tableColumn.column;\n var columnName = column.name;\n if (startEditAction !== 'click' && startEditAction !== 'doubleClick') {\n throw new Error(INLINE_CELL_EDITING_ERROR);\n }\n var startEditCellCallback = function () {\n return startEditCells({\n editingCells: [{\n rowId: rowId,\n columnName: columnName\n }]\n });\n };\n var eventName = startEditAction === 'click' ? 'onClick' : 'onDoubleClick';\n var newParams = __assign(__assign({}, params), (_c = {}, _c[eventName] = startEditCellCallback, _c));\n return createElement(TemplatePlaceholder, {\n params: newParams\n });\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow,\n tableColumn = _a.tableColumn;\n return tableRow.hasEditCell && tableColumn.hasEditCell;\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var getCellValue = _a.getCellValue,\n createRowChange = _a.createRowChange,\n rowChanges = _a.rowChanges,\n isColumnEditingEnabled = _a.isColumnEditingEnabled;\n var changeRow = _b.changeRow,\n stopEditCells = _b.stopEditCells,\n commitChangedRows = _b.commitChangedRows,\n cancelChangedRows = _b.cancelChangedRows;\n var _c = params.tableRow,\n rowId = _c.rowId,\n row = _c.row,\n column = params.tableColumn.column;\n var columnName = column.name;\n var changedRow = __assign(__assign({}, row), getRowChange(rowChanges, rowId));\n var value = getCellValue(changedRow, columnName);\n var onValueChange = function (newValue) {\n var changeArgs = {\n rowId: rowId,\n change: createRowChange(changedRow, newValue, columnName)\n };\n changeRow(changeArgs);\n };\n var onKeyDown = function (_a) {\n var key = _a.key;\n if (key === 'Enter') {\n commitChangedRows({\n rowIds: [rowId]\n });\n stopEditCells({\n editingCells: [{\n rowId: rowId,\n columnName: columnName\n }]\n });\n } else if (key === 'Escape') {\n cancelChangedRows({\n rowIds: [rowId]\n });\n stopEditCells({\n editingCells: [{\n rowId: rowId,\n columnName: columnName\n }]\n });\n }\n };\n var onBlur = function () {\n commitChangedRows({\n rowIds: [rowId]\n });\n stopEditCells({\n editingCells: [{\n rowId: rowId,\n columnName: columnName\n }]\n });\n };\n var onFocus = selectTextOnEditStart ? function (e) {\n return e.target.select();\n } : function () {};\n var editingEnabled = isColumnEditingEnabled(columnName);\n return createElement(TemplatePlaceholder, {\n name: \"valueEditor\",\n params: {\n column: column,\n row: row,\n value: value,\n onValueChange: onValueChange,\n disabled: !editingEnabled\n }\n }, function (content) {\n return createElement(EditCell, __assign({}, params, {\n row: row,\n column: column,\n value: value,\n editingEnabled: editingEnabled,\n onValueChange: onValueChange,\n autoFocus: true,\n onKeyDown: onKeyDown,\n onBlur: onBlur,\n onFocus: onFocus\n }), content);\n });\n });\n }));\n};\nTableInlineCellEditingBase.components = {\n cellComponent: 'Cell'\n};\nTableInlineCellEditingBase.defaultProps = {\n startEditAction: 'click',\n selectTextOnEditStart: false\n};\n// tslint:disable-next-line: max-line-length\nvar TableInlineCellEditing = TableInlineCellEditingBase;\nvar defaultMessages$8 = {\n showExportMenu: 'Export',\n exportAll: 'Export all data',\n exportSelected: 'Export selected rows'\n};\nvar ExportPanelBase = /*#__PURE__*/function (_super) {\n __extends(ExportPanelBase, _super);\n function ExportPanelBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n visible: false\n };\n _this.setButtonRef = function (button) {\n return _this.button = button;\n };\n _this.handleToggle = function () {\n var visible = _this.state.visible;\n _this.setState({\n visible: !visible\n });\n };\n _this.handleHide = function () {\n return _this.setState({\n visible: false\n });\n };\n return _this;\n }\n ExportPanelBase.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n ToggleButton = _a.toggleButtonComponent,\n Menu = _a.menuComponent,\n MenuItem = _a.menuItemComponent,\n messages = _a.messages,\n startExport = _a.startExport;\n var visible = this.state.visible;\n var getMessage = getMessagesFormatter(__assign(__assign({}, defaultMessages$8), messages));\n return createElement(Plugin, {\n name: \"ExportPanel\",\n dependencies: [{\n name: 'SelectionState',\n optional: true\n }, {\n name: 'Toolbar'\n }]\n }, createElement(Template, {\n name: \"toolbarContent\"\n }, createElement(TemplatePlaceholder, null), createElement(TemplateConnector, null, function (_a) {\n var selection = _a.selection;\n return createElement(Fragment, null, createElement(ToggleButton, {\n buttonRef: _this.setButtonRef,\n onToggle: _this.handleToggle,\n getMessage: getMessage\n }), createElement(Menu, {\n visible: visible,\n onHide: _this.handleHide,\n target: _this.button\n }, createElement(MenuItem, {\n key: \"exportAll\",\n text: getMessage('exportAll'),\n onClick: function () {\n _this.handleHide();\n startExport();\n }\n }), (selection === null || selection === void 0 ? void 0 : selection.length) ? createElement(MenuItem, {\n key: \"exportSelected\",\n text: getMessage('exportSelected'),\n onClick: function () {\n _this.handleHide();\n startExport({\n selectedOnly: true\n });\n }\n }) : null));\n })));\n };\n ExportPanelBase.components = {\n toggleButtonComponent: 'ToggleButton',\n menuComponent: 'Menu',\n menuItemComponent: 'MenuItem'\n };\n return ExportPanelBase;\n}(PureComponent);\nvar ExportPanel = ExportPanelBase;\nvar getRowStyle = function (_a) {\n var row = _a.row;\n return row.height !== undefined ? {\n height: row.height + \"px\"\n } : undefined;\n};\nvar isNumber = function (value) {\n return typeof value === 'number' || !Number.isNaN(Number(value));\n};\n\n/* globals requestAnimationFrame cancelAnimationFrame */\nvar TableLayoutBase = /*#__PURE__*/function (_super) {\n __extends(TableLayoutBase, _super);\n function TableLayoutBase(props) {\n var _this = _super.call(this, props) || this;\n _this.savedOffsetWidth = -1;\n _this.raf = -1;\n _this.state = {\n animationState: new Map()\n };\n _this.animations = new Map();\n _this.savedScrollWidth = {};\n _this.tableRef = createRef();\n return _this;\n }\n TableLayoutBase.prototype.componentDidUpdate = function (prevProps) {\n var columns = this.props.columns;\n var prevColumns = prevProps.columns;\n var animationState = this.state.animationState;\n var activeAnimationExists = !shallowEqual(columns, prevColumns) || !!animationState.size || !!this.animations.size;\n // NOTE: animation should be recomputed only when columns are changed or\n // an active animation is in progress. Otherwise it will be recalculated on\n // each scroll event.\n if (activeAnimationExists) {\n this.processAnimation(prevColumns);\n }\n };\n TableLayoutBase.prototype.processAnimation = function (prevColumns) {\n var columns = this.props.columns;\n var tableWidth = this.getTableWidth(prevColumns, columns);\n this.animations = getAnimations(prevColumns, columns, tableWidth, this.animations);\n cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(this.processAnimationFrame.bind(this));\n };\n TableLayoutBase.prototype.getTableWidth = function (prevColumns, columns) {\n var _a = this.tableRef.current,\n offsetWidth = _a.offsetWidth,\n scrollWidth = _a.scrollWidth;\n var animationState = this.state.animationState;\n var widthChanged = this.savedOffsetWidth !== offsetWidth || !this.savedScrollWidth[columns.length];\n var columnCountChanged = columns.length !== prevColumns.length;\n if (columnCountChanged || widthChanged && !animationState.size) {\n this.savedScrollWidth = {};\n this.savedScrollWidth[columns.length] = scrollWidth;\n this.savedOffsetWidth = offsetWidth;\n }\n return this.savedScrollWidth[columns.length];\n };\n TableLayoutBase.prototype.getColumns = function () {\n var columns = this.props.columns;\n var animationState = this.state.animationState;\n var result = columns;\n var isFixedWidth = columns.filter(function (column) {\n return column.width === undefined || column.width === 'auto';\n }).length === 0;\n if (isFixedWidth) {\n // presumably a flex column added here instead of in a getter in the Table plugin\n // to make sure that all manipulations on taleColumns have already done earlier\n result = __spread(result, [{\n key: TABLE_FLEX_TYPE.toString(),\n type: TABLE_FLEX_TYPE\n }]);\n }\n if (animationState.size) {\n result = result.map(function (column) {\n return animationState.has(column.key) ? __assign(__assign({}, column), {\n animationState: animationState.get(column.key)\n }) : column;\n });\n }\n return result;\n };\n TableLayoutBase.prototype.processAnimationFrame = function () {\n var animationComponentState = this.state.animationState;\n this.animations = filterActiveAnimations(this.animations);\n if (!this.animations.size) {\n if (animationComponentState.size) {\n this.setState({\n animationState: new Map()\n });\n }\n return;\n }\n var animationState = evalAnimations(this.animations);\n this.setState({\n animationState: animationState\n });\n };\n TableLayoutBase.prototype.render = function () {\n var _a = this.props,\n Layout = _a.layoutComponent,\n minColumnWidth = _a.minColumnWidth,\n restProps = __rest(_a, [\"layoutComponent\", \"minColumnWidth\"]);\n var columns = this.getColumns();\n var minWidth = columns.map(function (column) {\n return column.width || (column.type === TABLE_FLEX_TYPE ? 0 : minColumnWidth);\n }).filter(function (value) {\n return value !== 'auto' && value !== 0;\n }).map(function (value) {\n return isNumber(value) ? value + \"px\" : value;\n }).join(' + ');\n return createElement(Layout, __assign({}, restProps, {\n tableRef: this.tableRef,\n columns: columns,\n minWidth: minWidth,\n minColumnWidth: minColumnWidth\n }));\n };\n return TableLayoutBase;\n}(PureComponent);\n/** @internal */\nvar TableLayout = TableLayoutBase;\n\n/** @internal */\nvar ColumnGroup = /*#__PURE__*/function (_super) {\n __extends(ColumnGroup, _super);\n function ColumnGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnGroup.prototype.render = function () {\n var columns = this.props.columns;\n return createElement(\"colgroup\", null, columns.map(function (_a) {\n var key = _a.key,\n width = _a.width;\n var styleWidth = typeof width === 'number' ? width + \"px\" : width;\n return createElement(\"col\", {\n key: key,\n style: width !== undefined ? {\n width: styleWidth\n } : undefined\n });\n }));\n };\n return ColumnGroup;\n}(PureComponent);\nvar VirtualRowLayout = /*#__PURE__*/function (_super) {\n __extends(VirtualRowLayout, _super);\n function VirtualRowLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VirtualRowLayout.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props,\n prevCells = _a.cells,\n prevRow = _a.row;\n var nextCells = nextProps.cells,\n nextRow = nextProps.row;\n if (prevRow !== nextRow || prevCells.length !== nextCells.length) {\n return true;\n }\n var propsAreNotEqual = nextCells.some(function (nextCell, i) {\n var prevCell = prevCells[i];\n return prevCell.column !== nextCell.column || prevCell.colSpan !== nextCell.colSpan;\n });\n return propsAreNotEqual;\n };\n VirtualRowLayout.prototype.render = function () {\n var _a = this.props,\n row = _a.row,\n cells = _a.cells,\n Row = _a.rowComponent,\n Cell = _a.cellComponent;\n return createElement(Row, {\n tableRow: row,\n style: getRowStyle({\n row: row\n })\n }, cells.map(function (_a) {\n var column = _a.column,\n colSpan = _a.colSpan;\n return createElement(Cell, {\n key: column.key,\n tableRow: row,\n tableColumn: column,\n colSpan: colSpan\n });\n }));\n };\n return VirtualRowLayout;\n}(Component);\n\n// tslint:disable-next-line: max-line-length\nvar VirtualTableLayoutBlock = /*#__PURE__*/function (_super) {\n __extends(VirtualTableLayoutBlock, _super);\n function VirtualTableLayoutBlock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VirtualTableLayoutBlock.prototype.render = function () {\n var _a = this.props,\n name = _a.name,\n tableRef = _a.tableRef,\n collapsedGrid = _a.collapsedGrid,\n minWidth = _a.minWidth,\n blockRefsHandler = _a.blockRefsHandler,\n rowRefsHandler = _a.rowRefsHandler,\n Table = _a.tableComponent,\n Body = _a.bodyComponent,\n cellComponent = _a.cellComponent,\n rowComponent = _a.rowComponent,\n marginBottom = _a.marginBottom;\n return createElement(RefHolder, {\n ref: function (ref) {\n return blockRefsHandler(name, ref);\n }\n }, createElement(Table, {\n tableRef: tableRef,\n style: __assign({\n minWidth: minWidth + \"px\"\n }, marginBottom ? {\n marginBottom: marginBottom + \"px\"\n } : null)\n }, createElement(ColumnGroup, {\n columns: collapsedGrid.columns\n }), createElement(Body, null, collapsedGrid.rows.map(function (visibleRow) {\n var row = visibleRow.row,\n _a = visibleRow.cells,\n cells = _a === void 0 ? [] : _a;\n return createElement(RefHolder, {\n key: row.key,\n ref: function (ref) {\n return rowRefsHandler(row, ref);\n }\n }, createElement(VirtualRowLayout, {\n row: row,\n cells: cells,\n rowComponent: rowComponent,\n cellComponent: cellComponent\n }));\n }))));\n };\n VirtualTableLayoutBlock.defaultProps = {\n blockRefsHandler: function () {},\n rowRefsHandler: function () {},\n tableRef: createRef()\n };\n return VirtualTableLayoutBlock;\n}(PureComponent);\nvar AUTO_HEIGHT = 'auto';\nvar defaultProps$3 = {\n headerRows: [],\n footerRows: [],\n headComponent: function () {\n return null;\n },\n headTableComponent: function () {\n return null;\n },\n footerComponent: function () {\n return null;\n },\n footerTableComponent: function () {\n return null;\n }\n};\n/** @internal */\n// tslint:disable-next-line: max-line-length\nvar VirtualTableLayout = /*#__PURE__*/function (_super) {\n __extends(VirtualTableLayout, _super);\n function VirtualTableLayout(props) {\n var _this = _super.call(this, props) || this;\n _this.rowRefs = new Map();\n _this.blockRefs = new Map();\n _this.viewportTop = 0;\n _this.containerHeight = 600;\n _this.containerWidth = 800;\n _this.viewportLeft = 0;\n _this.getRowHeight = function (row) {\n var rowHeights = _this.state.rowHeights;\n var estimatedRowHeight = _this.props.estimatedRowHeight;\n if (row) {\n var storedHeight = rowHeights.get(row.key);\n if (storedHeight !== undefined) return storedHeight;\n if (row.height) return row.height;\n }\n return estimatedRowHeight;\n };\n _this.registerRowRef = function (row, ref) {\n if (ref === null) {\n _this.rowRefs.delete(row);\n } else {\n _this.rowRefs.set(row, ref);\n }\n };\n _this.registerBlockRef = function (name, ref) {\n if (ref === null) {\n _this.blockRefs.delete(name);\n } else {\n _this.blockRefs.set(name, ref);\n }\n };\n _this.onScroll = function (e) {\n var node = e.target;\n if (_this.shouldSkipScrollEvent(e)) {\n return;\n }\n var viewportTop = node.scrollTop,\n viewportLeft = node.scrollLeft;\n _this.viewportTop = viewportTop;\n _this.viewportLeft = viewportLeft;\n _this.updateViewport();\n };\n _this.handleContainerSizeChange = function (_a) {\n var width = _a.width,\n height = _a.height;\n _this.containerHeight = height;\n _this.containerWidth = width;\n _this.updateViewport();\n };\n _this.state = {\n rowHeights: new Map(),\n height: 0,\n headerHeight: 0,\n bodyHeight: 0,\n footerHeight: 0,\n visibleRowBoundaries: {}\n };\n var headerHeight = props.headerRows.reduce(function (acc, row) {\n return acc + _this.getRowHeight(row);\n }, 0);\n var footerHeight = props.footerRows.reduce(function (acc, row) {\n return acc + _this.getRowHeight(row);\n }, 0);\n _this.state = __assign(__assign({}, _this.state), {\n headerHeight: headerHeight,\n footerHeight: footerHeight\n });\n _this.getColumnWidthGetter = memoize(function (tableColumns, tableWidth, minColumnWidth) {\n return getColumnWidthGetter(tableColumns, tableWidth, minColumnWidth);\n });\n return _this;\n }\n VirtualTableLayout.prototype.componentDidMount = function () {\n this.storeRowHeights();\n this.storeBlockHeights();\n };\n VirtualTableLayout.prototype.componentDidUpdate = function (prevProps) {\n this.storeRowHeights();\n this.storeBlockHeights();\n var _a = this.props,\n bodyRows = _a.bodyRows,\n columns = _a.columns;\n // NOTE: the boundaries depend not only on scroll position and container dimensions\n // but on body rows too. This boundaries update is especially important when\n // lazy loading is used because by the time that all involved events are handled\n // no rows are loaded yet.\n var bodyRowsChanged = prevProps.bodyRows !== bodyRows;\n // Also it's the only place where we can respond to the column count change\n var columnCountChanged = prevProps.columns.length !== columns.length;\n if (bodyRowsChanged || columnCountChanged) {\n this.updateViewport();\n }\n };\n VirtualTableLayout.getDerivedStateFromProps = function (nextProps, prevState) {\n var prevRowHeight = prevState.rowHeights;\n var rowHeights = __spread(nextProps.headerRows, nextProps.bodyRows, nextProps.footerRows).reduce(function (acc, row) {\n var rowHeight = prevRowHeight.get(row.key);\n if (rowHeight !== undefined) {\n acc.set(row.key, rowHeight);\n }\n return acc;\n }, new Map());\n return {\n rowHeights: rowHeights\n };\n };\n VirtualTableLayout.prototype.storeRowHeights = function () {\n var _this = this;\n var rowsWithChangedHeights = Array.from(this.rowRefs.entries()).map(function (_a) {\n var _b = __read(_a, 2),\n row = _b[0],\n ref = _b[1];\n return [row, findDOMNode(ref)];\n }).filter(function (_a) {\n var _b = __read(_a, 2),\n node = _b[1];\n return !!node;\n }).map(function (_a) {\n var _b = __read(_a, 2),\n row = _b[0],\n node = _b[1];\n return [row, node.getBoundingClientRect().height];\n }).filter(function (_a) {\n var _b = __read(_a, 1),\n row = _b[0];\n return row.type !== TABLE_STUB_TYPE;\n }).filter(function (_a) {\n var _b = __read(_a, 2),\n row = _b[0],\n height = _b[1];\n return height !== _this.getRowHeight(row);\n });\n if (rowsWithChangedHeights.length) {\n var rowHeights_1 = this.state.rowHeights;\n rowsWithChangedHeights.forEach(function (_a) {\n var _b = __read(_a, 2),\n row = _b[0],\n height = _b[1];\n return rowHeights_1.set(row.key, height);\n });\n this.setState({\n rowHeights: rowHeights_1\n });\n }\n };\n VirtualTableLayout.prototype.storeBlockHeights = function () {\n var _this = this;\n var getBlockHeight = function (blockName) {\n return _this.blockRefs.get(blockName) ? findDOMNode(_this.blockRefs.get(blockName)).getBoundingClientRect().height : 0;\n };\n var headerHeight = getBlockHeight('header');\n var bodyHeight = getBlockHeight('body');\n var footerHeight = getBlockHeight('footer');\n var _a = this.state,\n prevHeaderHeight = _a.headerHeight,\n prevBodyHeight = _a.bodyHeight,\n prevFooterHeight = _a.footerHeight;\n if (prevHeaderHeight !== headerHeight || prevBodyHeight !== bodyHeight || prevFooterHeight !== footerHeight) {\n this.setState({\n headerHeight: headerHeight,\n bodyHeight: bodyHeight,\n footerHeight: footerHeight\n });\n }\n };\n VirtualTableLayout.prototype.shouldSkipScrollEvent = function (e) {\n var node = e.target;\n // NOTE: prevent nested scroll to update viewport\n if (node !== e.currentTarget) {\n return true;\n }\n // NOTE: normalize position:\n // in Firefox and Chrome (zoom > 100%) when scrolled to the bottom\n // in Edge when scrolled to the right edge\n var correction = 1;\n var nodeHorizontalOffset = parseInt(node.scrollLeft + node.clientWidth, 10) - correction;\n var nodeVerticalOffset = parseInt(node.scrollTop + node.clientHeight, 10) - correction;\n // NOTE: prevent iOS to flicker in bounces and correct rendering on high dpi screens\n if (node.scrollTop < 0 || node.scrollLeft < 0 || nodeHorizontalOffset > Math.max(node.scrollWidth, node.clientWidth) || nodeVerticalOffset > Math.max(node.scrollHeight, node.clientHeight)) {\n return true;\n }\n return false;\n };\n VirtualTableLayout.prototype.updateViewport = function () {\n var _a = this.props,\n viewport = _a.viewport,\n setViewport = _a.setViewport;\n var newViewport = this.calculateViewport();\n if (viewport !== newViewport) {\n setViewport(newViewport);\n }\n };\n VirtualTableLayout.prototype.calculateViewport = function () {\n var _a = this,\n state = _a.state,\n viewportTop = _a.viewportTop,\n viewportLeft = _a.viewportLeft,\n containerHeight = _a.containerHeight,\n containerWidth = _a.containerWidth;\n var _b = this.props,\n loadedRowsStart = _b.loadedRowsStart,\n bodyRows = _b.bodyRows,\n headerRows = _b.headerRows,\n footerRows = _b.footerRows,\n estimatedRowHeight = _b.estimatedRowHeight,\n columns = _b.columns,\n minColumnWidth = _b.minColumnWidth,\n isDataRemote = _b.isDataRemote,\n viewport = _b.viewport;\n var getColumnWidth = this.getColumnWidthGetter(columns, containerWidth, minColumnWidth);\n return getViewport(__assign(__assign({}, state), {\n viewportTop: viewportTop,\n viewportLeft: viewportLeft,\n containerHeight: containerHeight,\n containerWidth: containerWidth\n }), {\n loadedRowsStart: loadedRowsStart,\n columns: columns,\n bodyRows: bodyRows,\n headerRows: headerRows,\n footerRows: footerRows,\n isDataRemote: isDataRemote,\n viewport: viewport\n }, estimatedRowHeight, this.getRowHeight, getColumnWidth);\n };\n VirtualTableLayout.prototype.getCollapsedGrids = function (viewport) {\n var _a = this,\n containerWidth = _a.containerWidth,\n viewportLeft = _a.viewportLeft;\n var _b = this.props,\n headerRows = _b.headerRows,\n bodyRows = _b.bodyRows,\n footerRows = _b.footerRows,\n columns = _b.columns,\n loadedRowsStart = _b.loadedRowsStart,\n totalRowCount = _b.totalRowCount,\n getCellColSpan = _b.getCellColSpan,\n minColumnWidth = _b.minColumnWidth;\n var getColumnWidth = this.getColumnWidthGetter(columns, containerWidth, minColumnWidth);\n return getCollapsedGrids({\n headerRows: headerRows,\n bodyRows: bodyRows,\n footerRows: footerRows,\n columns: columns,\n loadedRowsStart: loadedRowsStart,\n totalRowCount: totalRowCount,\n getCellColSpan: getCellColSpan,\n viewportLeft: viewportLeft,\n containerWidth: containerWidth,\n viewport: viewport,\n getRowHeight: this.getRowHeight,\n getColumnWidth: getColumnWidth\n });\n };\n VirtualTableLayout.prototype.render = function () {\n var _a = this.props,\n Container = _a.containerComponent,\n HeadTable = _a.headTableComponent,\n FootTable = _a.footerTableComponent,\n Table = _a.tableComponent,\n Head = _a.headComponent,\n Body = _a.bodyComponent,\n Footer = _a.footerComponent,\n tableRef = _a.tableRef,\n height = _a.height,\n headerRows = _a.headerRows,\n footerRows = _a.footerRows,\n minColumnWidth = _a.minColumnWidth,\n minWidth = _a.minWidth,\n cellComponent = _a.cellComponent,\n rowComponent = _a.rowComponent,\n viewport = _a.viewport,\n scrollTop = _a.scrollTop;\n var _b = this.state,\n headerHeight = _b.headerHeight,\n bodyHeight = _b.bodyHeight,\n footerHeight = _b.footerHeight;\n var containerHeight = this.containerHeight;\n var collapsedGrids = this.getCollapsedGrids(viewport);\n var commonProps = {\n cellComponent: cellComponent,\n rowComponent: rowComponent,\n minColumnWidth: minColumnWidth,\n minWidth: minWidth,\n blockRefsHandler: this.registerBlockRef,\n rowRefsHandler: this.registerRowRef\n };\n var sizerHeight = height === AUTO_HEIGHT ? null : height;\n return createElement(Sizer, {\n onSizeChange: this.handleContainerSizeChange,\n containerComponent: Container,\n style: {\n height: sizerHeight\n },\n onScroll: this.onScroll,\n scrollTop: scrollTop\n }, !!headerRows.length && createElement(VirtualTableLayoutBlock, __assign({}, commonProps, {\n name: \"header\",\n collapsedGrid: collapsedGrids.headerGrid,\n tableComponent: HeadTable,\n bodyComponent: Head\n })), createElement(VirtualTableLayoutBlock, __assign({}, commonProps, {\n name: \"body\",\n collapsedGrid: collapsedGrids.bodyGrid,\n tableComponent: Table,\n bodyComponent: Body,\n tableRef: tableRef,\n marginBottom: Math.max(0, containerHeight - headerHeight - bodyHeight - footerHeight)\n })), !!footerRows.length && createElement(VirtualTableLayoutBlock, __assign({}, commonProps, {\n name: \"footer\",\n collapsedGrid: collapsedGrids.footerGrid,\n tableComponent: FootTable,\n bodyComponent: Footer\n })));\n };\n VirtualTableLayout.defaultProps = defaultProps$3;\n return VirtualTableLayout;\n}(PureComponent);\nvar getColumnStyle = function (_a) {\n var column = _a.column;\n return column.animationState;\n};\n/** @internal */\nvar RowLayout = memo(function (props) {\n var row = props.row,\n columns = props.columns,\n Row = props.rowComponent,\n Cell = props.cellComponent,\n getCellColSpan = props.getCellColSpan;\n var getColSpan = useCallback(function (tableRow, tableColumn) {\n return getCellColSpan({\n tableRow: tableRow,\n tableColumn: tableColumn,\n tableColumns: columns\n });\n }, [columns, getCellColSpan]);\n return createElement(Row, {\n tableRow: row,\n style: getRowStyle({\n row: row\n })\n }, columns.map(function (column) {\n return createElement(Cell, {\n key: column.key,\n tableRow: row,\n tableColumn: column,\n style: getColumnStyle({\n column: column\n }),\n colSpan: getColSpan(row, column)\n });\n }));\n});\n\n/** @internal */\nvar RowsBlockLayout = /*#__PURE__*/function (_super) {\n __extends(RowsBlockLayout, _super);\n function RowsBlockLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowsBlockLayout.prototype.render = function () {\n var _a = this.props,\n rows = _a.rows,\n columns = _a.columns,\n Block = _a.blockComponent,\n rowComponent = _a.rowComponent,\n cellComponent = _a.cellComponent,\n getCellColSpan = _a.getCellColSpan;\n return createElement(Block, null, rows.map(function (row) {\n return createElement(RowLayout, {\n key: row.key,\n row: row,\n columns: columns,\n rowComponent: rowComponent,\n cellComponent: cellComponent,\n getCellColSpan: getCellColSpan\n });\n }));\n };\n return RowsBlockLayout;\n}(PureComponent);\nvar defaultProps$4 = {\n headerRows: [],\n footerRows: [],\n headComponent: function () {\n return null;\n },\n footerComponent: function () {\n return null;\n }\n};\n/** @internal */\nvar StaticTableLayout = /*#__PURE__*/function (_super) {\n __extends(StaticTableLayout, _super);\n function StaticTableLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StaticTableLayout.prototype.render = function () {\n var _a = this.props,\n headerRows = _a.headerRows,\n bodyRows = _a.bodyRows,\n footerRows = _a.footerRows,\n columns = _a.columns,\n minWidth = _a.minWidth,\n Container = _a.containerComponent,\n Table = _a.tableComponent,\n headComponent = _a.headComponent,\n bodyComponent = _a.bodyComponent,\n footerComponent = _a.footerComponent,\n rowComponent = _a.rowComponent,\n cellComponent = _a.cellComponent,\n getCellColSpan = _a.getCellColSpan,\n tableRef = _a.tableRef;\n var commonProps = {\n columns: columns,\n rowComponent: rowComponent,\n cellComponent: cellComponent,\n getCellColSpan: getCellColSpan\n };\n return createElement(Container, null, createElement(Table, {\n tableRef: tableRef,\n style: {\n minWidth: \"calc(\" + minWidth + \")\"\n }\n }, createElement(ColumnGroup, {\n columns: columns\n }), !!headerRows.length && createElement(RowsBlockLayout, __assign({\n rows: headerRows,\n blockComponent: headComponent\n }, commonProps)), createElement(RowsBlockLayout, __assign({\n rows: bodyRows,\n blockComponent: bodyComponent\n }, commonProps)), !!footerRows.length && createElement(RowsBlockLayout, __assign({\n rows: footerRows,\n blockComponent: footerComponent\n }, commonProps))));\n };\n StaticTableLayout.defaultProps = defaultProps$4;\n return StaticTableLayout;\n}(PureComponent);\n\n/** @internal */\nvar emptyViewport = {\n columns: [[0, 0]],\n rows: [0, 0],\n headerRows: [0, 0],\n footerRows: [0, 0],\n top: 0,\n left: 0,\n width: 800,\n height: 600\n};\nvar tableColumnsComputed = function (_a) {\n var tableColumns = _a.tableColumns;\n return checkColumnWidths(tableColumns);\n};\n/** @internal */\nvar makeVirtualTable = function (Table, _a) {\n var VirtualLayout = _a.VirtualLayout,\n FixedHeader = _a.FixedHeader,\n FixedFooter = _a.FixedFooter,\n SkeletonCell = _a.SkeletonCell,\n defaultEstimatedRowHeight = _a.defaultEstimatedRowHeight,\n defaultHeight = _a.defaultHeight;\n var VirtualTable = /*#__PURE__*/function (_super) {\n __extends(VirtualTable, _super);\n function VirtualTable(props) {\n var _this = _super.call(this, props) || this;\n _this.setViewport = function (viewport) {\n _this.setState({\n viewport: viewport\n });\n };\n _this.state = {\n viewport: emptyViewport,\n nextRowId: undefined\n };\n _this.layoutRenderComponent = connectProps(VirtualLayout, function () {\n var _a = _this.props,\n headTableComponent = _a.headTableComponent,\n footerTableComponent = _a.footerTableComponent;\n return {\n headTableComponent: headTableComponent,\n footerTableComponent: footerTableComponent\n };\n });\n _this.scrollToRow = function (nextRowId) {\n return _this.setState({\n nextRowId: nextRowId\n });\n };\n return _this;\n }\n VirtualTable.prototype.componentDidUpdate = function (prevProps, prevState) {\n var prevId = prevState.nextRowId;\n var currentId = this.state.nextRowId;\n var areIdsEqual = currentId !== undefined && currentId === prevId;\n this.layoutRenderComponent.update();\n if (areIdsEqual) {\n this.setState({\n nextRowId: undefined\n });\n }\n };\n VirtualTable.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n height = _a.height,\n estimatedRowHeight = _a.estimatedRowHeight,\n SkeletonStubCell = _a.skeletonCellComponent,\n children = _a.children,\n restProps = __rest(_a, [\"height\", \"estimatedRowHeight\", \"skeletonCellComponent\", \"children\"]);\n var _b = this.state,\n stateViewport = _b.viewport,\n nextId = _b.nextRowId;\n return createElement(Plugin, {\n name: \"VirtualTable\"\n }, createElement(Table, __assign({\n layoutComponent: this.layoutRenderComponent\n }, restProps)), createElement(Action, {\n name: \"setViewport\",\n action: this.setViewport\n }), createElement(Action, {\n name: \"scrollToRow\",\n action: this.scrollToRow\n }), createElement(Getter, {\n name: \"viewport\",\n value: stateViewport\n }), createElement(Getter, {\n name: \"tableColumns\",\n computed: tableColumnsComputed\n }), createElement(Template, {\n name: \"tableLayout\"\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a, _b) {\n var availableRowCount = _a.availableRowCount,\n loadedRowsStart = _a.loadedRowsStart,\n tableBodyRows = _a.tableBodyRows,\n isDataRemote = _a.isDataRemote,\n viewport = _a.viewport;\n var setViewport = _b.setViewport;\n var onTopRowChange = _this.props.onTopRowChange;\n var rowId = getTopRowId(viewport, tableBodyRows, isDataRemote);\n onTopRowChange(rowId);\n var totalRowCount = availableRowCount || tableBodyRows.length;\n var scrollTop = getScrollTop(tableBodyRows, totalRowCount, nextId, estimatedRowHeight, isDataRemote);\n return createElement(TemplatePlaceholder, {\n params: __assign(__assign({}, params), {\n totalRowCount: totalRowCount,\n loadedRowsStart: loadedRowsStart,\n isDataRemote: isDataRemote,\n height: height,\n estimatedRowHeight: estimatedRowHeight,\n setViewport: setViewport,\n viewport: viewport,\n scrollTop: scrollTop\n })\n });\n });\n }), createElement(Template, {\n name: \"tableCell\",\n predicate: function (_a) {\n var tableRow = _a.tableRow;\n return !!isStubTableCell(tableRow);\n }\n }, function (params) {\n return createElement(TemplateConnector, null, function (_a) {\n var isDataRemote = _a.isDataRemote;\n return isDataRemote ? createElement(SkeletonStubCell, __assign({}, params)) : createElement(TemplatePlaceholder, null);\n });\n }));\n };\n VirtualTable.defaultProps = {\n estimatedRowHeight: defaultEstimatedRowHeight,\n height: defaultHeight,\n headTableComponent: FixedHeader,\n footerTableComponent: FixedFooter,\n skeletonCellComponent: SkeletonCell,\n onTopRowChange: function () {}\n };\n VirtualTable.TOP_POSITION = TOP_POSITION;\n VirtualTable.BOTTOM_POSITION = BOTTOM_POSITION;\n return VirtualTable;\n }(PureComponent);\n Object.values(Table.components).forEach(function (name) {\n VirtualTable[name] = Table[name];\n });\n VirtualTable.FixedHeader = FixedHeader;\n VirtualTable.FixedFooter = FixedFooter;\n VirtualTable.SkeletonCell = SkeletonCell;\n return VirtualTable;\n};\nvar Node = /*#__PURE__*/function () {\n function Node(start, rows) {\n this.prev = null;\n this.next = null;\n this.start = start;\n this.rows = rows;\n }\n return Node;\n}();\n// tslint:disable-next-line:max-classes-per-file\nvar LRUCache = /*#__PURE__*/function () {\n function LRUCache(pageSize, capacity) {\n if (capacity === void 0) {\n capacity = Number.POSITIVE_INFINITY;\n }\n this.pages = new Map();\n this.pageSize = pageSize;\n this.capacity = capacity;\n this.initList();\n }\n LRUCache.prototype.initList = function () {\n this.head = new Node(-1, []);\n this.tail = new Node(-1, []);\n this.head.next = this.tail;\n this.tail.prev = this.head;\n };\n LRUCache.prototype.addPage = function (pageStart, rows) {\n if (this.pages.has(pageStart)) {\n this.removePage(pageStart);\n }\n var node = new Node(pageStart, rows);\n var last = this.tail.prev;\n last.next = node;\n node.next = this.tail;\n node.prev = last;\n this.tail.prev = node;\n this.pages.set(pageStart, node);\n if (this.pages.size > this.capacity) {\n this.removePage(this.head.next.start);\n }\n };\n LRUCache.prototype.removePage = function (start) {\n var node = this.pages.get(start);\n node.prev.next = node.next;\n node.next.prev = node.prev;\n this.pages.delete(start);\n };\n LRUCache.prototype.getPage = function (pageStart) {\n if (!this.pages.has(pageStart)) {\n return null;\n }\n var rows = this.pages.get(pageStart).rows;\n this.removePage(pageStart);\n this.addPage(pageStart, rows);\n return rows;\n };\n LRUCache.prototype.clear = function () {\n this.pages.clear();\n this.initList();\n };\n return LRUCache;\n}();\nvar createRowCache = function (pageSize, capacity) {\n if (pageSize === void 0) {\n pageSize = 100;\n }\n if (capacity === void 0) {\n capacity = Number.POSITIVE_INFINITY;\n }\n var cache = new LRUCache(pageSize, capacity / pageSize);\n return {\n getRows: function (skip, take) {\n var result = [];\n var pageCount = Math.ceil(take / pageSize);\n for (var i = 0; i < pageCount; i += 1) {\n var pageStart = skip + i * pageSize;\n var chunk = cache.getPage(pageStart);\n if (chunk !== null) {\n result = result.concat(chunk);\n }\n // yield if last page is incomplete\n if (chunk === null || i !== pageCount - 1 && chunk.length !== pageSize) {\n return result;\n }\n }\n return result;\n },\n setRows: function (skip, rows) {\n var pageCount = Math.ceil(rows.length / pageSize);\n for (var i = 0; i < pageCount; i += 1) {\n var pageStart = i * pageSize;\n var rowsChunk = rows.slice(pageStart, pageStart + pageSize);\n // put incomplete page only if it is last one\n if (rowsChunk.length === pageSize || i === pageCount - 1) {\n cache.addPage(pageStart + skip, rowsChunk);\n }\n }\n },\n invalidate: function () {\n return cache.clear();\n }\n };\n};\nvar InlineSummaryItem = memo(function (_a) {\n var _b = _a.summary,\n messageKey = _b.messageKey,\n columnTitle = _b.columnTitle,\n SummaryComponent = _b.component,\n getMessage = _a.getMessage;\n return createElement(Fragment, null, getMessage(messageKey, {\n columnTitle: columnTitle\n }), createElement(SummaryComponent, null));\n});\nexport { ColumnChooser, CustomGrouping, CustomPaging, CustomSummary, CustomTreeData, DataTypeProvider, DragDropProvider, EditingState, ExportPanel, FilteringState, Grid, GroupPanelLayout, GroupingPanel, GroupingState, InlineSummaryItem, IntegratedFiltering, IntegratedGrouping, IntegratedPaging, IntegratedSelection, IntegratedSorting, IntegratedSummary, PagingPanel, PagingState, RowDetailState, SearchPanel, SearchState, SelectionState, SortingState, StaticTableLayout, SummaryState, Table, TableBandHeader, TableColumnReordering, TableColumnResizing, TableColumnVisibility, TableEditColumn, TableEditRow, TableFilterRow, TableFixedColumns, TableGroupRow, TableHeaderRow, TableInlineCellEditing, TableLayout, TableRowDetail, TableSelection, TableSummaryRow, TableSummaryRowBase, TableTreeColumn, Toolbar, TreeDataState, VirtualTableLayout, VirtualTableState, createRowCache, defaultMessages$1 as defaultMessages, emptyViewport, makeVirtualTable };"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__read","o","m","Symbol","iterator","r","ar","next","done","push","value","error","__spread","concat","TableColumnsWithGrouping","memo","_a","indentColumnWidth","showColumnsWhenGrouped","columnExtensions","createElement","name","computed","columns","tableColumns","grouping","draftGrouping","map","reduce","acc","columnExtension","columnName","showWhenGrouped","showColumnWhenGroupedGetter","defaultProps","GridCoreGetters","rows","getRowId","getCellValue","TableColumnsWithDataRowsGetter","tableColumnsComputed","useCallback","visibleTableColumnsComputed","hiddenColumnNames","VisibleTableColumns","OrderedTableColumns","order","GridCore","_super","render","props","Root","rootComponent","restProps","PureComponent","Grid","children","pluginDependencies","ColumnChooser","ColumnChooserBase","_this","state","visible","handleToggle","bind","handleHide","setButtonRef","button","setState","Overlay","overlayComponent","Container","containerComponent","Item","itemComponent","ToggleButton","toggleButtonComponent","messages","getMessage","dependencies","_b","isColumnTogglingEnabled","toggleColumnVisibility","Fragment","buttonRef","onToggle","active","target","onHide","item","column","togglingEnabled","key","disabled","components","columnExtensionValueGetter","defaultValue","filterExpressionComputed","filters","filterExpressionValue","filterExpression","FilteringState","FilteringStateBase","defaultFilters","stateHelper","onFiltersChange","changeColumnFilter","applyFieldReducer","getDerivedStateFromProps","nextProps","prevState","columnFilteringEnabled","action","pluginDependencies$1","optional","getCollapsedRowsComputed","unwrappedRowsComputed","IntegratedFilteringBase","getColumnPredicate","predicate","getRowLevelKey","getCollapsedRows","defaultPredicate","IntegratedFiltering","columnExtensionValueGetter$2","GroupingState","GroupingStateBase","defaultGrouping","expandedGroups","defaultExpandedGroups","onGroupingChange","onExpandedGroupsChange","changeColumnGrouping","toggleGroupExpanded","applyReducer","draftColumnGrouping","cancelColumnGroupingDraft","changeColumnSorting","_c","sorting","keepOther","restParams","groupingIndex","findIndex","columnGrouping","sortIndex","getters","actions","groupIndex","nextState","prevGrouping","columnSortingIndex","columnSorting","prevGroupingIndex","columnGroupingEnabled","pluginDependencies$4","getCollapsedRowsComputed$1","expandedGroupedRowsComputed","isExporting","IntegratedGroupingBase","getColumnCriteria","criteria","IntegratedGrouping","SelectionState","SelectionStateBase","selection","defaultSelection","onSelectionChange","toggleSelection","rowsWithAvailableToSelectComputed","isGroupRow","allSelectedComputed","someSelectedComputed","selectAllAvailableComputed","availableToSelect","toggleSelectAll","rowIds","unwrapRowsComputed","pluginDependencies$6","IntegratedSelectionBase","IntegratedSelection","columnExtensionValueGetter$3","SortingState","SortingStateBase","defaultSorting","onSortingChange","payload","persistentSortedColumns","columnSortingEnabled","DragDropProvider","DragDropProviderBase","clientOffset","change","componentDidMount","bodyRef","document","body","Column","columnComponent","onChange","createPortal","filter","type","find","getTargetColumns","pluginDependencies$8","tableHeaderRowsComputed","tableHeaderRows","TableColumnReorderingRaw","cellDimensionGetters","cellDimensions","defaultOrder","sourceColumnIndex","targetColumnIndex","onOver","handleOver","onLeave","handleLeave","onDrop","handleDrop","getState","orderState","getDraftOrder","getAvailableColumns","cacheCellDimensions","resetCellDimensions","ensureCellDimensionGetters","keys","forEach","storeCellDimensionsGetter","tableColumn","getter","x","sourceColumnName","availableColumns","relativeTargetIndex","prevSourceColumnIndex","prevTargetColumnIndex","draftOrder","onOrderChange","nextOrder","targetColumnName","tableContainerComponent","Row","rowComponent","Cell","cellComponent","params","draggingEnabled","tableRow","getCellDimensions","TableColumnReordering","TableContainer","RowPlaceholder","CellPlaceholder","tableBodyRowsComputed","isDataLoading","tableFooterRows","defaultMessages","noData","TableBase","Layout","layoutComponent","NoDataRow","noDataRowComponent","NoDataCell","noDataCellComponent","StubRow","stubRowComponent","StubCell","stubCellComponent","StubHeaderCell","stubHeaderCellComponent","tableComponent","headComponent","bodyComponent","footerComponent","headerRows","bodyRows","tableBodyRows","footerRows","getTableCellColSpan","getCellColSpan","row","content","COLUMN_TYPE","ROW_TYPE","NODATA_ROW_TYPE","Table","TableSelectionBase","highlightRow","selectByRowClick","showSelectionColumn","showSelectAll","HeaderCell","headerCellComponent","selectionColumnWidth","selectAllAvailable","allSelected","someSelected","select","selected","rowId","highlighted","TableSelection","getCellColSpanComputed","pluginDependencies$9","TableRowDetailBase","rowHeight","Content","contentComponent","ToggleCell","toggleCellComponent","toggleColumnWidth","expandedDetailRowIds","toggleDetailRowExpanded","expanded","TableRowDetail","defaultSummaryMessages","sum","min","max","avg","count","TableSummaryContent","columnSummaries","formatlessSummaryTypes","SummaryItem","summary","includes","isFormatlessSummary","getInlineSummaryComponent","formatlessSummaries","pluginDependencies$a","side","defaultMessages$1","countOf","sumOf","maxOf","minOf","avgOf","tableBodyRowsComputed$1","getCellColSpanComputed$1","groupSummaryItems","viewport","firstVisibleColumnIndex","TableGroupRowBase","GroupCell","Icon","iconComponent","GroupRow","GroupIndentCell","indentCellComponent","InlineSummary","inlineSummaryComponent","InlineSummaryItem","inlineSummaryItemComponent","SummaryCell","summaryCellComponent","summaryItemComponent","contentCellPadding","groupSummaryValues","inlineSummaries_1","compoundKey","colSummaries","summaries","columnTitle","title","messageKey","component","flattenGroupInlineSummaries","contentIndent_1","groupKey","inlineSummaries","position","fixedProps","summaryItem","showInGroupFooter","alignByColumn","TableGroupRow","tableHeaderRowsComputed$1","TableHeaderRowBase","showSortingControls","showGroupingControls","HeaderRow","SortLabel","sortLabelComponent","GroupButton","groupButtonComponent","Title","titleComponent","tableColumnResizingEnabled","isColumnSortingEnabled","isColumnGroupingEnabled","columnResizingMode","changeTableColumnWidth","draftTableColumnWidth","cancelTableColumnWidthDraft","storeWidthGetters","_d","atLeastOneDataColumn","sortingEnabled","groupingEnabled","nextColumnName","resizingEnabled","onWidthChange","shift","onWidthDraft","onWidthDraftCancel","getCellWidth","align","direction","onSort","onGroup","TableHeaderRow","CellPlaceholder$1","bandLevelsVisibilityComputed","columnIntervals","columnVisibleIntervals","tableHeaderColumnChains","bandLevels","columnVisibleIntervalsComputed","TableBandHeaderBase","bandedHeaderCellComponent","InvisibleCell","invisibleCellComponent","columnBands","levelsVisibility","bandLevelsVisibility","bandComponent","style","whiteSpace","TableBandHeader","pluginDependencies$b","defaultMessages$2","filterPlaceholder","contains","notContains","startsWith","endsWith","equal","notEqual","greaterThan","greaterThanOrEqual","lessThan","lessThanOrEqual","TableFilterRowBase","filterOperations","showFilterSelector","FilterCell","FilterRow","FilterSelector","filterSelectorComponent","EditorComponent","editorComponent","isColumnFilteringEnabled","getAvailableFilterOperations","isDataRemote","scrollToRow","onFilter","config","columnFilterOperations","selectedFilterOperation","handleFilterOperationChange","operation","handleFilterValueChange","filteringEnabled","undefined","onValueChange","availableValues","TableFilterRow","pluginDependencies$c","TableEditRowBase","EditCell","EditRow","editingRowIds","addedRows","createRowChange","rowChanges","isColumnEditingEnabled","changeAddedRow","changeRow","isNew","changedRow","newValue","changeArgs","editingEnabled","ADDED_ROW_TYPE","EDIT_ROW_TYPE","TableEditRow","pluginDependencies$d","defaultMessages$3","addCommand","editCommand","deleteCommand","commitCommand","cancelCommand","TableEditColumnBase","Command","commandComponent","showAddCommand","showEditCommand","showDeleteCommand","width","id","text","onExecute","addRow","isEdit","isEditing","startEditRows","deleteRows","commitDeletedRows","commitAddedRows","stopEditRows","commitChangedRows","cancelAddedRows","cancelChangedRows","TableEditColumn","pluginDependencies$e","TableColumnResizingBase","widthGetters","cachedWidths","columnWidths","defaultColumnWidths","draftColumnWidths","onColumnWidthsChange","resizingMode","tableColumnsDraftComputed","minColumnWidth","maxColumnWidth","storeCache","clearCache","columnIndex","componentDidUpdate","_","TableColumnResizing","pluginDependencies$f","defaultMessages$4","showAll","info","from","to","PagingPanelBase","Pager","pageSizes","currentPage","pageSize","totalCount","setCurrentPage","setPageSize","totalPages","onCurrentPageChange","onPageSizeChange","PagingPanel","onDragStart","onDragEnd","ItemLayout","dragging","itemElement","draft","onStart","onEnd","defaultProps$1","onGroupDraft","onGroupDraftCancel","GroupPanelLayout","GroupPanelLayoutBase","itemRefs","draggingColumnName","targetItemIndex","handleDragEvent","eventHandler","restArgs","onEnter","items","prevTargetItemIndex","itemGeometries","ref","findDOMNode","getBoundingClientRect","sourceItemIndex","resetState","EmptyMessage","emptyMessageComponent","groupPanel","element","args","defaultMessages$5","groupByColumn","defaultProps$2","GroupingPanelRaw","LayoutComponent","EmptyMessagePlaceholder","ItemPlaceholder","sortingDirection","GroupingPanel","pluginDependencies$g","defaultMessages$6","noColumns","columnExtensionValueGetter$4","TableColumnVisibilityBase","defaultHiddenColumnNames","onHiddenColumnNamesChange","columnTogglingEnabled","TableColumnVisibility","ToolbarBase","FlexibleSpaceComponent","flexibleSpaceComponent","Toolbar","TableTreeColumnBase","forColumnName","for","showSelectionControls","Indent","indentComponent","ExpandButton","expandButtonComponent","Checkbox","checkboxComponent","checked","indeterminate","expandedRowIds","isTreeRowLeaf","getTreeRowLevel","toggleRowExpanded","collapsedRows","level","TableTreeColumn","pluginDependencies$i","defaultMessages$7","searchPlaceholder","SearchPanelBase","Input","inputComponent","searchValue","changeSearchValue","SearchPanel","tableHeaderRowsComputed$2","tableHeaderColumnChainsComputed","CellPlaceholder$2","pluginDependencies$j","TableFixedColumns","TableFixedColumnsBase","tableColumnDimensions","handleListenerSizeChange","ListenerRow","listenerRowComponent","ListenerCell","listenerCellComponent","leftColumns","rightColumns","fixed","highlightSelectedRow","fixedColumnProps","listen","onSizeChange","dependencies$1","tableBodyRowsComputed$2","treeSummaryItems","tableFooterRowsComputed","totalSummaryItems","TableSummaryRowBase","renderContent","TotalRow","totalRowComponent","groupRowComponent","TreeRow","treeRowComponent","TotalCell","totalCellComponent","groupCellComponent","TreeCell","treeCellComponent","TreeColumnCell","treeColumnCellComponent","TreeColumnContent","treeColumnContentComponent","TreeColumnIndent","treeColumnIndentComponent","totalSummaryValues","treeSummaryValues","tableTreeColumnName","TREE_ROW_TYPE","GROUP_ROW_TYPE","TOTAL_ROW_TYPE","TableSummaryRow","pluginDependencies$m","rowsWithEditingCellsComputed","editingCells","columnsWithEditingCellsComputed","TableInlineCellEditingBase","startEditAction","selectTextOnEditStart","startEditCells","Error","eventName","newParams","hasEditCell","stopEditCells","onKeyDown","onBlur","onFocus","autoFocus","TableInlineCellEditing","defaultMessages$8","showExportMenu","exportAll","exportSelected","ExportPanelBase","Menu","menuComponent","MenuItem","menuItemComponent","startExport","onClick","selectedOnly","ExportPanel","getRowStyle","height","TableLayout","TableLayoutBase","savedOffsetWidth","raf","animationState","Map","animations","savedScrollWidth","tableRef","createRef","prevProps","prevColumns","size","processAnimation","tableWidth","getTableWidth","cancelAnimationFrame","requestAnimationFrame","processAnimationFrame","current","offsetWidth","scrollWidth","widthChanged","getColumns","result","toString","has","get","animationComponentState","minWidth","Number","isNaN","isNumber","join","ColumnGroup","styleWidth","VirtualRowLayout","shouldComponentUpdate","prevCells","cells","prevRow","nextCells","some","nextCell","prevCell","colSpan","Component","VirtualTableLayoutBlock","collapsedGrid","blockRefsHandler","rowRefsHandler","Body","marginBottom","visibleRow","defaultProps$3","headTableComponent","footerTableComponent","VirtualTableLayout","rowRefs","blockRefs","viewportTop","containerHeight","containerWidth","viewportLeft","getRowHeight","rowHeights","estimatedRowHeight","storedHeight","registerRowRef","delete","set","registerBlockRef","onScroll","node","shouldSkipScrollEvent","scrollTop","scrollLeft","updateViewport","handleContainerSizeChange","headerHeight","bodyHeight","footerHeight","visibleRowBoundaries","getColumnWidthGetter","storeRowHeights","storeBlockHeights","bodyRowsChanged","columnCountChanged","prevRowHeight","rowsWithChangedHeights","entries","rowHeights_1","getBlockHeight","blockName","prevHeaderHeight","prevBodyHeight","prevFooterHeight","currentTarget","nodeHorizontalOffset","parseInt","clientWidth","nodeVerticalOffset","clientHeight","Math","scrollHeight","setViewport","newViewport","calculateViewport","loadedRowsStart","getColumnWidth","getCollapsedGrids","totalRowCount","HeadTable","FootTable","Head","Footer","collapsedGrids","commonProps","sizerHeight","headerGrid","bodyGrid","footerGrid","RowLayout","getColSpan","RowsBlockLayout","Block","blockComponent","defaultProps$4","StaticTableLayout","emptyViewport","top","left","makeVirtualTable","VirtualLayout","FixedHeader","FixedFooter","SkeletonCell","defaultEstimatedRowHeight","defaultHeight","VirtualTable","nextRowId","layoutRenderComponent","prevId","currentId","areIdsEqual","update","SkeletonStubCell","skeletonCellComponent","stateViewport","nextId","availableRowCount","onTopRowChange","TOP_POSITION","BOTTOM_POSITION","values","SummaryComponent"],"sourceRoot":""}