@skyux/ag-grid 5.7.2 → 5.8.0

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 (34) hide show
  1. package/bundles/skyux-ag-grid.umd.js +63 -35
  2. package/documentation.json +57 -57
  3. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js +8 -1
  4. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js.map +1 -1
  5. package/esm2015/lib/modules/ag-grid/ag-grid.service.js +4 -2
  6. package/esm2015/lib/modules/ag-grid/ag-grid.service.js.map +1 -1
  7. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +8 -1
  8. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js.map +1 -1
  9. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +4 -1
  10. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js.map +1 -1
  11. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +3 -1
  12. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js.map +1 -1
  13. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +31 -24
  14. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js.map +1 -1
  15. package/esm2015/lib/modules/ag-grid/types/cell-editor-number-params.js +2 -0
  16. package/esm2015/lib/modules/ag-grid/types/cell-editor-number-params.js.map +1 -0
  17. package/esm2015/lib/modules/ag-grid/types/cell-editor-text-params.js +2 -0
  18. package/esm2015/lib/modules/ag-grid/types/cell-editor-text-params.js.map +1 -0
  19. package/esm2015/lib/modules/ag-grid/types/number-properties.js +2 -0
  20. package/esm2015/lib/modules/ag-grid/types/number-properties.js.map +1 -0
  21. package/esm2015/lib/modules/ag-grid/types/text-properties.js +2 -0
  22. package/esm2015/lib/modules/ag-grid/types/text-properties.js.map +1 -0
  23. package/fesm2015/skyux-ag-grid.js +57 -28
  24. package/fesm2015/skyux-ag-grid.js.map +1 -1
  25. package/lib/modules/ag-grid/ag-grid-wrapper.component.d.ts +4 -0
  26. package/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.d.ts +4 -0
  27. package/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.d.ts +4 -2
  28. package/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.d.ts +3 -2
  29. package/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.d.ts +5 -6
  30. package/lib/modules/ag-grid/types/cell-editor-number-params.d.ts +5 -0
  31. package/lib/modules/ag-grid/types/cell-editor-text-params.d.ts +5 -0
  32. package/lib/modules/ag-grid/types/number-properties.d.ts +7 -0
  33. package/lib/modules/ag-grid/types/text-properties.d.ts +6 -0
  34. package/package.json +13 -13
@@ -439,6 +439,13 @@
439
439
  this.viewkeeperClasses.push('.ag-header');
440
440
  }
441
441
  };
442
+ /**
443
+ * Prevent closing a modal when focused in AG Grid.
444
+ */
445
+ SkyAgGridWrapperComponent.prototype.onKeyUpEscape = function ($event) {
446
+ $event.stopPropagation();
447
+ this.agGrid.api.stopEditing(true);
448
+ };
442
449
  SkyAgGridWrapperComponent.prototype.onGridKeydown = function (event) {
443
450
  if (this.agGrid && !this.isInEditMode && event.key === 'Tab') {
444
451
  var idToFocus = event.shiftKey
@@ -491,12 +498,12 @@
491
498
  return SkyAgGridWrapperComponent;
492
499
  }());
