@skyux/ag-grid 4.11.0 → 4.12.3

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 (56) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/bundles/skyux-ag-grid.umd.js +287 -53
  3. package/bundles/skyux-ag-grid.umd.js.map +1 -1
  4. package/bundles/skyux-ag-grid.umd.min.js +2 -2
  5. package/bundles/skyux-ag-grid.umd.min.js.map +1 -1
  6. package/css/sky-ag-grid.css +56 -8
  7. package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +49 -14
  8. package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +5 -2
  9. package/esm2015/modules/ag-grid/ag-grid.module.js +9 -1
  10. package/esm2015/modules/ag-grid/ag-grid.service.js +53 -13
  11. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +68 -0
  12. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +25 -0
  13. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +32 -0
  14. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +16 -0
  15. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +3 -3
  16. package/esm2015/modules/ag-grid/types/cell-class.js +2 -1
  17. package/esm2015/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
  18. package/esm2015/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
  19. package/esm2015/modules/ag-grid/types/cell-type.js +2 -1
  20. package/esm2015/modules/ag-grid/types/lookup-properties.js +24 -0
  21. package/esm2015/plugin-resources/ag-grid-resources-provider.js +2 -2
  22. package/esm2015/skyux-ag-grid.js +20 -16
  23. package/esm5/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +51 -14
  24. package/esm5/modules/ag-grid/ag-grid-row-delete.directive.js +2 -2
  25. package/esm5/modules/ag-grid/ag-grid.module.js +9 -1
  26. package/esm5/modules/ag-grid/ag-grid.service.js +63 -23
  27. package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +69 -0
  28. package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +28 -0
  29. package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +33 -0
  30. package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +19 -0
  31. package/esm5/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +3 -3
  32. package/esm5/modules/ag-grid/types/cell-class.js +2 -1
  33. package/esm5/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
  34. package/esm5/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
  35. package/esm5/modules/ag-grid/types/cell-type.js +2 -1
  36. package/esm5/modules/ag-grid/types/lookup-properties.js +24 -0
  37. package/esm5/plugin-resources/ag-grid-resources-provider.js +2 -2
  38. package/esm5/skyux-ag-grid.js +20 -16
  39. package/fesm2015/skyux-ag-grid.js +256 -33
  40. package/fesm2015/skyux-ag-grid.js.map +1 -1
  41. package/fesm5/skyux-ag-grid.js +273 -43
  42. package/fesm5/skyux-ag-grid.js.map +1 -1
  43. package/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +3 -1
  44. package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +22 -0
  45. package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.d.ts +2 -0
  46. package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.d.ts +11 -0
  47. package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.d.ts +2 -0
  48. package/modules/ag-grid/types/cell-class.d.ts +1 -0
  49. package/modules/ag-grid/types/cell-editor-lookup-params.d.ts +5 -0
  50. package/modules/ag-grid/types/cell-renderer-lookup-params.d.ts +5 -0
  51. package/modules/ag-grid/types/cell-type.d.ts +1 -0
  52. package/modules/ag-grid/types/lookup-properties.d.ts +44 -0
  53. package/package.json +3 -3
  54. package/skyux-ag-grid.d.ts +19 -15
  55. package/skyux-ag-grid.metadata.json +1 -1
  56. package/src/assets/locales/resources_en_US.json +4 -0
@@ -7,13 +7,13 @@ import { SkyDataManagerService, SkyDataManagerModule } from '@skyux/data-manager
7
7
  import { SkyInlineDeleteModule } from '@skyux/layout';
8
8
  import { SkyLibResourcesService, getStringForLocale, SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule } from '@skyux/i18n';
9
9
  import { Subject } from 'rxjs';
10
- import { takeUntil } from 'rxjs/operators';
10
+ import { takeUntil, filter } from 'rxjs/operators';
11
11
  import { SkyThemeService } from '@skyux/theme';
12
12
  import { PopupComponent, RowNode, Events } from 'ag-grid-community';
13
- import { FormsModule } from '@angular/forms';
14
- import { SkyAutocompleteModule } from '@skyux/lookup';
13
+ import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
14
+ import { SkyAutocompleteModule, SkyLookupModule } from '@skyux/lookup';
15
15
  import { SkyDatepickerModule } from '@skyux/datetime';
16
- import { SkyCheckboxModule } from '@skyux/forms';
16
+ import { SkyInputBoxModule, SkyCheckboxModule } from '@skyux/forms';
17
17
  import { SkyStatusIndicatorModule } from '@skyux/indicators';
18
18
  import { SkyPopoverMessageType, SkyPopoverModule } from '@skyux/popovers';
