@progress/kendo-react-grid 5.10.0-dev.202301031638 → 5.10.0-dev.202301091032

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/cdn/js/kendo-react-grid.js +1 -1
  2. package/dist/es/Grid.d.ts +6 -0
  3. package/dist/es/Grid.js +71 -67
  4. package/dist/es/GridToolbar.js +5 -1
  5. package/dist/es/VirtualScroll.d.ts +2 -2
  6. package/dist/es/VirtualScroll.js +38 -30
  7. package/dist/es/cells/GridCell.js +1 -1
  8. package/dist/es/cells/GridDetailCell.js +1 -1
  9. package/dist/es/cells/GridDetailHierarchyCell.js +1 -1
  10. package/dist/es/cells/GridEditCell.js +1 -1
  11. package/dist/es/cells/GridFilterCell.js +8 -8
  12. package/dist/es/cells/GridGroupCell.js +3 -3
  13. package/dist/es/cells/GridHierarchyCell.js +3 -2
  14. package/dist/es/columnMenu/GridColumnMenuWrapper.d.ts +2 -2
  15. package/dist/es/columnMenu/GridColumnMenuWrapper.js +1 -1
  16. package/dist/es/drag/ColumnDraggable.js +1 -1
  17. package/dist/es/footer/Footer.d.ts +2 -0
  18. package/dist/es/footer/Footer.js +7 -3
  19. package/dist/es/footer/FooterRow.js +3 -2
  20. package/dist/es/header/FilterRow.d.ts +2 -1
  21. package/dist/es/header/FilterRow.js +4 -3
  22. package/dist/es/header/Header.d.ts +2 -0
  23. package/dist/es/header/Header.js +7 -4
  24. package/dist/es/header/HeaderRow.js +25 -31
  25. package/dist/es/interfaces/GridColumnProps.d.ts +1 -1
  26. package/dist/es/interfaces/GridFilterCellProps.d.ts +12 -0
  27. package/dist/es/interfaces/GridProps.d.ts +10 -0
  28. package/dist/es/interfaces/GridToolbarProps.d.ts +16 -0
  29. package/dist/es/package-metadata.js +1 -1
  30. package/dist/es/rows/GridRow.js +2 -2
  31. package/dist/es/utils/index.d.ts +8 -0
  32. package/dist/es/utils/index.js +9 -0
  33. package/dist/npm/Grid.d.ts +6 -0
  34. package/dist/npm/Grid.js +69 -65
  35. package/dist/npm/GridToolbar.js +5 -1
  36. package/dist/npm/VirtualScroll.d.ts +2 -2
  37. package/dist/npm/VirtualScroll.js +38 -30
  38. package/dist/npm/cells/GridCell.js +1 -1
  39. package/dist/npm/cells/GridDetailCell.js +1 -1
  40. package/dist/npm/cells/GridDetailHierarchyCell.js +1 -1
  41. package/dist/npm/cells/GridEditCell.js +1 -1
  42. package/dist/npm/cells/GridFilterCell.js +7 -7
  43. package/dist/npm/cells/GridGroupCell.js +3 -3
  44. package/dist/npm/cells/GridHierarchyCell.js +3 -2
  45. package/dist/npm/columnMenu/GridColumnMenuWrapper.d.ts +2 -2
  46. package/dist/npm/columnMenu/GridColumnMenuWrapper.js +1 -1
  47. package/dist/npm/drag/ColumnDraggable.js +1 -1
  48. package/dist/npm/footer/Footer.d.ts +2 -0
  49. package/dist/npm/footer/Footer.js +7 -3
  50. package/dist/npm/footer/FooterRow.js +3 -2
  51. package/dist/npm/header/FilterRow.d.ts +2 -1
  52. package/dist/npm/header/FilterRow.js +4 -3
  53. package/dist/npm/header/Header.d.ts +2 -0
  54. package/dist/npm/header/Header.js +6 -3
  55. package/dist/npm/header/HeaderRow.js +25 -31
  56. package/dist/npm/interfaces/GridColumnProps.d.ts +1 -1
  57. package/dist/npm/interfaces/GridFilterCellProps.d.ts +12 -0
  58. package/dist/npm/interfaces/GridProps.d.ts +10 -0
  59. package/dist/npm/interfaces/GridToolbarProps.d.ts +16 -0
  60. package/dist/npm/package-metadata.js +1 -1
  61. package/dist/npm/rows/GridRow.js +2 -2
  62. package/dist/npm/utils/index.d.ts +8 -0
  63. package/dist/npm/utils/index.js +10 -1
  64. package/dist/systemjs/kendo-react-grid.js +1 -1
  65. package/package.json +18 -18