493
500
  SkyAgGridWrapperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridWrapperComponent, deps: [{ token: SkyAgGridAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
494
- SkyAgGridWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", queries: [{ propertyName: "agGrid", first: true, predicate: agGridAngular.AgGridAngular, descendants: true, static: true }], ngImport: i0__namespace, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", directives: [{ type: i1__namespace.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
501
+ SkyAgGridWrapperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", queries: [{ propertyName: "agGrid", first: true, predicate: agGridAngular.AgGridAngular, descendants: true, static: true }], ngImport: i0__namespace, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", directives: [{ type: i1__namespace.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
495
502
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridWrapperComponent, decorators: [{
496
503
  type: i0.Component,
497
504
  args: [{
498
505
  selector: 'sky-ag-grid-wrapper',
499
- template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n",
506
+ template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n",
500
507
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
501
508
  }]
502
509
  }], ctorParameters: function () { return [{ type: SkyAgGridAdapterService }, { type: i0__namespace.ChangeDetectorRef }, { type: i0__namespace.ElementRef }]; }, propDecorators: { agGrid: [{
@@ -1179,15 +1186,22 @@
1179
1186
  SkyAgGridCellEditorCurrencyComponent.prototype.getValue = function () {
1180
1187
  return this.value;
1181
1188
  };
1189
+ /**
1190
+ * The autoNumeric library's event handler suppresses the escape key event. This additional handler re-enables AG Grid's default functionality.
1191
+ */
1192
+ SkyAgGridCellEditorCurrencyComponent.prototype.onPressEscape = function () {
1193
+ this.params.api.stopEditing(true);
1194
+ this.params.api.setFocusedCell(this.params.rowIndex, this.params.column);
1195
+ };
1182
1196
  return SkyAgGridCellEditorCurrencyComponent;
1183
1197
  }());
1184
1198
  SkyAgGridCellEditorCurrencyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorCurrencyComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1185
- SkyAgGridCellEditorCurrencyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorCurrencyComponent, selector: "sky-ag-grid-cell-editor-currency", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorCurrency"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [skyAutonumeric]=\"skyComponentProperties\"\n #skyCellEditorCurrency\n/>\n", styles: ["input{border:none;padding-left:11px}\n"], directives: [{ type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2__namespace.λ1, selector: "input[skyAutonumeric]", inputs: ["skyAutonumeric"] }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1199
+ SkyAgGridCellEditorCurrencyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorCurrencyComponent, selector: "sky-ag-grid-cell-editor-currency", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorCurrency"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [skyAutonumeric]=\"skyComponentProperties\"\n (keyup.escape)=\"onPressEscape()\"\n #skyCellEditorCurrency\n/>\n", styles: ["input{border:none;padding-left:11px}\n"], directives: [{ type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2__namespace.λ1, selector: "input[skyAutonumeric]", inputs: ["skyAutonumeric"] }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1186
1200
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorCurrencyComponent, decorators: [{
1187
1201
  type: i0.Component,
1188
1202
  args: [{
1189
1203
  selector: 'sky-ag-grid-cell-editor-currency',
1190
- template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [skyAutonumeric]=\"skyComponentProperties\"\n #skyCellEditorCurrency\n/>\n",
1204
+ template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_currency_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [skyAutonumeric]=\"skyComponentProperties\"\n (keyup.escape)=\"onPressEscape()\"\n #skyCellEditorCurrency\n/>\n",
1191
1205
  styles: ["input{border:none;padding-left:11px}\n"],
1192
1206
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1193
1207
  }]
@@ -1443,8 +1457,11 @@
1443
1457
  * @param params The cell editor params that include data about the cell, column, row, and grid.
1444
1458
  */
1445
1459
  SkyAgGridCellEditorNumberComponent.prototype.agInit = function (params) {
1460
+ var _a, _b;
1446
1461
  this.params = params;
1447
1462
  this.value = this.params.value;
1463
+ this.max = (_a = params.skyComponentProperties) === null || _a === void 0 ? void 0 : _a.max;
1464
+ this.min = (_b = params.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.min;
1448
1465
  this.columnHeader = this.params.colDef.headerName;
1449
1466
  this.rowNumber = this.params.rowIndex + 1;
1450
1467
  this.columnWidth = this.params.column.getActualWidth();
@@ -1466,12 +1483,12 @@
1466
1483
  return SkyAgGridCellEditorNumberComponent;
1467
1484
  }());
1468
1485
  SkyAgGridCellEditorNumberComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorNumberComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1469
- SkyAgGridCellEditorNumberComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorNumberComponent, selector: "sky-ag-grid-cell-editor-number", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorNumber"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n #skyCellEditorNumber\n/>\n", styles: ["input{border:none;text-align:right}\n"], directives: [{ type: i1__namespace$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1486
+ SkyAgGridCellEditorNumberComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorNumberComponent, selector: "sky-ag-grid-cell-editor-number", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorNumber"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [max]=\"max\"\n [min]=\"min\"\n #skyCellEditorNumber\n/>\n", styles: ["input{border:none;text-align:right}\n"], directives: [{ type: i1__namespace$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i1__namespace$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { type: i1__namespace$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1470
1487
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorNumberComponent, decorators: [{
1471
1488
  type: i0.Component,
1472
1489
  args: [{
1473
1490
  selector: 'sky-ag-grid-cell-editor-number',
1474
- template: "<input\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n #skyCellEditorNumber\n/>\n",
1491
+ template: "<input\n type=\"number\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_number_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [max]=\"max\"\n [min]=\"min\"\n #skyCellEditorNumber\n/>\n",
1475
1492
  styles: ["input{border:none;text-align:right}\n"],
1476
1493
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1477
1494
  }]
@@ -1508,8 +1525,10 @@
1508
1525
  * @param params The cell editor params that include data about the cell, column, row, and grid.
1509
1526
  */
1510
1527
  SkyAgGridCellEditorTextComponent.prototype.agInit = function (params) {
1528
+ var _a;
1511
1529
  this.params = params;
1512
1530
  this.value = this.params.charPress || this.params.value;
1531
+ this.maxlength = (_a = params.skyComponentProperties) === null || _a === void 0 ? void 0 : _a.maxlength;
1513
1532
  this.columnHeader = this.params.colDef.headerName;
1514
1533
  this.rowNumber = this.params.rowIndex + 1;
1515
1534
  this.columnWidth = this.params.column.getActualWidth();
@@ -1531,12 +1550,12 @@
1531
1550
  return SkyAgGridCellEditorTextComponent;
1532
1551
  }());
1533
1552
  SkyAgGridCellEditorTextComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorTextComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1534
- SkyAgGridCellEditorTextComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorTextComponent, selector: "sky-ag-grid-cell-editor-text", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorText"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n #skyCellEditorText\n/>\n", styles: ["input{border:none;padding-left:11px}\n"], directives: [{ type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1553
+ SkyAgGridCellEditorTextComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellEditorTextComponent, selector: "sky-ag-grid-cell-editor-text", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorText"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [maxlength]=\"maxlength\"\n #skyCellEditorText\n/>\n", styles: ["input{border:none;padding-left:11px}\n"], directives: [{ type: i1__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], pipes: { "skyLibResources": i3__namespace$1.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1535
1554
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellEditorTextComponent, decorators: [{
1536
1555
  type: i0.Component,
1537
1556
  args: [{
1538
1557
  selector: 'sky-ag-grid-cell-editor-text',
1539
- template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n #skyCellEditorText\n/>\n",
1558
+ template: "<input\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_text_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n [style.width.px]=\"columnWidth\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n [(ngModel)]=\"value\"\n [maxlength]=\"maxlength\"\n #skyCellEditorText\n/>\n",
1540
1559
  styles: ["input{border:none;padding-left:11px}\n"],
1541
1560
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1542
1561
  }]
@@ -1566,16 +1585,14 @@
1566
1585
  * @internal
1567
1586
  */
1568
1587
  var SkyAgGridCellValidatorTooltipComponent = /** @class */ (function () {
1569
- function SkyAgGridCellValidatorTooltipComponent(changeDetector, zone) {
1588
+ function SkyAgGridCellValidatorTooltipComponent(changeDetector) {
1570
1589
  this.changeDetector = changeDetector;
1571
- this.zone = zone;
1572
- this.indicatorShouldShow = true;
1573
1590
  this.popoverMessageStream = new rxjs.Subject();
1574
1591
  }
1575
1592
  Object.defineProperty(SkyAgGridCellValidatorTooltipComponent.prototype, "params", {
1576
1593
  set: function (value) {
1577
1594
  var _this = this;
1578
- var _a, _b, _c, _d, _e;
1595
+ var _a, _b, _c, _d, _e, _f, _g;
1579
1596
  this.cellRendererParams = value;
1580
1597
  /*istanbul ignore next*/
1581
1598
  (_a = this.cellRendererParams.api) === null || _a === void 0 ? void 0 : _a.addEventListener(agGridCommunity.Events.EVENT_CELL_FOCUSED, function (eventParams) {
@@ -1592,56 +1609,65 @@
1592
1609
  _this.showPopover();
1593
1610
  }
1594
1611
  });
1612
+ (_c = this.cellRendererParams.eGridCell) === null || _c === void 0 ? void 0 : _c.addEventListener('mouseenter', function () {
1613
+ _this.scheduleDelayedPopover();
1614
+ });
1615
+ (_d = this.cellRendererParams.eGridCell) === null || _d === void 0 ? void 0 : _d.addEventListener('mouseleave', function () {
1616
+ _this.hidePopover();
1617
+ });
1595
1618
  /*istanbul ignore next*/
1596
- (_c = this.cellRendererParams.api) === null || _c === void 0 ? void 0 : _c.addEventListener(agGridCommunity.Events.EVENT_CELL_EDITING_STARTED, function () {
1619
+ (_e = this.cellRendererParams.api) === null || _e === void 0 ? void 0 : _e.addEventListener(agGridCommunity.Events.EVENT_CELL_EDITING_STARTED, function () {
1597
1620
  _this.hidePopover();
1598
1621
  });
1599
- if (typeof ((_d = this.cellRendererParams.skyComponentProperties) === null || _d === void 0 ? void 0 : _d.validatorMessage) === 'function') {
1622
+ if (typeof ((_f = this.cellRendererParams.skyComponentProperties) === null || _f === void 0 ? void 0 : _f.validatorMessage) === 'function') {
1600
1623
  this.validatorMessage =
1601
1624
  this.cellRendererParams.skyComponentProperties.validatorMessage(this.cellRendererParams.value, this.cellRendererParams.data, this.cellRendererParams.rowIndex);
1602
1625
  }
1603
1626
  else {
1604
1627
  this.validatorMessage =
1605
- (_e = this.cellRendererParams.skyComponentProperties) === null || _e === void 0 ? void 0 : _e.validatorMessage;
1628
+ (_g = this.cellRendererParams.skyComponentProperties) === null || _g === void 0 ? void 0 : _g.validatorMessage;
1606
1629
  }
1607
1630
  this.changeDetector.markForCheck();
1608
1631
  },
1609
1632
  enumerable: false,
1610
1633
  configurable: true
1611
1634
  });
1612
- SkyAgGridCellValidatorTooltipComponent.prototype.hideIndicator = function () {
1613
- var _this = this;
1614
- this.zone.run(function () {
1615
- _this.indicatorShouldShow = false;
1616
- _this.changeDetector.detectChanges();
1617
- });
1618
- };
1619
1635
  SkyAgGridCellValidatorTooltipComponent.prototype.hidePopover = function () {
1636
+ this.cancelDelayedPopover();
1620
1637
  this.popoverMessageStream.next({ type: i2$2.SkyPopoverMessageType.Close });
1621
1638
  };
1622
- SkyAgGridCellValidatorTooltipComponent.prototype.showIndicator = function () {
1623
- var _this = this;
1624
- this.zone.run(function () {
1625
- _this.indicatorShouldShow = true;
1626
- _this.changeDetector.detectChanges();
1627
- });
1628
- };
1629
1639
  SkyAgGridCellValidatorTooltipComponent.prototype.showPopover = function () {
1640
+ this.cancelDelayedPopover();
1630
1641
  this.popoverMessageStream.next({ type: i2$2.SkyPopoverMessageType.Open });
1631
1642
  };
1643
+ SkyAgGridCellValidatorTooltipComponent.prototype.scheduleDelayedPopover = function () {
1644
+ var _this = this;
1645
+ /* istanbul ignore else */
1646
+ if (!this._hoverTimeout) {
1647
+ this._hoverTimeout = window.setTimeout(function () {
1648
+ _this.showPopover();
1649
+ }, 300);
1650
+ }
1651
+ };
1652
+ SkyAgGridCellValidatorTooltipComponent.prototype.cancelDelayedPopover = function () {
1653
+ if (this._hoverTimeout) {
1654
+ window.clearTimeout(this._hoverTimeout);
1655
+ this._hoverTimeout = undefined;
1656
+ }
1657
+ };
1632
1658
  return SkyAgGridCellValidatorTooltipComponent;
1633
1659
  }());
1634
- SkyAgGridCellValidatorTooltipComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellValidatorTooltipComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
1635
- SkyAgGridCellValidatorTooltipComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellValidatorTooltipComponent, selector: "sky-ag-grid-cell-validator-tooltip", inputs: { params: "params" }, ngImport: i0__namespace, template: "<div\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n class=\"sky-validator-cell\"\n>\n <ng-content></ng-content>\n <sky-status-indicator\n *ngIf=\"indicatorShouldShow\"\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n ></sky-status-indicator>\n</div>\n<sky-popover\n #validatorPopover\n (popoverClosed)=\"showIndicator()\"\n (popoverOpened)=\"hideIndicator()\"\n popoverType=\"danger\"\n>\n {{ validatorMessage }}\n</sky-popover>\n", styles: [":host div.sky-validator-cell{height:100%;width:100%}:host div.sky-validator-cell:focus{outline:none}\n"], components: [{ type: i1__namespace$7.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { type: i2__namespace$2.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }], directives: [{ type: i2__namespace$2.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1660
+ SkyAgGridCellValidatorTooltipComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellValidatorTooltipComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1661
+ SkyAgGridCellValidatorTooltipComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridCellValidatorTooltipComponent, selector: "sky-ag-grid-cell-validator-tooltip", inputs: { params: "params" }, ngImport: i0__namespace, template: "<div\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n class=\"sky-validator-cell\"\n>\n <ng-content></ng-content>\n <sky-status-indicator\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n ></sky-status-indicator>\n</div>\n<sky-popover #validatorPopover popoverType=\"danger\">\n {{ validatorMessage }}\n</sky-popover>\n", styles: [":host div.sky-validator-cell{height:100%;width:100%}:host div.sky-validator-cell:focus{outline:none}\n"], components: [{ type: i1__namespace$7.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { type: i2__namespace$2.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }], directives: [{ type: i2__namespace$2.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1636
1662
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAgGridCellValidatorTooltipComponent, decorators: [{
1637
1663
  type: i0.Component,
1638
1664
  args: [{
1639
1665
  selector: 'sky-ag-grid-cell-validator-tooltip',
1640
1666
  styles: [":host div.sky-validator-cell{height:100%;width:100%}:host div.sky-validator-cell:focus{outline:none}\n"],
1641
- template: "<div\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n class=\"sky-validator-cell\"\n>\n <ng-content></ng-content>\n <sky-status-indicator\n *ngIf=\"indicatorShouldShow\"\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n ></sky-status-indicator>\n</div>\n<sky-popover\n #validatorPopover\n (popoverClosed)=\"showIndicator()\"\n (popoverOpened)=\"hideIndicator()\"\n popoverType=\"danger\"\n>\n {{ validatorMessage }}\n</sky-popover>\n",
1667
+ template: "<div\n [skyPopover]=\"validatorPopover\"\n [skyPopoverMessageStream]=\"popoverMessageStream\"\n class=\"sky-validator-cell\"\n>\n <ng-content></ng-content>\n <sky-status-indicator\n descriptionType=\"none\"\n indicatorType=\"danger\"\n class=\"sky-pull-right\"\n ></sky-status-indicator>\n</div>\n<sky-popover #validatorPopover popoverType=\"danger\">\n {{ validatorMessage }}\n</sky-popover>\n",
1642
1668
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1643
1669
  }]
1644
- }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i0__namespace.NgZone }]; }, propDecorators: { params: [{
1670
+ }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { params: [{
1645
1671
  type: i0.Input
1646
1672
  }] } });
1647
1673
 
@@ -2373,7 +2399,8 @@
2373
2399
  minWidth: 185,
2374
2400
  },
2375
2401
  _j[exports.SkyCellType.Number] = {
2376
- cellClassRules: Object.assign((_p = {}, _p[exports.SkyCellClass.Number] = cellClassRuleTrueExpression, _p), editableCellClassRules),
2402
+ cellClassRules: Object.assign(Object.assign((_p = {}, _p[exports.SkyCellClass.Number] = cellClassRuleTrueExpression, _p), validatorCellClassRules), editableCellClassRules),
2403
+ cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),
2377
2404
  cellEditorFramework: SkyAgGridCellEditorNumberComponent,
2378
2405
  headerClass: exports.SkyHeaderClass.RightAligned,
2379
2406
  },
@@ -2390,8 +2417,9 @@
2390
2417
  width: 55,
2391
2418
  },
2392
2419
  _j[exports.SkyCellType.Text] = {
2393
- cellClassRules: Object.assign((_r = {}, _r[exports.SkyCellClass.Text] = cellClassRuleTrueExpression, _r), editableCellClassRules),
2420
+ cellClassRules: Object.assign(Object.assign((_r = {}, _r[exports.SkyCellClass.Text] = cellClassRuleTrueExpression, _r), validatorCellClassRules), editableCellClassRules),
2394
2421
  cellEditorFramework: SkyAgGridCellEditorTextComponent,
2422
+ cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),
2395
2423
  },
2396
2424
  _j[exports.SkyCellType.Validator] = {
2397
2425
  cellClassRules: Object.assign(Object.assign({}, validatorCellClassRules), editableCellClassRules),