19
19
  import { SkyAutonumericModule } from '@skyux/autonumeric';
@@ -111,6 +111,93 @@ SkyAgGridCellEditorDatepickerComponent = __decorate([
111
111
  __param(0, Optional())
112
112
  ], SkyAgGridCellEditorDatepickerComponent);
113
113
 
114
+ function applySkyLookupPropertiesDefaults(skyLookupProperties) {
115
+ return {
116
+ ariaLabel: skyLookupProperties.ariaLabel || '',
117
+ autocompleteAttribute: skyLookupProperties.autocompleteAttribute || 'off',
118
+ data: skyLookupProperties.data || [],
119
+ debounceTime: skyLookupProperties.debounceTime || 0,
120
+ descriptorProperty: skyLookupProperties.descriptorProperty || 'name',
121
+ disabled: skyLookupProperties.disabled || false,
122
+ enableShowMore: skyLookupProperties.enableShowMore || false,
123
+ idProperty: skyLookupProperties.idProperty || undefined,
124
+ placeholderText: skyLookupProperties.placeholderText || '',
125
+ propertiesToSearch: skyLookupProperties.propertiesToSearch || undefined,
126
+ search: skyLookupProperties.search || undefined,
127
+ searchFilters: skyLookupProperties.searchFilters || [],
128
+ searchResultsLimit: skyLookupProperties.searchResultsLimit || undefined,
129
+ searchResultTemplate: skyLookupProperties.searchResultTemplate || undefined,
130
+ searchTextMinimumCharacters: skyLookupProperties.searchTextMinimumCharacters || 1,
131
+ selectMode: skyLookupProperties.selectMode || undefined,
132
+ showAddButton: skyLookupProperties.showAddButton || false,
133
+ showMoreConfig: skyLookupProperties.showMoreConfig || {},
134
+ wrapperClass: 'ag-custom-component-popup'
135
+ };
136
+ }
137
+
138
+ let SkyAgGridCellEditorLookupComponent = class SkyAgGridCellEditorLookupComponent {
139
+ constructor(changeDetector, elementRef) {
140
+ this.changeDetector = changeDetector;
141
+ this.elementRef = elementRef;
142
+ this.isAlive = true;
143
+ this.lookupForm = new FormGroup({
144
+ currentSelection: new FormControl({
145
+ value: [],
146
+ disabled: false
147
+ })
148
+ });
149
+ }
150
+ agInit(params) {
151
+ this.params = params;
152
+ if (!Array.isArray(this.params.value)) {
153
+ throw new Error(`Lookup value must be an array`);
154
+ }
155
+ const control = this.lookupForm.get('currentSelection');
156
+ control.setValue(this.params.value);
157
+ if (this.params.skyComponentProperties.disabled) {
158
+ control.disable();
159
+ }
160
+ this.skyComponentProperties = this.updateComponentProperties(this.params);
161
+ this.changeDetector.markForCheck();
162
+ }
163
+ isCancelAfterEnd() {
164
+ // Shut down components to commit values before final value syncs to grid.
165
+ this.isAlive = false;
166
+ this.changeDetector.detectChanges();
167
+ return false;
168
+ }
169
+ getGui() {
170
+ return this.elementRef.nativeElement;
171
+ }
172
+ getValue() {
173
+ return this.lookupForm.get('currentSelection').value;
174
+ }
175
+ isPopup() {
176
+ return true;
177
+ }
178
+ /*istanbul ignore next*/
179
+ afterGuiAttached() {
180
+ var _a;
181
+ (_a = this.elementRef.nativeElement.querySelector('.sky-lookup-input')) === null || _a === void 0 ? void 0 : _a.focus();
182
+ }
183
+ updateComponentProperties(params) {
184
+ const skyLookupProperties = params.skyComponentProperties;
185
+ return applySkyLookupPropertiesDefaults(skyLookupProperties);
186
+ }
187
+ };
188
+ SkyAgGridCellEditorLookupComponent.ctorParameters = () => [
189
+ { type: ChangeDetectorRef },
190
+ { type: ElementRef }
191
+ ];
192
+ SkyAgGridCellEditorLookupComponent = __decorate([
193
+ Component({
194
+ selector: 'sky-ag-grid-cell-editor-lookup',
195
+ template: "<sky-input-box *ngIf=\"isAlive\"\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"lookupForm\"\n>\n <sky-lookup\n [ariaLabel]=\"skyComponentProperties?.ariaLabel\"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n formControlName=\"currentSelection\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\n [propertiesToSearch]=\"skyComponentProperties?.propertiesToSearch\"\n [search]=\"skyComponentProperties?.search\"\n [searchFilters]=\"skyComponentProperties?.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties?.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties?.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"skyComponentProperties?.searchTextMinimumCharacters\"\n [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n >\n </sky-lookup>\n</sky-input-box>\n",
196
+ changeDetection: ChangeDetectionStrategy.OnPush,
197
+ styles: [":host{display:block}"]
198
+ })
199
+ ], SkyAgGridCellEditorLookupComponent);
200
+
114
201
  let SkyAgGridCellEditorNumberComponent = class SkyAgGridCellEditorNumberComponent {
115
202
  /**
116
203
  * agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.
@@ -223,6 +310,35 @@ SkyAgGridCellRendererCurrencyValidatorComponent = __decorate([
223
310
  })
224
311
  ], SkyAgGridCellRendererCurrencyValidatorComponent);
225
312
 
313
+ let SkyAgGridCellRendererLookupComponent = class SkyAgGridCellRendererLookupComponent {
314
+ constructor(changeDetector) {
315
+ this.changeDetector = changeDetector;
316
+ this.value = '';
317
+ this.summaryCount = 0;
318
+ }
319
+ agInit(params) {
320
+ var _a;
321
+ this.summaryCount = ((_a = params.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
322
+ this.value = `${params.valueFormatted}`;
323
+ this.changeDetector.markForCheck();
324
+ }
325
+ refresh(params) {
326
+ this.agInit(params);
327
+ return true;
328
+ }
329
+ };
330
+ SkyAgGridCellRendererLookupComponent.ctorParameters = () => [
331
+ { type: ChangeDetectorRef }
332
+ ];
333
+ SkyAgGridCellRendererLookupComponent = __decorate([
334
+ Component({
335
+ selector: 'sky-cell-renderer-lookup',
336
+ template: "<ng-container *ngIf=\"summaryCount > 5; else showValue\">\n {{ 'skyux_lookup_tokens_summary' | skyLibResources:summaryCount }}\n</ng-container>\n<ng-template #showValue>{{ value }}</ng-template>\n",
337
+ changeDetection: ChangeDetectionStrategy.OnPush,
338
+ styles: [":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}"]
339
+ })
340
+ ], SkyAgGridCellRendererLookupComponent);
341
+
226
342
  let SkyAgGridCellRendererRowSelectorComponent = class SkyAgGridCellRendererRowSelectorComponent {
227
343
  constructor(changeDetection) {
228
344
  this.changeDetection = changeDetection;
@@ -325,6 +441,7 @@ var SkyCellClass;
325
441
  SkyCellClass["Date"] = "sky-ag-grid-cell-date";
326
442
  SkyCellClass["Editable"] = "sky-ag-grid-cell-editable";
327
443
  SkyCellClass["Invalid"] = "sky-ag-grid-cell-invalid";
444
+ SkyCellClass["Lookup"] = "sky-ag-grid-cell-lookup";
328
445
  SkyCellClass["Number"] = "sky-ag-grid-cell-number";
329
446
  SkyCellClass["RowSelector"] = "sky-ag-grid-cell-row-selector";
330
447
  SkyCellClass["Text"] = "sky-ag-grid-cell-text";
@@ -337,6 +454,7 @@ var SkyCellType;
337
454
  SkyCellType["Currency"] = "skyCellCurrency";
338
455
  SkyCellType["CurrencyValidator"] = "skyCellCurrencyValidator";
339
456
  SkyCellType["Date"] = "skyCellDate";
457
+ SkyCellType["Lookup"] = "skyCellLookup";
340
458
  SkyCellType["Number"] = "skyCellNumber";
341
459
  SkyCellType["NumberValidator"] = "skyCellNumberValidator";
342
460
  SkyCellType["RowSelector"] = "skyCellRowSelector";
@@ -518,18 +636,19 @@ function dateComparator(date1, date2) {
518
636
  }
519
637
  function getValidatorCellRendererSelector(component, fallback) {
520
638
  return (params) => {
521
- var _a, _b, _c, _d;
522
- if (typeof ((_c = (_b = (_a = params.colDef) === null || _a === void 0 ? void 0 : _a.cellRendererParams) === null || _b === void 0 ? void 0 : _b.skyComponentProperties) === null || _c === void 0 ? void 0 : _c.validator) === 'function') {
639
+ var _a, _b;
640
+ if (params.colDef && typeof ((_b = (_a = params.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
523
641
  if (!params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params.rowIndex)) {
524
642
  return {
525
643
  component,
526
- params: Object.assign({}, (_d = params.colDef) === null || _d === void 0 ? void 0 : _d.cellRendererParams)
644
+ params: Object.assign({}, params.colDef.cellRendererParams)
527
645
  };
528
646
  }
529
647
  }
530
648
  return fallback;
531
649
  };
532
650
  }
651
+ let rowNodeId = 1;
533
652
  /**
534
653
  * A service that provides default styling and behavior for agGrids in SKY UX SPAs.
535
654
  */
@@ -571,7 +690,7 @@ let SkyAgGridService = class SkyAgGridService {
571
690
  return mergedGridOptions;
572
691
  }
573
692
  getDefaultGridOptions(args) {
574
- var _a, _b, _c, _d, _e, _f, _g, _h;
693
+ var _a, _b, _c, _d, _e, _f;
575
694
  // cellClassRules can be functions or string expressions
576
695
  const cellClassRuleTrueExpression = 'true';
577
696
  function getEditableFn(isUneditable) {
@@ -590,8 +709,8 @@ let SkyAgGridService = class SkyAgGridService {
590
709
  };
591
710
  function getValidatorFn() {
592
711
  return function (param) {
593
- var _a, _b, _c;
594
- if (typeof ((_c = (_b = (_a = param.colDef) === null || _a === void 0 ? void 0 : _a.cellRendererParams) === null || _b === void 0 ? void 0 : _b.skyComponentProperties) === null || _c === void 0 ? void 0 : _c.validator) === 'function') {
712
+ var _a, _b;
713
+ if (param.colDef && typeof ((_b = (_a = param.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
595
714
  return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.rowIndex);
596
715
  }
597
716
  return false;
@@ -623,6 +742,21 @@ let SkyAgGridService = class SkyAgGridService {
623
742
  minWidth: ((_b = (_a = this.currentTheme) === null || _a === void 0 ? void 0 : _a.theme) === null || _b === void 0 ? void 0 : _b.name) === 'modern' ? 180 : 160,
624
743
  valueFormatter: (params) => this.dateFormatter(params, args.locale)
625
744
  },
745
+ [SkyCellType.Lookup]: {
746
+ cellClassRules: Object.assign({ [SkyCellClass.Lookup]: cellClassRuleTrueExpression }, editableCellClassRules),
747
+ cellEditorFramework: SkyAgGridCellEditorLookupComponent,
748
+ cellRendererFramework: SkyAgGridCellRendererLookupComponent,
749
+ valueFormatter: (params) => {
750
+ const lookupProperties = applySkyLookupPropertiesDefaults(params);
751
+ return (params.value || [])
752
+ .map((value) => {
753
+ return value[lookupProperties.descriptorProperty];
754
+ })
755
+ .filter((value) => value !== '' && value !== undefined)
756
+ .join('; ');
757
+ },
758
+ minWidth: 185
759
+ },
626
760
  [SkyCellType.Number]: {
627
761
  cellClassRules: Object.assign({ [SkyCellClass.Number]: cellClassRuleTrueExpression }, editableCellClassRules),
628
762
  cellEditorFramework: SkyAgGridCellEditorNumberComponent,
@@ -663,6 +797,20 @@ let SkyAgGridService = class SkyAgGridService {
663
797
  'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,
664
798
  'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent
665
799
  },
800
+ getRowNodeId(data) {
801
+ if ('id' in data && data.id) {
802
+ return `${data.id}`;
803
+ }
804
+ return `${rowNodeId++}`;
805
+ },
806
+ getRowClass: (params) => {
807
+ if (params.node.id) {
808
+ return `sky-ag-grid-row-${params.node.id}`;
809
+ }
810
+ else {
811
+ return undefined;
812
+ }
813
+ },
666
814
  headerHeight: ((_d = (_c = this.currentTheme) === null || _c === void 0 ? void 0 : _c.theme) === null || _d === void 0 ? void 0 : _d.name) === 'modern' ? 60 : 37,
667
815
  icons: {
668
816
  sortDescending: this.getIconTemplate('caret-down'),
@@ -692,9 +840,12 @@ let SkyAgGridService = class SkyAgGridService {
692
840
  validatorMessage: 'Please enter a valid currency'
693
841
  }
694
842
  } });
695
- (_g = this.resources) === null || _g === void 0 ? void 0 : _g.getString('sky_ag_grid_cell_renderer_currency_validator_message').subscribe((value) => {
696
- defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
697
- });
843
+ /*istanbul ignore else*/
844
+ if (this.resources) {
845
+ this.resources.getString('sky_ag_grid_cell_renderer_currency_validator_message').subscribe((value) => {
846
+ defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
847
+ });
848
+ }
698
849
  defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator] = Object.assign(Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator]), defaultSkyGridOptions.columnTypes[SkyCellType.Number]), { cellClassRules: Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator].cellClassRules), defaultSkyGridOptions.columnTypes[SkyCellType.Number].cellClassRules), cellRendererParams: {
699
850
  skyComponentProperties: {
700
851
  validator: (value, data, rowIndex) => {
@@ -703,9 +854,12 @@ let SkyAgGridService = class SkyAgGridService {
703
854
  validatorMessage: 'Please enter a valid number'
704
855
  }
705
856
  } });
706
- (_h = this.resources) === null || _h === void 0 ? void 0 : _h.getString('sky_ag_grid_cell_renderer_number_validator_message').subscribe((value) => {
707
- defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
708
- });
857
+ /*istanbul ignore else*/
858
+ if (this.resources) {
859
+ this.resources.getString('sky_ag_grid_cell_renderer_number_validator_message').subscribe((value) => {
860
+ defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
861
+ });
862
+ }
709
863
  return defaultSkyGridOptions;
710
864
  }
711
865
  onCellFocused() {
@@ -723,6 +877,7 @@ let SkyAgGridService = class SkyAgGridService {
723
877
  if (date && typeof date === 'string') {
724
878
  date = new Date(params.value);
725
879
  }
880
+ // @ts-ignore
726
881
  let formattedDate = date && date.toLocaleDateString && date.toLocaleDateString(locale, dateConfig);
727
882
  if (date && date.getTime && !isNaN(date.getTime())) {
728
883
  return formattedDate;
@@ -845,7 +1000,7 @@ SkyAgGridWrapperComponent = __decorate([
845
1000
 
846
1001
  let SkyAgGridResourcesProvider = class SkyAgGridResourcesProvider {
847
1002
  constructor() {
848
- this.resources = { "EN-US": { "sky_ag_grid_row_selector_aria_label": "Row selector for row {0}", "sky_ag_grid_cell_editor_number_aria_label": "Editable number {0} for row {1}", "sky_ag_grid_cell_editor_text_aria_label": "Editable text {0} for row {1}", "sky_ag_grid_cell_editor_autocomplete_aria_label": "Editable autocomplete {0} for row {1}", "sky_ag_grid_cell_renderer_currency_aria_label": "Editable currency {0} for row {1}", "sky_ag_grid_cell_renderer_number_validator_message": "Please enter a valid number", "sky_ag_grid_cell_renderer_currency_validator_message": "Please enter a valid currency" } };
1003
+ this.resources = { "EN-US": { "sky_ag_grid_row_selector_aria_label": "Row selector for row {0}", "sky_ag_grid_cell_editor_number_aria_label": "Editable number {0} for row {1}", "sky_ag_grid_cell_editor_text_aria_label": "Editable text {0} for row {1}", "sky_ag_grid_cell_editor_autocomplete_aria_label": "Editable autocomplete {0} for row {1}", "sky_ag_grid_cell_renderer_currency_aria_label": "Editable currency {0} for row {1}", "sky_ag_grid_cell_renderer_number_validator_message": "Please enter a valid number", "sky_ag_grid_cell_renderer_currency_validator_message": "Please enter a valid currency", "skyux_lookup_tokens_summary": "{0} items selected" } };
849
1004
  }
850
1005
  getString(localeInfo, name) {
851
1006
  return getStringForLocale(this.resources, localeInfo.locale, name);
@@ -905,6 +1060,22 @@ SkyAgGridCellEditorDatepickerModule = __decorate([
905
1060
  })
906
1061
  ], SkyAgGridCellEditorDatepickerModule);
907
1062
 
1063
+ let SkyAgGridCellEditorLookupModule = class SkyAgGridCellEditorLookupModule {
1064
+ };
1065
+ SkyAgGridCellEditorLookupModule = __decorate([
1066
+ NgModule({
1067
+ declarations: [SkyAgGridCellEditorLookupComponent],
1068
+ exports: [SkyAgGridCellEditorLookupComponent],
1069
+ imports: [
1070
+ CommonModule,
1071
+ ReactiveFormsModule,
1072
+ SkyAgGridResourcesModule,
1073
+ SkyInputBoxModule,
1074
+ SkyLookupModule
1075
+ ]
1076
+ })
1077
+ ], SkyAgGridCellEditorLookupModule);
1078
+
908
1079
  let SkyAgGridCellEditorNumberModule = class SkyAgGridCellEditorNumberModule {
909
1080
  };
910
1081
  SkyAgGridCellEditorNumberModule = __decorate([
@@ -939,6 +1110,16 @@ SkyAgGridCellEditorTextModule = __decorate([
939
1110
  })
940
1111
  ], SkyAgGridCellEditorTextModule);
941
1112
 
1113
+ let SkyAgGridCellRendererLookupModule = class SkyAgGridCellRendererLookupModule {
1114
+ };
1115
+ SkyAgGridCellRendererLookupModule = __decorate([
1116
+ NgModule({
1117
+ declarations: [SkyAgGridCellRendererLookupComponent],
1118
+ exports: [SkyAgGridCellRendererLookupComponent],
1119
+ imports: [CommonModule, SkyAgGridResourcesModule]
1120
+ })
1121
+ ], SkyAgGridCellRendererLookupModule);
1122
+
942
1123
  let SkyAgGridCellRendererRowSelectorModule = class SkyAgGridCellRendererRowSelectorModule {
943
1124
  };
944
1125
  SkyAgGridCellRendererRowSelectorModule = __decorate([
@@ -1043,13 +1224,28 @@ let SkyAgGridDataManagerAdapterDirective = class SkyAgGridDataManagerAdapterDire
1043
1224
  agGrid.api.sizeColumnsToFit();
1044
1225
  });
1045
1226
  agGrid.columnMoved
1227
+ .pipe(takeUntil(this.ngUnsubscribe), filter((event) => ![
1228
+ 'gridInitializing',
1229
+ 'uiColumnResized',
1230
+ 'uiColumnDragged',
1231
+ 'api'
1232
+ ].includes(event.source)))
1233
+ .subscribe((value) => {
1234
+ this.updateColumnsInCurrentDataState(value.columnApi);
1235
+ });
1236
+ let currentColumns;
1237
+ agGrid.dragStarted
1046
1238
  .pipe(takeUntil(this.ngUnsubscribe))
1047
- .subscribe((event) => {
1048
- let columnOrder = agGrid.columnApi.getAllDisplayedVirtualColumns().map(col => col.getColDef().colId);
1049
- if (event.source !== 'api') {
1050
- const viewState = this.currentDataState.getViewStateById(this.viewConfig.id);
1051
- viewState.displayedColumnIds = columnOrder;
1052
- this.dataManagerSvc.updateDataState(this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState), this.viewConfig.id);
1239
+ .subscribe((value) => {
1240
+ currentColumns = this.getColumnOrder(value.columnApi);
1241
+ });
1242
+ agGrid.dragStopped
1243
+ .pipe(takeUntil(this.ngUnsubscribe))
1244
+ .subscribe((value) => {
1245
+ const newColumns = this.getColumnOrder(value.columnApi);
1246
+ const hasChanged = currentColumns.findIndex((colId, i) => colId !== newColumns[i]);
1247
+ if (hasChanged > -1) {
1248
+ this.updateColumnsInCurrentDataState(value.columnApi);
1053
1249
  }
1054
1250
  });
1055
1251
  agGrid.rowSelected
@@ -1071,7 +1267,6 @@ let SkyAgGridDataManagerAdapterDirective = class SkyAgGridDataManagerAdapterDire
1071
1267
  agGrid.sortChanged
1072
1268
  .pipe(takeUntil(this.ngUnsubscribe))
1073
1269
  .subscribe(() => {
1074
- var _a;
1075
1270
  const gridSortModel = agGrid.api.getSortModel();
1076
1271
  let sortOption;
1077
1272
  /* istanbul ignore else */
@@ -1079,19 +1274,40 @@ let SkyAgGridDataManagerAdapterDirective = class SkyAgGridDataManagerAdapterDire
1079
1274
  const activeSortModel = gridSortModel[0];
1080
1275
  const activeSortColumn = agGrid.columnApi.getColumn(activeSortModel.colId);
1081
1276
  const dataManagerConfig = this.dataManagerSvc.getCurrentDataManagerConfig();
1082
- sortOption = (_a = dataManagerConfig.sortOptions) === null || _a === void 0 ? void 0 : _a.find((option) => {
1083
- return option.propertyName === activeSortColumn.getColDef().field &&
1084
- option.descending === (activeSortModel.sort === 'desc');
1085
- });
1277
+ /* istanbul ignore else */
1278
+ if (dataManagerConfig.sortOptions) {
1279
+ sortOption = dataManagerConfig.sortOptions.find((option) => {
1280
+ return option.propertyName === activeSortColumn.getColDef().field &&
1281
+ option.descending === (activeSortModel.sort === 'desc');
1282
+ });
1283
+ }
1284
+ else {
1285
+ sortOption = undefined;
1286
+ }
1086
1287
  }
1087
1288
  this.currentDataState.activeSortOption = sortOption;
1088
1289
  this.dataManagerSvc.updateDataState(this.currentDataState, this.viewConfig.id);
1089
1290
  });
1090
1291
  }
1292
+ updateColumnsInCurrentDataState(columnApi) {
1293
+ const columnOrder = this.getColumnOrder(columnApi);
1294
+ const viewState = this.currentDataState.getViewStateById(this.viewConfig.id);
1295
+ viewState.displayedColumnIds = columnOrder;
1296
+ this.dataManagerSvc.updateDataState(this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState), this.viewConfig.id);
1297
+ }
1298
+ getColumnOrder(columnApi) {
1299
+ return columnApi
1300
+ .getAllDisplayedVirtualColumns()
1301
+ .map((col) => col.getColDef().colId);
1302
+ }
1091
1303
  displayColumns(dataState) {
1092
1304
  const agGrid = this.currentAgGrid;
1093
1305
  const viewState = dataState.getViewStateById(this.viewConfig.id);
1094
- const displayedColumnIds = viewState.displayedColumnIds || [];
1306
+ let displayedColumnIds = [];
1307
+ /*istanbul ignore else*/
1308
+ if (viewState.displayedColumnIds) {
1309
+ displayedColumnIds = viewState.displayedColumnIds;
1310
+ }
1095
1311
  const columns = agGrid.columnApi.getAllColumns();
1096
1312
  for (const column of columns) {
1097
1313
  const colId = column.getColId();
@@ -1167,7 +1383,7 @@ let SkyAgGridCellValidatorTooltipComponent = class SkyAgGridCellValidatorTooltip
1167
1383
  hideIndicator() {
1168
1384
  this.zone.run(() => {
1169
1385
  this.indicatorShouldShow = false;
1170
- this.changeDetector.markForCheck();
1386
+ this.changeDetector.detectChanges();
1171
1387
  });
1172
1388
  }
1173
1389
  hidePopover() {
@@ -1176,7 +1392,7 @@ let SkyAgGridCellValidatorTooltipComponent = class SkyAgGridCellValidatorTooltip
1176
1392
  showIndicator() {
1177
1393
  this.zone.run(() => {
1178
1394
  this.indicatorShouldShow = true;
1179
- this.changeDetector.markForCheck();
1395
+ this.changeDetector.detectChanges();
1180
1396
  });
1181
1397
  }
1182
1398
  showPopover() {
@@ -1425,7 +1641,10 @@ let SkyAgGridRowDeleteDirective = class SkyAgGridRowDeleteDirective {
1425
1641
  return this.rowDeleteConfigs.find(rowDelete => rowDelete.id === row.id);
1426
1642
  }
1427
1643
  affixToRow(affixer, id) {
1428
- let rowElement = this.elementRef.nativeElement.querySelector('[row-id="' + id + '"] div[aria-colindex="1"]');
1644
+ let rowElement = this.elementRef.nativeElement.querySelector(`
1645
+ [row-id="${id}"] div[aria-colindex="1"],
1646
+ .ag-row.sky-ag-grid-row-${id} div[aria-colindex="1"]
1647
+ `);
1429
1648
  // This covers cases where AG Grid places the column index on an inner element (such as with the `enableCellTextSelection` option)
1430
1649
  // This appears to have been fixed by AG Grid in version 24 and so it is not testable after that version.
1431
1650
  /* istanbul ignore if */
@@ -1553,9 +1772,11 @@ SkyAgGridModule = __decorate([
1553
1772
  CommonModule,
1554
1773
  SkyAgGridCellEditorAutocompleteModule,
1555
1774
  SkyAgGridCellEditorDatepickerModule,
1775
+ SkyAgGridCellEditorLookupModule,
1556
1776
  SkyAgGridCellEditorNumberModule,
1557
1777
  SkyAgGridCellEditorCurrencyModule,
1558
1778
  SkyAgGridCellRendererCurrencyModule,
1779
+ SkyAgGridCellRendererLookupModule,
1559
1780
  SkyAgGridCellRendererRowSelectorModule,
1560
1781
  SkyAgGridCellRendererValidatorTooltipModule,
1561
1782
  SkyAgGridCellValidatorModule,
@@ -1578,10 +1799,12 @@ SkyAgGridModule = __decorate([
1578
1799
  entryComponents: [
1579
1800
  SkyAgGridCellEditorAutocompleteComponent,
1580
1801
  SkyAgGridCellEditorDatepickerComponent,
1802
+ SkyAgGridCellEditorLookupComponent,
1581
1803
  SkyAgGridCellEditorNumberComponent,
1582
1804
  SkyAgGridCellEditorCurrencyComponent,
1583
1805
  SkyAgGridCellRendererCurrencyComponent,
1584
1806
  SkyAgGridCellRendererCurrencyValidatorComponent,
1807
+ SkyAgGridCellRendererLookupComponent,
1585
1808
  SkyAgGridCellRendererRowSelectorComponent,
1586
1809
  SkyAgGridCellRendererValidatorTooltipComponent,
1587
1810
  SkyAgGridCellEditorTextComponent,
@@ -1596,5 +1819,5 @@ SkyAgGridModule = __decorate([
1596
1819
  * Generated bundle index. Do not edit.
1597
1820
  */
1598
1821
 
1599
- export { SkyAgGridModule, SkyAgGridService, SkyCellClass, SkyCellType, SkyHeaderClass, SkyAgGridDataManagerAdapterDirective as ɵa, SkyAgGridWrapperComponent as ɵb, SkyAgGridAdapterService as ɵc, SkyAgGridRowDeleteComponent as ɵd, SkyAgGridRowDeleteDirective as ɵe, SkyAgGridCellEditorAutocompleteModule as ɵf, SkyAgGridResourcesModule as ɵg, SkyAgGridResourcesProvider as ɵh, SkyAgGridCellEditorAutocompleteComponent as ɵi, SkyAgGridCellEditorDatepickerModule as ɵj, SkyAgGridCellEditorDatepickerComponent as ɵk, SkyAgGridCellEditorNumberModule as ɵl, SkyAgGridCellEditorNumberComponent as ɵm, SkyAgGridCellEditorCurrencyModule as ɵn, SkyAgGridCellEditorCurrencyComponent as ɵo, SkyAgGridCellRendererCurrencyModule as ɵp, SkyAgGridCellValidatorModule as ɵq, SkyAgGridCellValidatorTooltipComponent as ɵr, SkyAgGridCellRendererCurrencyComponent as ɵs, SkyAgGridCellRendererCurrencyValidatorComponent as ɵt, SkyAgGridCellRendererRowSelectorModule as ɵu, SkyAgGridCellRendererRowSelectorComponent as ɵv, SkyAgGridCellRendererValidatorTooltipModule as ɵw, SkyAgGridCellRendererValidatorTooltipComponent as ɵx, SkyAgGridCellEditorTextModule as ɵy, SkyAgGridCellEditorTextComponent as ɵz };
1822
+ export { SkyAgGridModule, SkyAgGridService, SkyCellClass, SkyCellType, SkyHeaderClass, SkyAgGridDataManagerAdapterDirective as ɵa, SkyAgGridWrapperComponent as ɵb, SkyAgGridCellRendererValidatorTooltipModule as ɵba, SkyAgGridCellRendererValidatorTooltipComponent as ɵbb, SkyAgGridCellEditorTextModule as ɵbc, SkyAgGridCellEditorTextComponent as ɵbd, SkyAgGridAdapterService as ɵc, SkyAgGridRowDeleteComponent as ɵd, SkyAgGridRowDeleteDirective as ɵe, SkyAgGridCellEditorAutocompleteModule as ɵf, SkyAgGridResourcesModule as ɵg, SkyAgGridResourcesProvider as ɵh, SkyAgGridCellEditorAutocompleteComponent as ɵi, SkyAgGridCellEditorDatepickerModule as ɵj, SkyAgGridCellEditorDatepickerComponent as ɵk, SkyAgGridCellEditorLookupModule as ɵl, SkyAgGridCellEditorLookupComponent as ɵm, SkyAgGridCellEditorNumberModule as ɵn, SkyAgGridCellEditorNumberComponent as ɵo, SkyAgGridCellEditorCurrencyModule as ɵp, SkyAgGridCellEditorCurrencyComponent as ɵq, SkyAgGridCellRendererCurrencyModule as ɵr, SkyAgGridCellValidatorModule as ɵs, SkyAgGridCellValidatorTooltipComponent as ɵt, SkyAgGridCellRendererCurrencyComponent as ɵu, SkyAgGridCellRendererCurrencyValidatorComponent as ɵv, SkyAgGridCellRendererLookupModule as ɵw, SkyAgGridCellRendererLookupComponent as ɵx, SkyAgGridCellRendererRowSelectorModule as ɵy, SkyAgGridCellRendererRowSelectorComponent as ɵz };
1600
1823
  //# sourceMappingURL=skyux-ag-grid.js.map