package/dist/npm/Grid.js CHANGED
@@ -102,6 +102,7 @@ var Grid = /** @class */ (function (_super) {
102
102
  var _this = _super.call(this, props) || this;
103
103
  _this._columns = [];
104
104
  _this._columnsMap = [[]];
105
+ _this._columnsMutations = 0;
105
106
  _this.contextStateRef = { current: undefined };
106
107
  _this.navigationStateRef = { current: undefined };
107
108
  _this._data = [];
@@ -161,7 +162,7 @@ var Grid = /** @class */ (function (_super) {
161
162
  if (_this._footer) {
162
163
  _this._footer.setScrollLeft(scrollLeft);
163
164
  }
164
- if (_this.vs) {
165
+ if (_this.vs && scrollTop !== _this.wrapperScrollTop) {
165
166
  _this.vs.scrollHandler(event);
166
167
  }
167
168
  (0, kendo_react_common_1.dispatchEvent)(_this.props.onScroll, event, _this, undefined);
@@ -250,6 +251,7 @@ var Grid = /** @class */ (function (_super) {
250
251
  };
251
252
  _this.onResize = function (index, newWidth, oldWidth, nativeEvent, end, targetId) {
252
253
  _this.resetTableWidth();
254
+ _this._columnsMutations++;
253
255
  if (_this.props.onColumnResize) {
254
256
  _this.props.onColumnResize.call(undefined, {
255
257
  columns: _this.columns,
@@ -263,6 +265,19 @@ var Grid = /** @class */ (function (_super) {
263
265
  });
264
266
  }
265
267
  };
268
+ _this.childrenToArray = (0, kendo_react_common_1.memoizeOne)(function (children) {
269
+ return React.Children.toArray(children);
270
+ });
271
+ _this.readColumns = (0, kendo_react_common_1.memoizeOne)(function (children, idPrefix, _mutationsCount) {
272
+ var columnElements = children.filter(function (child) { return child && child.type && child.type.displayName === 'KendoReactGridColumn'; });
273
+ return (0, index_1.readColumns)(columnElements, _this.columns, { prevId: 0, idPrefix: idPrefix });
274
+ });
275
+ _this.mapColumns = (0, kendo_react_common_1.memoizeOne)(function (columns) {
276
+ return (0, kendo_react_data_tools_1.mapColumns)(columns);
277
+ });
278
+ _this.getHeaderRow = (0, kendo_react_common_1.memoizeOne)(function (sort, sortable, group, groupable, filter, filterable, filterOperators, headerCellRender, columnMenu, columns, columnsMap) {
279
+ return (React.createElement(HeaderRow_1.HeaderRow, { sort: sort, sortable: sortable, sortChange: _this.sortChange, group: group || [], groupable: groupable, groupChange: _this.groupChange, filter: filter, filterable: filterable, filterOperators: filterOperators, filterChange: _this.filterChange, columnMenu: columnMenu, selectionChange: _this.onHeaderSelectionChange, columns: columns, columnResize: _this.columnResize, pressHandler: _this.dragLogic.pressHandler, dragHandler: _this.dragLogic.dragHandler, releaseHandler: _this.dragLogic.releaseHandler, columnsMap: columnsMap, cellRender: headerCellRender, isRtl: _this.isRtl, dragClue: _this.dragLogic.dragClueRef, headerRef: _this.headerElementRef, containerRef: _this.vs.containerRef }));
280
+ });
266
281
  _this.resolveTitle = function (field) {
267
282
  var column = _this._columns.find(function (c) { return c.field === field; });
268
283
  var title = column && (column.title || column.field);
@@ -409,6 +424,7 @@ var Grid = /** @class */ (function (_super) {
409
424
  * @hidden
410
425
  */
411
426
  Grid.prototype.render = function () {
427
+ var _a, _b, _c;
412
428
  var _this = this;
413
429
  var total = this.props.total || 0;
414
430
  var idPrefix = kendo_react_data_tools_1.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef);
@@ -427,7 +443,7 @@ var Grid = /** @class */ (function (_super) {
427
443
  this.dragLogic.reorderable = this.props.reorderable || false;
428
444
  this.dragLogic.groupable = groupable;
429
445
  var tableUserSelect = this.props.selectable && this.props.selectable.drag ? 'none' : undefined;
430
- if (total !== this.vs.total) {
446
+ if (total !== this.vs.total || (this.props.scrollable === 'virtual') !== this.vs.scrollableVirtual) {
431
447
  this.vs.reset();
432
448
  this.vs = new VirtualScroll_1.VirtualScroll(groupable || this.props.rowHeight === undefined || this.props.rowHeight === 0);
433
449
  this.vs.table = this.tableElement;
@@ -441,7 +457,8 @@ var Grid = /** @class */ (function (_super) {
441
457
  this.vs.propsSkip = (this.props.skip || 0) + (this.props.scrollable === 'virtual' ?
442
458
  this.vs.topCacheCount + (this.vs.attendedSkip - (this.props.skip || 0)) : 0);
443
459
  if (this.props.rowHeight !== undefined && this.props.rowHeight > 0 && !groupable) {
444
- this.vs.containerHeight = Math.min(1533915, this.props.rowHeight * (total || 0));
460
+ var containerHeight = this.props.rowHeight * total;
461
+ this.vs.containerHeight = index_1.firefox ? Math.min(index_1.firefoxMaxHeight, containerHeight) : containerHeight;
445
462
  }
446
463
  else {
447
464
  this.vs.containerHeight = 1533915;
@@ -449,25 +466,25 @@ var Grid = /** @class */ (function (_super) {
449
466
  var groupingFooter = (typeof this.props.groupable === 'object') && this.props.groupable.footer || 'none';
450
467
  this._data = [];
451
468
  var resolvedGroupsCount = (0, index_1.flatData)(this._data, propsData, groupingFooter, { index: this.props.skip || 0 }, this.props.group !== undefined, this.props.expandField);
452
- var children = React.Children.toArray(this.props.children);
453
- this.initColumns(children.filter(function (child) { return child && child.type &&
454
- child.type.displayName === 'KendoReactGridColumn'; }), resolvedGroupsCount);
469
+ var children = this.childrenToArray(this.props.children);
470
+ this.initColumns(children, resolvedGroupsCount);
455
471
  var toolbar = children.filter(function (child) { return child && child.type &&
456
472
  child.type.displayName === 'KendoReactGridToolbar'; });
457
473
  var noRecords = children.filter(function (child) { return child && child.type &&
458
474
  child.type.displayName === 'KendoReactGridNoRecords'; });
459
475
  var leafColumns = this._columns.filter(function (c) { return c.children.length === 0; });
460
476
  var groupingPanel = groupable && (React.createElement(GroupPanel_1.GroupPanel, { group: this.props.group || [], groupChange: this.groupChange, pressHandler: this.dragLogic.pressHandler, dragHandler: this.dragLogic.dragHandler, releaseHandler: this.dragLogic.releaseHandler, refCallback: this.dragLogic.refGroupPanelDiv, resolveTitle: this.resolveTitle }));
461
- var header = (React.createElement(Header_1.Header, { columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', scrollableDataElement: function () { return _this.vs.container; }, draggable: this.props.reorderable || groupable, ref: this.headerRef, elemRef: this.headerElementRef, headerRow: React.createElement(HeaderRow_1.HeaderRow, { sort: this.props.sort, sortable: this.props.sortable, sortChange: this.sortChange, group: this.props.group || [], groupable: groupable, groupChange: this.groupChange, filter: this.props.filter, filterable: this.props.filterable, filterOperators: this.props.filterOperators || filterCommon_1.operators, filterChange: this.filterChange, columnMenu: this.props.columnMenu, selectionChange: this.onHeaderSelectionChange, columns: this._columns, columnResize: this.columnResize, pressHandler: this.dragLogic.pressHandler, dragHandler: this.dragLogic.dragHandler, releaseHandler: this.dragLogic.releaseHandler, columnsMap: this._columnsMap, cellRender: this.props.headerCellRender, isRtl: this.isRtl, dragClue: this.dragLogic.dragClueRef, headerRef: this.headerElementRef, containerRef: this.vs.containerRef }), filterRow: this.props.filterable && React.createElement(FilterRow_1.FilterRow, { columns: this._columns, filter: this.props.filter, filterOperators: this.props.filterOperators || filterCommon_1.operators, filterChange: this.filterChange, sort: this.props.sort, cellRender: this.props.filterCellRender, isRtl: this.isRtl, ariaRowIndex: this._columnsMap.length + 1 }) || undefined, cols: leafColumns.map(function (column, index) { return (React.createElement("col", { key: index.toString(), width: column.width !== undefined ?
477
+ var _d = this.props, sort = _d.sort, sortable = _d.sortable, group = _d.group, filter = _d.filter, filterable = _d.filterable, _e = _d.filterOperators, filterOperators = _e === void 0 ? filterCommon_1.operators : _e, headerCellRender = _d.headerCellRender, columnMenu = _d.columnMenu;
478
+ var header = (React.createElement(Header_1.Header, { size: this.props.size, columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', scrollableDataElement: function () { return _this.vs.container; }, draggable: this.props.reorderable || groupable, ref: this.headerRef, elemRef: this.headerElementRef, headerRow: this.getHeaderRow(sort, sortable, group, groupable, filter, filterable, filterOperators, headerCellRender, columnMenu, this._columns, this._columnsMap), filterRow: this.props.filterable && React.createElement(FilterRow_1.FilterRow, { size: this.props.size, columns: this._columns, filter: this.props.filter, filterOperators: this.props.filterOperators || filterCommon_1.operators, filterChange: this.filterChange, sort: this.props.sort, cellRender: this.props.filterCellRender, isRtl: this.isRtl, ariaRowIndex: this._columnsMap.length + 1 }) || undefined, cols: leafColumns.map(function (column, index) { return (React.createElement("col", { key: index.toString(), width: column.width !== undefined ?
462
479
  Math.floor(parseFloat(column.width.toString())) + 'px' : undefined })); }) }));
463
480
  var scrollLeft = this.vs && this.vs.container && this.vs.container.scrollLeft || 0;
464
481
  var tableWidth = parseFloat(((this.props.style || {}).width || '').toString());
465
- var _a = (0, kendo_react_data_tools_1.tableColumnsVirtualization)({
482
+ var _f = (0, kendo_react_data_tools_1.tableColumnsVirtualization)({
466
483
  enabled: this.props.columnVirtualization,
467
484
  columns: leafColumns,
468
485
  tableViewPortWidth: tableWidth,
469
486
  scrollLeft: scrollLeft
470
- }), colSpans = _a.colSpans, isColHidden = _a.hiddenColumns;
487
+ }), colSpans = _f.colSpans, isColHidden = _f.hiddenColumns;
471
488
  var dataRow = function (item, rowId, rowDataIndex) {
472
489
  var isInEdit = false;
473
490
  var selectedValue = _this.props.selectedField ? (0, index_1.getNestedValue)(_this.props.selectedField, item.dataItem) : undefined;
@@ -484,29 +501,6 @@ var Grid = /** @class */ (function (_super) {
484
501
  ? { left: column.left, right: column.right }
485
502
  : { left: column.right, right: column.left }
486
503
  : {};
487
- var cellProps = {
488
- id: kendo_react_data_tools_1.tableKeyboardNavigationTools.generateNavigatableId("".concat(rowId, "-").concat(String(columnIndex)), idPrefix),
489
- colSpan: colSpans[columnIndex],
490
- dataItem: item.dataItem,
491
- field: column.field,
492
- editor: column.editor,
493
- format: column.format,
494
- className: className,
495
- render: _this.props.cellRender,
496
- onChange: _this.itemChange,
497
- selectionChange: (_this.props.onSelectionChange) ?
498
- (function (e) { _this.selectionChange({ event: e, dataItem: item.dataItem, dataIndex: rowDataIndex, columnIndex: columnIndex }); }) :
499
- undefined,
500
- columnIndex: columnIndex,
501
- columnsCount: leafColumns.length,
502
- rowType: item.rowType,
503
- level: item.level,
504
- expanded: item.expanded,
505
- dataIndex: item.dataIndex,
506
- style: style,
507
- ariaColumnIndex: column.ariaColumnIndex,
508
- isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1
509
- };
510
504
  var currentColumnIsInEdit = false;
511
505
  if (column.editable && _this.props.editField) {
512
506
  var inEdit = (0, index_1.getNestedValue)(_this.props.editField, item.dataItem);
@@ -515,12 +509,10 @@ var Grid = /** @class */ (function (_super) {
515
509
  currentColumnIsInEdit = true;
516
510
  }
517
511
  }
518
- if (column.cell) {
519
- return React.createElement(column.cell, __assign({ key: columnKey }, cellProps, { locked: _this.props.lockGroups }));
520
- }
521
- return currentColumnIsInEdit
522
- ? React.createElement(GridEditCell_1.GridEditCell, __assign({ key: columnKey }, cellProps))
523
- : React.createElement(GridCell_1.GridCell, __assign({ key: columnKey }, cellProps));
512
+ var Cell = column.cell || (currentColumnIsInEdit && GridEditCell_1.GridEditCell) || GridCell_1.GridCell;
513
+ return (React.createElement(Cell, { key: columnKey, locked: _this.props.lockGroups, id: kendo_react_data_tools_1.tableKeyboardNavigationTools.generateNavigatableId("".concat(rowId, "-").concat(String(columnIndex)), idPrefix), colSpan: colSpans[columnIndex], dataItem: item.dataItem, field: column.field, editor: column.editor, format: column.format, className: className, render: _this.props.cellRender, onChange: _this.itemChange, selectionChange: (_this.props.onSelectionChange) ?
514
+ (function (e) { _this.selectionChange({ event: e, dataItem: item.dataItem, dataIndex: rowDataIndex, columnIndex: columnIndex }); }) :
515
+ undefined, columnIndex: columnIndex, columnsCount: leafColumns.length, rowType: item.rowType, level: item.level, expanded: item.expanded, dataIndex: item.dataIndex, style: style, ariaColumnIndex: column.ariaColumnIndex, isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1 }));
524
516
  }),
525
517
  isInEdit: isInEdit,
526
518
  isSelected: typeof selectedValue === 'boolean' && selectedValue
@@ -571,9 +563,9 @@ var Grid = /** @class */ (function (_super) {
571
563
  - (_this.props.group ? _this.props.group.length : 0)) || 1;
572
564
  detailRowCount_1++;
573
565
  currentAriaRowIndex = absoluteIndex + rowIndexStart + detailRowCount_1;
574
- body.push((React.createElement("tr", { key: detailRowId, className: isAlt ? 'k-detail-row k-alt' : 'k-detail-row', style: { visibility: hidden(rowIndex) ? 'hidden' : '' }, role: "row", "aria-rowindex": currentAriaRowIndex },
575
- _this.props.group && _this.props.group.map(function (group, idx) {
576
- return (React.createElement(GridGroupCell_1.GridGroupCell, { id: '', dataIndex: item.dataIndex, field: group.field, dataItem: item.dataItem, key: idx, style: {}, ariaColumnIndex: 1 + idx, isSelected: false, locked: _this.props.lockGroups }));
566
+ body.push((React.createElement("tr", { key: detailRowId, className: (0, kendo_react_common_1.classNames)('k-table-row', isAlt ? 'k-detail-row k-table-alt-row k-alt' : 'k-detail-row'), style: { visibility: hidden(rowIndex) ? 'hidden' : '' }, role: "row", "aria-rowindex": currentAriaRowIndex },
567
+ _this.props.group && _this.props.group.map(function (gr, idx) {
568
+ return (React.createElement(GridGroupCell_1.GridGroupCell, { id: '', dataIndex: item.dataIndex, field: gr.field, dataItem: item.dataItem, key: idx, style: {}, ariaColumnIndex: 1 + idx, isSelected: false, locked: _this.props.lockGroups }));
577
569
  }),
578
570
  _this.props.expandField &&
579
571
  React.createElement(GridDetailHierarchyCell_1.GridDetailHierarchyCell, { id: kendo_react_data_tools_1.tableKeyboardNavigationTools.generateNavigatableId("".concat(detailRowId, "-dhcell"), idPrefix) }),
@@ -582,15 +574,15 @@ var Grid = /** @class */ (function (_super) {
582
574
  });
583
575
  }
584
576
  else {
585
- body.push((React.createElement("tr", { key: "no-records", className: "k-grid-norecords", "aria-rowindex": rowIndexStart },
586
- React.createElement("td", { colSpan: leafColumns.length }, noRecords.length ? noRecords : React.createElement(GridNoRecords_1.GridNoRecords, null)))));
577
+ body.push((React.createElement("tr", { key: "no-records", className: "k-table-row k-grid-norecords", role: 'row', "aria-rowindex": rowIndexStart },
578
+ React.createElement("td", { className: 'k-table-td', colSpan: leafColumns.length, role: 'gridcell' }, noRecords.length ? noRecords : React.createElement(GridNoRecords_1.GridNoRecords, null)))));
587
579
  }
588
- var pagerProps = __assign({ className: 'k-grid-pager', onPageChange: this.pagerPageChange, total: total, skip: this.vs.propsSkip || 0, take: (this.props.take !== undefined ? this.props.take : this.props.pageSize) || 10, messagesMap: messages_1.pagerMessagesMap }, ((0, GridPagerSettings_1.normalize)(this.props.pageable || {})));
589
- var pager = this.props.pager ? React.createElement(this.props.pager, __assign({}, pagerProps)) : React.createElement(kendo_react_data_tools_1.Pager, __assign({}, pagerProps));
580
+ var pagerProps = __assign({ size: this.props.size, onPageChange: this.pagerPageChange, total: total, skip: this.vs.propsSkip || 0, take: (this.props.take !== undefined ? this.props.take : this.props.pageSize) || 10, messagesMap: messages_1.pagerMessagesMap }, ((0, GridPagerSettings_1.normalize)(this.props.pageable || {})));
581
+ var pager = this.props.pager ? React.createElement(this.props.pager, __assign({}, pagerProps)) : React.createElement(kendo_react_data_tools_1.Pager, __assign({ className: "k-grid-pager" }, pagerProps));
590
582
  var sorted = function (field) {
591
583
  return _this.props.sort && _this.props.sort.filter(function (descriptor) { return descriptor.field === field; }).length > 0;
592
584
  };
593
- var footer = this._columns.some(function (c) { return Boolean(c.footerCell); }) ? (React.createElement(Footer_1.Footer, { columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', ref: function (f) { return _this._footer = f; }, row: React.createElement(FooterRow_1.FooterRow, { columns: this._columns, isRtl: this.isRtl, ariaRowIndex: currentAriaRowIndex + 1 }), cols: leafColumns.map(function (column, index) { return (React.createElement("col", { key: index.toString(), width: column.width !== undefined ?
585
+ var footer = this._columns.some(function (c) { return Boolean(c.footerCell); }) ? (React.createElement(Footer_1.Footer, { size: this.props.size, columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', ref: function (f) { return _this._footer = f; }, row: React.createElement(FooterRow_1.FooterRow, { columns: this._columns, isRtl: this.isRtl, ariaRowIndex: currentAriaRowIndex + 1 }), cols: leafColumns.map(function (column, index) { return (React.createElement("col", { key: index.toString(), width: column.width !== undefined ?
594
586
  Math.floor(parseFloat(column.width.toString())) + 'px' : undefined })); }) })) : null;
595
587
  var colGroups = (React.createElement("colgroup", { ref: function (c) {
596
588
  _this.columnResize.colGroupMain = c;
@@ -600,7 +592,11 @@ var Grid = /** @class */ (function (_super) {
600
592
  var tableDisplay = this.props.columnVirtualization ? 'block' : 'table';
601
593
  if (this.props.scrollable === 'none') {
602
594
  return (React.createElement(kendo_react_data_tools_1.TableKeyboardNavigationContext.Provider, { value: this.contextStateRef.current },
603
- React.createElement("div", __assign({ id: this.props.id, style: this.props.style, className: (0, kendo_react_common_1.classNames)('k-widget k-grid', this.props.className), ref: function (el) { _this._element = el; }, "aria-label": this.props.ariaLabel, onKeyDown: this.onKeyDown, onFocus: this.onFocus }, kendo_react_data_tools_1.tableKeyboardNavigationScopeAttributes),
595
+ React.createElement("div", __assign({ id: this.props.id, style: this.props.style, className: (0, kendo_react_common_1.classNames)('k-grid', (_a = {
596
+ 'k-grid-md': !this.props.size
597
+ },
598
+ _a["k-grid-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
599
+ _a), this.props.className), ref: function (el) { _this._element = el; }, "aria-label": this.props.ariaLabel, onKeyDown: this.onKeyDown, onFocus: this.onFocus }, kendo_react_data_tools_1.tableKeyboardNavigationScopeAttributes),
604
600
  toolbar,
605
601
  groupingPanel,
606
602
  React.createElement(kendo_react_data_tools_1.TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease, childRef: function (table) {
@@ -611,7 +607,7 @@ var Grid = /** @class */ (function (_super) {
611
607
  React.createElement("table", { style: { userSelect: tableUserSelect, display: tableDisplay } },
612
608
  colGroups,
613
609
  header,
614
- React.createElement("tbody", __assign({}, kendo_react_data_tools_1.tableKeyboardNavigationBodyAttributes), body),
610
+ React.createElement("tbody", __assign({ role: 'rowgroup', className: 'k-table-tbody' }, kendo_react_data_tools_1.tableKeyboardNavigationBodyAttributes), body),
615
611
  footer)),
616
612
  this.props.pageable && pager,
617
613
  enableDragClues && (React.createElement(React.Fragment, null,
@@ -626,9 +622,12 @@ var Grid = /** @class */ (function (_super) {
626
622
  }
627
623
  }
628
624
  return (React.createElement(kendo_react_data_tools_1.TableKeyboardNavigationContext.Provider, { value: this.contextStateRef.current },
629
- React.createElement("div", __assign({ id: this.props.id, style: wrapperStyle, className: (0, kendo_react_common_1.classNames)('k-widget k-grid', {
630
- 'k-grid-virtual': this.props.scrollable === 'virtual'
631
- }, this.props.className), ref: function (el) {
625
+ React.createElement("div", __assign({ id: this.props.id, style: wrapperStyle, className: (0, kendo_react_common_1.classNames)('k-grid', (_b = {
626
+ 'k-grid-md': !this.props.size
627
+ },
628
+ _b["k-grid-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
629
+ _b['k-grid-virtual'] = this.props.scrollable === 'virtual',
630
+ _b), this.props.className), ref: function (el) {
632
631
  _this._element = el;
633
632
  _this.resetTableWidth();
634
633
  }, role: "grid", "aria-colcount": leafColumns.length, "aria-rowcount": total, "aria-label": this.props.ariaLabel, onKeyDown: this.onKeyDown, onFocus: this.onFocus }, kendo_react_data_tools_1.tableKeyboardNavigationScopeAttributes),
@@ -637,16 +636,19 @@ var Grid = /** @class */ (function (_super) {
637
636
  header,
638
637
  React.createElement("div", { className: "k-grid-container", role: "presentation" },
639
638
  React.createElement("div", { ref: this.vs.containerRef, className: "k-grid-content k-virtual-content", onScroll: this.scrollHandler, role: "presentation" },
640
- React.createElement("div", { style: { 'position': 'relative' }, role: "presentation" },
641
- React.createElement(kendo_react_data_tools_1.TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease, childRef: function (table) {
642
- _this.vs.table = table;
643
- _this.tableElement = table;
644
- } },
645
- React.createElement("table", { className: 'k-grid-table', role: "presentation", style: { userSelect: tableUserSelect, display: tableDisplay } },
646
- colGroups,
647
- React.createElement("tbody", __assign({ ref: function (tableBody) {
648
- _this.vs.tableBody = tableBody;
649
- }, role: "presentation" }, kendo_react_data_tools_1.tableKeyboardNavigationBodyAttributes), body)))),
639
+ React.createElement(kendo_react_data_tools_1.TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease, childRef: function (table) {
640
+ _this.vs.table = table;
641
+ _this.tableElement = table;
642
+ } },
643
+ React.createElement("table", { className: (0, kendo_react_common_1.classNames)('k-table k-grid-table', (_c = {
644
+ 'k-grid-md': !this.props.size
645
+ },
646
+ _c["k-table-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
647
+ _c), this.props.className), role: "presentation", style: { userSelect: tableUserSelect, display: tableDisplay } },
648
+ colGroups,
649
+ React.createElement("tbody", __assign({ className: 'k-table-tbody', ref: function (tableBody) {
650
+ _this.vs.tableBody = tableBody;
651
+ }, role: 'rowgroup' }, kendo_react_data_tools_1.tableKeyboardNavigationBodyAttributes), body))),
650
652
  React.createElement("div", { className: "k-height-container", role: "presentation" },
651
653
  React.createElement("div", { style: this.props.scrollable === 'virtual' ?
652
654
  { 'height': (this.vs.containerHeight) + 'px' } : {} })))),
@@ -687,6 +689,7 @@ var Grid = /** @class */ (function (_super) {
687
689
  var spliced = this._columns.splice(prev, end(prev) - prev);
688
690
  (_a = this._columns).splice.apply(_a, __spreadArray([prev < next ? end(next - spliced.length) : next, 0], spliced, false));
689
691
  this._columns.filter(function (q) { return q.declarationIndex >= 0; }).forEach(function (c, i) { return c.orderIndex = i; });
692
+ this._columnsMutations++;
690
693
  var eventColumnProps = this.columns;
691
694
  this.forceUpdate();
692
695
  if (this.props.onColumnReorder) {
@@ -738,10 +741,10 @@ var Grid = /** @class */ (function (_super) {
738
741
  this.vs.table.style.width = totalWidth + 'px';
739
742
  }
740
743
  };
741
- Grid.prototype.initColumns = function (columnElements, groupCount) {
744
+ Grid.prototype.initColumns = function (children, groupCount) {
742
745
  var _this = this;
743
746
  var idPrefix = kendo_react_data_tools_1.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef);
744
- this._columns = (0, index_1.readColumns)(columnElements, this.columns, { prevId: 0, idPrefix: idPrefix });
747
+ this._columns = this.readColumns(children, idPrefix, this._columnsMutations);
745
748
  if (this._columns.length === 0) {
746
749
  this._columns = (0, index_1.autoGenerateColumns)(this.props.data, this.props.group, this.props.expandField, { prevId: 0, idPrefix: idPrefix });
747
750
  }
@@ -781,7 +784,7 @@ var Grid = /** @class */ (function (_super) {
781
784
  columnIndexOffset++;
782
785
  }
783
786
  this._columns.slice(columnIndexOffset).forEach(function (c) { return c.parentIndex >= 0 && (c.parentIndex += columnIndexOffset); });
784
- this._columnsMap = (0, kendo_react_data_tools_1.mapColumns)(this._columns);
787
+ this._columnsMap = this.mapColumns(this._columns);
785
788
  this.columnResize.columns = this._columns;
786
789
  this.dragLogic.columns = this._columns;
787
790
  };
@@ -878,7 +881,8 @@ var Grid = /** @class */ (function (_super) {
878
881
  onColumnResize: PropTypes.func,
879
882
  onColumnReorder: PropTypes.func,
880
883
  dataItemKey: PropTypes.string,
881
- navigatable: PropTypes.bool
884
+ navigatable: PropTypes.bool,
885
+ size: PropTypes.oneOf(['small', 'medium'])
882
886
  };
883
887
  /** @hidden */
884
888
  Grid.contextType = kendo_react_data_tools_1.TableKeyboardNavigationContext;
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.GridToolbar = void 0;
19
19
  var React = require("react");
20
+ var kendo_react_common_1 = require("@progress/kendo-react-common");
20
21
  /**
21
22
  * Represents the GridToolbar component.
22
23
  *
@@ -64,7 +65,10 @@ var GridToolbar = /** @class */ (function (_super) {
64
65
  * @hidden
65
66
  */
66
67
  GridToolbar.prototype.render = function () {
67
- return (React.createElement("div", { className: "k-toolbar k-grid-toolbar" }, this.props.children));
68
+ var _a;
69
+ return (React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-toolbar k-grid-toolbar', (_a = {},
70
+ _a["k-toolbar-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
71
+ _a), this.props.className) }, this.props.children));
68
72
  };
69
73
  /**
70
74
  * @hidden
@@ -21,7 +21,6 @@ export declare class VirtualScroll {
21
21
  containerRef: React.RefObject<HTMLDivElement>;
22
22
  get container(): HTMLDivElement | null;
23
23
  private prevScrollPos;
24
- private syncTimeout;
25
24
  private tableTranslate;
26
25
  private scrollSyncing;
27
26
  constructor(cached: boolean);
@@ -34,10 +33,11 @@ export declare class VirtualScroll {
34
33
  }>;
35
34
  changePage(skip: number, e: React.SyntheticEvent<HTMLDivElement>): void;
36
35
  translate(dY: number): void;
37
- syncScroll(): void;
38
36
  reset(): void;
39
37
  localScrollUp(e: React.SyntheticEvent<HTMLDivElement>): void;
40
38
  localScrollDown(e: React.SyntheticEvent<HTMLDivElement>): void;
41
39
  scrollNonStrict(e: React.SyntheticEvent<HTMLDivElement>): void;
42
40
  scrollHandler(e: React.SyntheticEvent<HTMLDivElement>): void;
41
+ private topItems;
42
+ private horizontalScrollbarHeight;
43
43
  }
@@ -7,6 +7,7 @@ var React = require("react");
7
7
  */
8
8
  var VirtualScroll = /** @class */ (function () {
9
9
  function VirtualScroll(cached) {
10
+ var _this = this;
10
11
  this.table = null;
11
12
  this.containerHeight = 0;
12
13
  this.topCacheCount = 0; // 4;
@@ -25,6 +26,25 @@ var VirtualScroll = /** @class */ (function () {
25
26
  this.prevScrollPos = 0;
26
27
  this.tableTranslate = 0;
27
28
  this.scrollSyncing = false;
29
+ this.topItems = function (heights, skipTopBuffer) {
30
+ if (!_this.container || skipTopBuffer) {
31
+ return { topItemsCount: 0, topItemsHeight: 0 };
32
+ }
33
+ var screenHeight = _this.container.clientHeight;
34
+ var itemsOnScreen = Math.ceil(screenHeight / heights[0].line);
35
+ var topItemsCount = Math.ceil((heights.length - itemsOnScreen) / 2);
36
+ var topItemsHeight = 0;
37
+ for (var i = 0; i < topItemsCount; i++) {
38
+ topItemsHeight += heights[i].line + heights[i].acc;
39
+ }
40
+ return { topItemsCount: topItemsCount, topItemsHeight: topItemsHeight };
41
+ };
42
+ this.horizontalScrollbarHeight = function () {
43
+ if (!_this.container) {
44
+ return 0;
45
+ }
46
+ return _this.container.offsetHeight - _this.container.clientHeight;
47
+ };
28
48
  if (cached) {
29
49
  this.topCacheCount = 4;
30
50
  this.attendedSkip = -this.topCacheCount;
@@ -82,22 +102,6 @@ var VirtualScroll = /** @class */ (function () {
82
102
  this.table.style.transform = 'translateY(' + dY + 'px)';
83
103
  }
84
104
  };
85
- VirtualScroll.prototype.syncScroll = function () {
86
- if (!this.scrollableVirtual || !this.container) {
87
- return;
88
- }
89
- this.syncTimeout = null;
90
- var scrollTop = this.container.scrollTop;
91
- var containerHeight = this.containerHeight; // = this.container.scrollHeight;
92
- var rowHeights = this.rowHeights;
93
- var percentage = (scrollTop - this.tableTranslate) / rowHeights[0].line;
94
- var targetFloorScrollPosition = Math.floor((containerHeight) * (this.propsSkip + percentage) / this.total);
95
- if (this.container.scrollTop !== (this.prevScrollPos = targetFloorScrollPosition)) {
96
- this.scrollSyncing = true;
97
- this.container.scrollTop = (this.prevScrollPos = targetFloorScrollPosition);
98
- }
99
- this.translate(this.tableTranslate + targetFloorScrollPosition - scrollTop);
100
- };
101
105
  VirtualScroll.prototype.reset = function () {
102
106
  this.scrollSyncing = true;
103
107
  if (this.fixedScroll) {
@@ -116,11 +120,12 @@ var VirtualScroll = /** @class */ (function () {
116
120
  var scrollTop = this.container.scrollTop;
117
121
  var targetTranslate = this.tableTranslate;
118
122
  var rowsCount = 0;
123
+ var _a = this.topItems(heights, Boolean(this.topCacheCount)), topItemsCount = _a.topItemsCount, topItemsHeight = _a.topItemsHeight;
119
124
  var additionalOnTop = scrollTop - targetTranslate;
120
- if (additionalOnTop > 0) {
125
+ if (additionalOnTop > topItemsHeight) {
121
126
  return;
122
127
  }
123
- while ((rowsCount < this.topCacheCount + this.attendedSkip - this.realSkip)
128
+ while ((rowsCount < this.topCacheCount + this.attendedSkip - this.realSkip + topItemsCount)
124
129
  && this.propsSkip - rowsCount > 0 &&
125
130
  !(targetTranslate + (heights[heights.length - 1 - rowsCount].line + heights[heights.length - 1 - rowsCount].acc) + additionalOnTop <= scrollTop)) {
126
131
  targetTranslate -= heights[heights.length - 1 - rowsCount].line +
@@ -146,8 +151,9 @@ var VirtualScroll = /** @class */ (function () {
146
151
  // floor the translate to beginning of the item in absolute value
147
152
  }
148
153
  if (targetTranslate !== this.tableTranslate) {
149
- this.translate(targetTranslate);
150
- this.changePage(this.propsSkip - rowsCount, e);
154
+ this.translate(Math.max(0, targetTranslate - topItemsHeight));
155
+ var nextSkip = Math.max(0, this.propsSkip - rowsCount - topItemsCount);
156
+ this.changePage(nextSkip, e);
151
157
  }
152
158
  };
153
159
  VirtualScroll.prototype.localScrollDown = function (e) {
@@ -158,18 +164,22 @@ var VirtualScroll = /** @class */ (function () {
158
164
  var scrollTop = this.container.scrollTop;
159
165
  var targetTranslate = this.tableTranslate;
160
166
  var rowsCount = 0;
167
+ var _a = this.topItems(heights, Boolean(this.topCacheCount)), topItemsCount = _a.topItemsCount, topItemsHeight = _a.topItemsHeight;
161
168
  while (rowsCount < heights.length - this.topCacheCount &&
162
169
  !(targetTranslate + heights[rowsCount].line + heights[rowsCount].acc > scrollTop)) {
163
170
  targetTranslate += heights[rowsCount].line + heights[rowsCount].acc;
164
171
  rowsCount++;
165
172
  }
173
+ if (topItemsCount > this.propsSkip + rowsCount) {
174
+ return;
175
+ }
166
176
  if (rowsCount >= heights.length - this.topCacheCount && this.propsSkip + rowsCount >= this.total) {
167
- this.translate(targetTranslate);
168
- this.changePage(this.total - 1, e);
177
+ this.translate(targetTranslate - topItemsHeight);
178
+ this.changePage(this.total - 1 - topItemsCount, e);
169
179
  }
170
- else if (targetTranslate !== this.tableTranslate) {
171
- this.translate(targetTranslate);
172
- this.changePage(this.propsSkip + rowsCount, e);
180
+ else if (targetTranslate !== this.tableTranslate && this.propsSkip + rowsCount - topItemsCount !== this.propsSkip) {
181
+ this.translate(targetTranslate - topItemsHeight);
182
+ this.changePage(this.propsSkip + rowsCount - topItemsCount, e);
173
183
  }
174
184
  };
175
185
  VirtualScroll.prototype.scrollNonStrict = function (e) {
@@ -188,8 +198,9 @@ var VirtualScroll = /** @class */ (function () {
188
198
  else if (rowIndexOffset === -1) {
189
199
  microAdjust = -((heights[heights.length - 1].line + heights[heights.length - 1].acc) * rowpercentage);
190
200
  }
191
- this.translate(microAdjust + this.containerHeight * floatRowIndex / this.total);
192
- this.changePage(rowIndex, e);
201
+ var _a = this.topItems(heights, Boolean(this.topCacheCount)), topItemsCount = _a.topItemsCount, topItemsHeight = _a.topItemsHeight;
202
+ this.translate(Math.max(0, microAdjust - topItemsHeight - this.horizontalScrollbarHeight() + this.containerHeight * floatRowIndex / this.total));
203
+ this.changePage(rowIndex - topItemsCount, e);
193
204
  };
194
205
  VirtualScroll.prototype.scrollHandler = function (e) {
195
206
  if (!this.scrollableVirtual) {
@@ -199,9 +210,6 @@ var VirtualScroll = /** @class */ (function () {
199
210
  this.scrollSyncing = false;
200
211
  return;
201
212
  }
202
- var grid = this;
203
- clearTimeout(this.syncTimeout);
204
- this.syncTimeout = window.setTimeout(function () { grid.syncScroll(); }, 200);
205
213
  var scrollTop = this.container.scrollTop;
206
214
  var prev = this.prevScrollPos;
207
215
  this.prevScrollPos = scrollTop;
@@ -34,7 +34,7 @@ var GridCell = function (props) {
34
34
  intl.format(props.format, data) :
35
35
  data.toString();
36
36
  }
37
- var className = (0, kendo_react_common_1.classNames)(props.className, { 'k-selected': props.isSelected });
37
+ var className = (0, kendo_react_common_1.classNames)('k-table-td', props.className, { 'k-selected': props.isSelected });
38
38
  defaultRendering = (React.createElement("td", __assign({ colSpan: props.colSpan, style: props.style, className: className, role: 'gridcell', "aria-colindex": props.ariaColumnIndex, "aria-selected": props.isSelected }, (_a = {}, _a[constants_1.GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _a), navigationAttributes), dataAsString));
39
39
  }
40
40
  return props.render ?
@@ -18,7 +18,7 @@ var React = require("react");
18
18
  var GridDetailCell = function (props) {
19
19
  var colSpan = props.colSpan, ariaColIndex = props.ariaColIndex, dataItem = props.dataItem, dataIndex = props.dataIndex, id = props.id;
20
20
  var navigationAttributes = (0, kendo_react_data_tools_1.useTableKeyboardNavigation)(id);
21
- return (React.createElement("td", __assign({ className: "k-detail-cell", colSpan: colSpan, "aria-colindex": ariaColIndex, role: 'gridcell' }, navigationAttributes),
21
+ return (React.createElement("td", __assign({ className: "k-table-td k-detail-cell", colSpan: colSpan, "aria-colindex": ariaColIndex, role: 'gridcell' }, navigationAttributes),
22
22
  React.createElement(props.detail, { dataItem: dataItem, dataIndex: dataIndex })));
23
23
  };
24
24
  exports.GridDetailCell = GridDetailCell;
@@ -17,6 +17,6 @@ var React = require("react");
17
17
  /** @hidden */
18
18
  var GridDetailHierarchyCell = function (props) {
19
19
  var navigationAttributes = (0, kendo_react_data_tools_1.useTableKeyboardNavigation)(props.id);
20
- return (React.createElement("td", __assign({ className: "k-hierarchy-cell" }, navigationAttributes)));
20
+ return (React.createElement("td", __assign({ className: "k-table-td k-hierarchy-cell" }, navigationAttributes, { role: 'gridcell' })));
21
21
  };
22
22
  exports.GridDetailHierarchyCell = GridDetailHierarchyCell;
@@ -26,7 +26,7 @@ var GridEditCell = function (props) {
26
26
  var _a, _b, _c, _d, _e;
27
27
  var data = (0, utils_1.getNestedValue)(props.field, props.dataItem);
28
28
  var defaultRendering = null;
29
- var editCellClasses = (0, kendo_react_common_1.classNames)('k-grid-edit-cell', (_a = {},
29
+ var editCellClasses = (0, kendo_react_common_1.classNames)('k-table-td', 'k-grid-edit-cell', (_a = {},
30
30
  _a['k-selected'] = props.isSelected,
31
31
  _a), props.className);
32
32
  var inputId = React.useMemo(function () { return (0, kendo_react_common_1.guid)(); }, []);
@@ -34,7 +34,7 @@ var GridFilterCell = /** @class */ (function (_super) {
34
34
  return;
35
35
  }
36
36
  var value = _this.props.operators.find(function (item) { return item.operator === _this.props.operator; }) || null;
37
- return (React.createElement(kendo_react_dropdowns_1.DropDownList, { value: value, onChange: _this.operatorChange, className: "k-dropdown-operator", iconClassName: "k-i-filter k-icon", data: _this.props.operators, textField: "text", title: localization.toLanguageString(messages_1.filterChooseOperator, messages_1.messages[messages_1.filterChooseOperator]), popupSettings: {
37
+ return (React.createElement(kendo_react_dropdowns_1.DropDownList, { size: _this.props.size, value: value, onChange: _this.operatorChange, className: "k-dropdown-operator", iconClassName: "k-i-filter k-icon", data: _this.props.operators, textField: "text", title: localization.toLanguageString(messages_1.filterChooseOperator, messages_1.messages[messages_1.filterChooseOperator]), popupSettings: {
38
38
  width: ''
39
39
  } }));
40
40
  };
@@ -51,12 +51,12 @@ var GridFilterCell = /** @class */ (function (_super) {
51
51
  var _a;
52
52
  var localizationService = (0, kendo_react_intl_1.provideLocalizationService)(this);
53
53
  var defaultRendering = (React.createElement("div", { className: "k-filtercell" },
54
- React.createElement("span", null,
54
+ React.createElement("div", { className: "k-filtercell-wrapper" },
55
55
  this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues),
56
56
  React.createElement("div", { className: "k-filtercell-operator" },
57
57
  this.renderOperatorEditor(localizationService),
58
58
  "\u00A0",
59
- React.createElement(kendo_react_buttons_1.Button, { icon: 'filter-clear', className: (0, kendo_react_common_1.classNames)((_a = {},
59
+ React.createElement(kendo_react_buttons_1.Button, { size: this.props.size, icon: 'filter-clear', className: (0, kendo_react_common_1.classNames)((_a = {},
60
60
  _a['k-clear-button-visible'] = Boolean(!(this.props.value === null || this.props.value === '') || this.props.operator),
61
61
  _a)), title: localizationService.toLanguageString(messages_1.filterClearButton, messages_1.messages[messages_1.filterClearButton]), type: "button", onClick: this.clear, disabled: !(!(this.props.value === null || this.props.value === '') || this.props.operator) })))));
62
62
  if (this.props.render) {
@@ -81,13 +81,13 @@ var GridFilterCell = /** @class */ (function (_super) {
81
81
  var _this = this;
82
82
  switch (filterType) {
83
83
  case 'numeric':
84
- return (React.createElement(kendo_react_inputs_1.NumericTextBox, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title, ariaLabel: this.props.ariaLabel }));
84
+ return (React.createElement(kendo_react_inputs_1.NumericTextBox, { size: this.props.size, value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title, ariaLabel: this.props.ariaLabel }));
85
85
  case 'date':
86
- return (React.createElement(kendo_react_dateinputs_1.DatePicker, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title, ariaLabel: this.props.ariaLabel }));
86
+ return (React.createElement(kendo_react_dateinputs_1.DatePicker, { size: this.props.size, value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title, ariaLabel: this.props.ariaLabel }));
87
87
  case 'boolean':
88
88
  var noFilterSet_1 = function (filter) { return filter === null || filter === undefined; };
89
- return (React.createElement(kendo_react_dropdowns_1.DropDownList, { onChange: this.boolDropdownChange, value: booleanValues.find(function (item) { return item.operator === (noFilterSet_1(value) ? '' : value); }), data: booleanValues, textField: "text", title: this.props.title, ariaLabel: this.props.ariaLabel }));
90
- default: return (React.createElement(kendo_react_inputs_1.Input, { value: value || '', onChange: function (e) { _this.inputChange(e.target.value, e.syntheticEvent); }, title: this.props.title, "aria-label": this.props.ariaLabel }));
89
+ return (React.createElement(kendo_react_dropdowns_1.DropDownList, { size: this.props.size, onChange: this.boolDropdownChange, value: booleanValues.find(function (item) { return item.operator === (noFilterSet_1(value) ? '' : value); }), data: booleanValues, textField: "text", title: this.props.title, ariaLabel: this.props.ariaLabel }));
90
+ default: return (React.createElement(kendo_react_inputs_1.TextBox, { size: this.props.size, value: value || '', onChange: function (e) { _this.inputChange(e.target.value, e.syntheticEvent); }, title: this.props.title, "aria-label": this.props.ariaLabel }));
91
91
  }
92
92
  };
93
93
  return GridFilterCell;
@@ -44,7 +44,7 @@ var GridGroupCell = function (props) {
44
44
  var renderCellCollapse = function (colspan, styles) {
45
45
  var baseMessage = expanded ? messages_1.groupCollapse : messages_1.groupExpand;
46
46
  var message = localization.toLanguageString(baseMessage, messages_1.messages[baseMessage]);
47
- return (React.createElement("td", __assign({ style: __assign(__assign({}, props.style), styles), colSpan: colspan, key: 'g-colspan', role: 'gridcell', "aria-selected": false, "aria-expanded": expanded, "aria-colindex": ariaColumnIndex, onKeyDown: onKeyDownHandler }, navigationAttributes),
47
+ return (React.createElement("td", __assign({ className: 'k-table-td', style: __assign(__assign({}, props.style), styles), colSpan: colspan, key: 'g-colspan', role: 'gridcell', "aria-selected": false, "aria-expanded": expanded, "aria-colindex": ariaColumnIndex, onKeyDown: onKeyDownHandler }, navigationAttributes),
48
48
  React.createElement("p", { className: "k-reset" },
49
49
  React.createElement("a", { onClick: function (e) {
50
50
  e.preventDefault();
@@ -64,7 +64,7 @@ var GridGroupCell = function (props) {
64
64
  };
65
65
  if (columnIndex === undefined || level === undefined || columnIndex < level ||
66
66
  columnsCount === undefined || rowType !== 'groupHeader' || dataItem[definedField] === undefined) {
67
- defaultRendering = (React.createElement("td", { style: props.style, key: 'g' + columnIndex, className: (0, kendo_react_common_1.classNames)('k-group-cell', { 'k-grid-content-sticky': props.locked }), role: "presentation" }));
67
+ defaultRendering = (React.createElement("td", { style: props.style, key: 'g' + columnIndex, className: (0, kendo_react_common_1.classNames)('k-table-td', 'k-group-cell', { 'k-grid-content-sticky': props.locked }), role: "gridcell" }));
68
68
  }
69
69
  else if (columnIndex <= level && !props.locked) {
70
70
  defaultRendering = renderCellCollapse(columnsCount - columnIndex, {});
@@ -72,7 +72,7 @@ var GridGroupCell = function (props) {
72
72
  else if (columnIndex <= level && props.locked) {
73
73
  defaultRendering = (React.createElement(React.Fragment, null,
74
74
  renderCellCollapse(0, { position: 'sticky', zIndex: 2 }),
75
- React.createElement("td", { colSpan: (columnsCount - columnIndex), style: { borderLeftWidth: 0, borderRightWidth: 0 } })));
75
+ React.createElement("td", { className: 'k-table-td', role: 'gridcell', colSpan: (columnsCount - columnIndex), style: { borderLeftWidth: 0, borderRightWidth: 0 } })));
76
76
  }
77
77
  return render ?
78
78
  render.call(undefined, defaultRendering, props) :
@@ -42,13 +42,14 @@ var GridHierarchyCell = function (props) {
42
42
  }
43
43
  }, [props.dataItem, props.dataIndex, props.field, props.onChange, expanded]);
44
44
  if (props.rowType === 'groupFooter') {
45
- defaultRendering = React.createElement("td", __assign({ className: "k-hierarchy-cell" }, navigationAttributes));
45
+ defaultRendering =
46
+ React.createElement("td", __assign({ className: "k-table-td k-hierarchy-cell", role: 'gridcell' }, navigationAttributes));
46
47
  }
47
48
  else if (props.rowType !== 'groupHeader') {
48
49
  var className = expanded ? 'k-icon k-i-minus' : 'k-icon k-i-plus';
49
50
  var baseMessage = expanded ? messages_1.detailCollapse : messages_1.detailExpand;
50
51
  var message = localization.toLanguageString(baseMessage, messages_1.messages[baseMessage]);
51
- defaultRendering = (React.createElement("td", __assign({ className: "k-hierarchy-cell", onKeyDown: onKeyDownHandler, "aria-expanded": expanded ? 'true' : 'false', role: 'gridcell', "aria-colindex": props.ariaColumnIndex }, navigationAttributes),
52
+ defaultRendering = (React.createElement("td", __assign({ className: "k-table-td k-hierarchy-cell", onKeyDown: onKeyDownHandler, "aria-expanded": expanded ? 'true' : 'false', role: 'gridcell', "aria-colindex": props.ariaColumnIndex }, navigationAttributes),
52
53
  React.createElement("a", { onClick: function (e) {
53
54
  e.preventDefault();
54
55
  if (props.onChange) {