@skyux/grids 4.0.3 → 4.0.7
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.
- package/CHANGELOG.md +18 -0
- package/bundles/skyux-grids.umd.js +245 -52
- package/bundles/skyux-grids.umd.js.map +1 -1
- package/bundles/skyux-grids.umd.min.js +11 -11
- package/bundles/skyux-grids.umd.min.js.map +1 -1
- package/esm2015/modules/grid/grid-adapter.service.js +11 -2
- package/esm2015/modules/grid/grid-cell.component.js +4 -1
- package/esm2015/modules/grid/grid-column.component.js +30 -19
- package/esm2015/modules/grid/grid-column.model.js +4 -1
- package/esm2015/modules/grid/grid.component.js +151 -23
- package/esm2015/modules/grid/grid.module.js +4 -2
- package/esm2015/modules/grid/types/grid-column-description-model-change.js +1 -1
- package/esm2015/modules/grid/types/grid-column-heading-model-change.js +1 -1
- package/esm2015/modules/grid/types/grid-column-inline-help-popover-model-change.js +1 -1
- package/esm2015/modules/grid/types/grid-column-width-model-change.js +1 -1
- package/esm2015/modules/grid/types/grid-message-type.js +13 -1
- package/esm2015/modules/grid/types/grid-message.js +1 -1
- package/esm2015/modules/grid/types/grid-row-delete-cancel-args.js +1 -1
- package/esm2015/modules/grid/types/grid-row-delete-config.js +1 -1
- package/esm2015/modules/grid/types/grid-row-delete-confirm-args.js +1 -1
- package/esm2015/modules/grid/types/grid-row-delete-contents.js +1 -0
- package/esm2015/modules/grid/types/grid-selected-rows-model-change.js +1 -1
- package/esm2015/modules/grid/types/grid-selected-rows-source.js +4 -1
- package/esm2015/modules/grid/types/grid-ui-config.js +1 -1
- package/esm2015/polyfills.js +3 -3
- package/esm5/modules/grid/grid-adapter.service.js +23 -3
- package/esm5/modules/grid/grid-cell.component.js +4 -1
- package/esm5/modules/grid/grid-column.component.js +30 -19
- package/esm5/modules/grid/grid-column.model.js +4 -1
- package/esm5/modules/grid/grid.component.js +157 -23
- package/esm5/modules/grid/grid.module.js +4 -2
- package/esm5/modules/grid/types/grid-column-description-model-change.js +1 -1
- package/esm5/modules/grid/types/grid-column-heading-model-change.js +1 -1
- package/esm5/modules/grid/types/grid-column-inline-help-popover-model-change.js +1 -1
- package/esm5/modules/grid/types/grid-column-width-model-change.js +1 -1
- package/esm5/modules/grid/types/grid-message-type.js +13 -1
- package/esm5/modules/grid/types/grid-message.js +1 -1
- package/esm5/modules/grid/types/grid-row-delete-cancel-args.js +1 -1
- package/esm5/modules/grid/types/grid-row-delete-config.js +1 -1
- package/esm5/modules/grid/types/grid-row-delete-confirm-args.js +1 -1
- package/esm5/modules/grid/types/grid-row-delete-contents.js +1 -0
- package/esm5/modules/grid/types/grid-selected-rows-model-change.js +1 -1
- package/esm5/modules/grid/types/grid-selected-rows-source.js +4 -1
- package/esm5/modules/grid/types/grid-ui-config.js +1 -1
- package/esm5/polyfills.js +3 -3
- package/fesm2015/skyux-grids.js +213 -42
- package/fesm2015/skyux-grids.js.map +1 -1
- package/fesm5/skyux-grids.js +231 -43
- package/fesm5/skyux-grids.js.map +1 -1
- package/modules/grid/grid-adapter.service.d.ts +3 -0
- package/modules/grid/grid-cell.component.d.ts +3 -0
- package/modules/grid/grid-column.component.d.ts +68 -12
- package/modules/grid/grid-column.model.d.ts +3 -0
- package/modules/grid/grid.component.d.ts +105 -7
- package/modules/grid/types/grid-column-description-model-change.d.ts +3 -0
- package/modules/grid/types/grid-column-heading-model-change.d.ts +3 -0
- package/modules/grid/types/grid-column-inline-help-popover-model-change.d.ts +3 -0
- package/modules/grid/types/grid-column-width-model-change.d.ts +9 -0
- package/modules/grid/types/grid-message-type.d.ts +12 -0
- package/modules/grid/types/grid-message.d.ts +6 -0
- package/modules/grid/types/grid-row-delete-cancel-args.d.ts +3 -0
- package/modules/grid/types/grid-row-delete-config.d.ts +3 -0
- package/modules/grid/types/grid-row-delete-confirm-args.d.ts +3 -0
- package/modules/grid/types/grid-row-delete-contents.d.ts +9 -0
- package/modules/grid/types/grid-selected-rows-model-change.d.ts +3 -0
- package/modules/grid/types/grid-selected-rows-source.d.ts +3 -0
- package/modules/grid/types/grid-ui-config.d.ts +3 -0
- package/package.json +3 -3
- package/skyux-grids.metadata.json +1 -1
- package/src/assets/img/grid-annotated.png +0 -0
- package/src/assets/img/grid-dont-use-complex.png +0 -0
- package/src/assets/img/grid-fit-scroll.png +0 -0
- package/src/assets/img/grid-fit-width.png +0 -0
- package/src/assets/img/grid-option-context-menu.png +0 -0
- package/src/assets/img/grid-option-filter.png +0 -0
- package/src/assets/img/grid-option-multi-dont-tile.png +0 -0
- package/src/assets/img/grid-option-multi.png +0 -0
- package/src/assets/img/grid-option-sort.png +0 -0
- package/src/assets/img/grid-option-template-column.png +0 -0
- package/src/assets/img/grid-reorder.png +0 -0
- package/src/assets/img/grid-resize.png +0 -0
- package/src/assets/img/grid-use-when.png +0 -0
package/fesm5/skyux-grids.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { __decorate, __read } from 'tslib';
|
|
1
|
+
import { __decorate, __read, __values } from 'tslib';
|
|
2
2
|
import { EventEmitter, Input, ContentChildren, TemplateRef, Component, ChangeDetectionStrategy, RendererFactory2, Injectable, ChangeDetectorRef, Output, ViewChildren, ViewChild, HostListener, ViewContainerRef, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { DragulaService, DragulaModule } from 'ng2-dragula';
|
|
6
|
-
import { SkyAppWindowRef, SkyUIConfigService } from '@skyux/core';
|
|
6
|
+
import { SkyAffixAutoFitContext, SkyAffixService, SkyOverlayService, SkyAppWindowRef, SkyUIConfigService, SkyAffixModule, SkyOverlayModule } from '@skyux/core';
|
|
7
7
|
import { SkyCheckboxModule } from '@skyux/forms';
|
|
8
8
|
import { SkyHelpInlineModule, SkyIconModule, SkyTextHighlightModule } from '@skyux/indicators';
|
|
9
9
|
import { SkyInlineDeleteModule } from '@skyux/layout';
|
|
@@ -15,12 +15,27 @@ import { getStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '
|
|
|
15
15
|
|
|
16
16
|
var SkyGridMessageType;
|
|
17
17
|
(function (SkyGridMessageType) {
|
|
18
|
+
/**
|
|
19
|
+
* Selects the multiselect checkboxes for all rows in the grid.
|
|
20
|
+
*/
|
|
18
21
|
SkyGridMessageType[SkyGridMessageType["SelectAll"] = 0] = "SelectAll";
|
|
22
|
+
/**
|
|
23
|
+
* Clears the multiselect checkboxes for all rows in the grid.
|
|
24
|
+
*/
|
|
19
25
|
SkyGridMessageType[SkyGridMessageType["ClearAll"] = 1] = "ClearAll";
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
20
29
|
SkyGridMessageType[SkyGridMessageType["PromptDeleteRow"] = 2] = "PromptDeleteRow";
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
21
33
|
SkyGridMessageType[SkyGridMessageType["AbortDeleteRow"] = 3] = "AbortDeleteRow";
|
|
22
34
|
})(SkyGridMessageType || (SkyGridMessageType = {}));
|
|
23
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
24
39
|
var SkyGridSelectedRowsSource;
|
|
25
40
|
(function (SkyGridSelectedRowsSource) {
|
|
26
41
|
SkyGridSelectedRowsSource[SkyGridSelectedRowsSource["CheckboxChange"] = 0] = "CheckboxChange";
|
|
@@ -30,17 +45,28 @@ var SkyGridSelectedRowsSource;
|
|
|
30
45
|
SkyGridSelectedRowsSource[SkyGridSelectedRowsSource["SelectedRowIdsChange"] = 4] = "SelectedRowIdsChange";
|
|
31
46
|
})(SkyGridSelectedRowsSource || (SkyGridSelectedRowsSource = {}));
|
|
32
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Specifies the column information.
|
|
50
|
+
*/
|
|
33
51
|
var SkyGridColumnComponent = /** @class */ (function () {
|
|
34
52
|
function SkyGridColumnComponent() {
|
|
35
|
-
this.isSortable = true;
|
|
36
53
|
/**
|
|
37
54
|
* Specifies the horizontal alignment of the column's data and header.
|
|
38
55
|
* @default 'left'
|
|
39
56
|
*/
|
|
40
57
|
this.alignment = 'left';
|
|
41
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Indicates whether the column sorts the grid when users click the column header.
|
|
60
|
+
* @default true
|
|
61
|
+
*/
|
|
62
|
+
this.isSortable = true;
|
|
63
|
+
/**
|
|
64
|
+
* Specifies a search function to apply for the specific column. By default,
|
|
65
|
+
* the column executes a string compare on the column data.
|
|
66
|
+
* @default (value, searchText) => value.toString().toLowerCase().indexOf(searchText) !== -1
|
|
67
|
+
*/
|
|
68
|
+
/* tslint:disable-next-line:no-input-rename */
|
|
42
69
|
this.searchFunction = this.search;
|
|
43
|
-
/* tslint:enable:no-input-rename */
|
|
44
70
|
this.descriptionChanges = new EventEmitter();
|
|
45
71
|
this.descriptionModelChanges = new EventEmitter();
|
|
46
72
|
this.headingChanges = new EventEmitter();
|
|
@@ -92,46 +118,46 @@ var SkyGridColumnComponent = /** @class */ (function () {
|
|
|
92
118
|
};
|
|
93
119
|
__decorate([
|
|
94
120
|
Input()
|
|
95
|
-
], SkyGridColumnComponent.prototype, "
|
|
96
|
-
__decorate([
|
|
97
|
-
Input()
|
|
98
|
-
], SkyGridColumnComponent.prototype, "heading", void 0);
|
|
121
|
+
], SkyGridColumnComponent.prototype, "alignment", void 0);
|
|
99
122
|
__decorate([
|
|
100
123
|
Input()
|
|
101
|
-
], SkyGridColumnComponent.prototype, "
|
|
124
|
+
], SkyGridColumnComponent.prototype, "description", void 0);
|
|
102
125
|
__decorate([
|
|
103
126
|
Input()
|
|
104
|
-
], SkyGridColumnComponent.prototype, "
|
|
127
|
+
], SkyGridColumnComponent.prototype, "excludeFromHighlighting", void 0);
|
|
105
128
|
__decorate([
|
|
106
129
|
Input()
|
|
107
|
-
], SkyGridColumnComponent.prototype, "
|
|
130
|
+
], SkyGridColumnComponent.prototype, "field", void 0);
|
|
108
131
|
__decorate([
|
|
109
132
|
Input()
|
|
110
|
-
], SkyGridColumnComponent.prototype, "
|
|
133
|
+
], SkyGridColumnComponent.prototype, "heading", void 0);
|
|
111
134
|
__decorate([
|
|
112
135
|
Input()
|
|
113
|
-
], SkyGridColumnComponent.prototype, "
|
|
136
|
+
], SkyGridColumnComponent.prototype, "hidden", void 0);
|
|
114
137
|
__decorate([
|
|
115
138
|
Input()
|
|
116
|
-
], SkyGridColumnComponent.prototype, "
|
|
139
|
+
], SkyGridColumnComponent.prototype, "id", void 0);
|
|
117
140
|
__decorate([
|
|
118
141
|
Input()
|
|
119
|
-
], SkyGridColumnComponent.prototype, "
|
|
142
|
+
], SkyGridColumnComponent.prototype, "inlineHelpPopover", void 0);
|
|
120
143
|
__decorate([
|
|
121
144
|
Input()
|
|
122
145
|
], SkyGridColumnComponent.prototype, "isSortable", void 0);
|
|
123
146
|
__decorate([
|
|
124
147
|
Input()
|
|
125
|
-
], SkyGridColumnComponent.prototype, "
|
|
126
|
-
__decorate([
|
|
127
|
-
Input()
|
|
128
|
-
], SkyGridColumnComponent.prototype, "alignment", void 0);
|
|
148
|
+
], SkyGridColumnComponent.prototype, "locked", void 0);
|
|
129
149
|
__decorate([
|
|
130
150
|
Input('search')
|
|
131
151
|
], SkyGridColumnComponent.prototype, "searchFunction", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
Input()
|
|
154
|
+
], SkyGridColumnComponent.prototype, "type", void 0);
|
|
132
155
|
__decorate([
|
|
133
156
|
Input('template')
|
|
134
157
|
], SkyGridColumnComponent.prototype, "templateInput", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
Input()
|
|
160
|
+
], SkyGridColumnComponent.prototype, "width", void 0);
|
|
135
161
|
__decorate([
|
|
136
162
|
ContentChildren(TemplateRef)
|
|
137
163
|
], SkyGridColumnComponent.prototype, "templates", void 0);
|
|
@@ -145,6 +171,9 @@ var SkyGridColumnComponent = /** @class */ (function () {
|
|
|
145
171
|
return SkyGridColumnComponent;
|
|
146
172
|
}());
|
|
147
173
|
|
|
174
|
+
/**
|
|
175
|
+
* @internal
|
|
176
|
+
*/
|
|
148
177
|
var SkyGridColumnModel = /** @class */ (function () {
|
|
149
178
|
function SkyGridColumnModel(template, data) {
|
|
150
179
|
this.isSortable = true;
|
|
@@ -173,6 +202,9 @@ var GRID_HEADER_LOCKED_SELECTOR = '.sky-grid-header-locked';
|
|
|
173
202
|
var GRID_HEADER_RESIZE_HANDLE = '.sky-grid-resize-handle';
|
|
174
203
|
var GRID_ROW_DELETE_SELECTOR = '.sky-grid-row-delete-heading';
|
|
175
204
|
var GRID_MULTISELECT_SELECTOR = '.sky-grid-multiselect-cell';
|
|
205
|
+
/**
|
|
206
|
+
* @internal
|
|
207
|
+
*/
|
|
176
208
|
var SkyGridAdapterService = /** @class */ (function () {
|
|
177
209
|
function SkyGridAdapterService(rendererFactory) {
|
|
178
210
|
this.rendererFactory = rendererFactory;
|
|
@@ -231,7 +263,24 @@ var SkyGridAdapterService = /** @class */ (function () {
|
|
|
231
263
|
this.renderer.setStyle(el.nativeElement, style, value);
|
|
232
264
|
}
|
|
233
265
|
};
|
|
234
|
-
SkyGridAdapterService.prototype.isLeftOfLocked = function (
|
|
266
|
+
SkyGridAdapterService.prototype.isLeftOfLocked = function (handle, columns) {
|
|
267
|
+
var e_1, _a;
|
|
268
|
+
var sourceColumn = handle;
|
|
269
|
+
try {
|
|
270
|
+
for (var _b = __values(Array.from(columns)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
271
|
+
var column = _c.value;
|
|
272
|
+
if (column.contains(handle)) {
|
|
273
|
+
sourceColumn = column;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
278
|
+
finally {
|
|
279
|
+
try {
|
|
280
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
281
|
+
}
|
|
282
|
+
finally { if (e_1) throw e_1.error; }
|
|
283
|
+
}
|
|
235
284
|
for (var i = (columns.length - 1); i >= 0; i--) {
|
|
236
285
|
if (columns[i].classList.contains('sky-grid-header-locked')) {
|
|
237
286
|
return true;
|
|
@@ -276,27 +325,70 @@ if (!Element.prototype.closest) {
|
|
|
276
325
|
// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
|
|
277
326
|
// Returns true if the element would be selected by the specified selector string.
|
|
278
327
|
if (!Element.prototype.matches) {
|
|
279
|
-
|
|
280
|
-
|
|
328
|
+
/* istanbul ignore next */
|
|
329
|
+
Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
281
330
|
}
|
|
282
331
|
|
|
283
332
|
var nextId = 0;
|
|
284
333
|
var SkyGridComponent = /** @class */ (function () {
|
|
285
|
-
function SkyGridComponent(dragulaService, gridAdapter, skyWindow, uiConfigService
|
|
334
|
+
function SkyGridComponent(affixService, changeDetector, dragulaService, gridAdapter, overlayService, skyWindow, uiConfigService) {
|
|
335
|
+
this.affixService = affixService;
|
|
336
|
+
this.changeDetector = changeDetector;
|
|
286
337
|
this.dragulaService = dragulaService;
|
|
287
338
|
this.gridAdapter = gridAdapter;
|
|
339
|
+
this.overlayService = overlayService;
|
|
288
340
|
this.skyWindow = skyWindow;
|
|
289
341
|
this.uiConfigService = uiConfigService;
|
|
290
|
-
|
|
342
|
+
/**
|
|
343
|
+
* Indicates whether to enable the multiselect feature to display a column of
|
|
344
|
+
* checkboxes on the left side of the grid. You can specify a unique ID with
|
|
345
|
+
* the `multiselectRowId` property, but multiselect defaults to the `id` property on
|
|
346
|
+
* the `data` object. To include options to select and clear all multiselect checkboxes,
|
|
347
|
+
* we recommend the [list view grid](https://developer.blackbaud.com/skyux/components/list/grid) component.
|
|
348
|
+
* @default false
|
|
349
|
+
*/
|
|
291
350
|
this.enableMultiselect = false;
|
|
351
|
+
/**
|
|
352
|
+
* Specifies how the grid fits to its parent. The valid options are `width`,
|
|
353
|
+
* which fits the grid to the parent's full width, and `scroll`, which allows the grid
|
|
354
|
+
* to exceed the parent's width. If the grid does not have enough columns to fill
|
|
355
|
+
* the parent's width, it always stretches to the parent's full width.
|
|
356
|
+
*/
|
|
292
357
|
this.fit = 'width';
|
|
358
|
+
/**
|
|
359
|
+
* Indicates whether to display a toolbar with the grid.
|
|
360
|
+
*/
|
|
293
361
|
this.hasToolbar = false;
|
|
362
|
+
/**
|
|
363
|
+
* Provides an observable to send commands to the grid.
|
|
364
|
+
*/
|
|
294
365
|
this.messageStream = new Subject();
|
|
366
|
+
/**
|
|
367
|
+
* Fires when the width of a column changes.
|
|
368
|
+
*/
|
|
295
369
|
this.columnWidthChange = new EventEmitter();
|
|
370
|
+
/**
|
|
371
|
+
* Fires when the selection of multiselect checkboxes changes.
|
|
372
|
+
* Emits an array of IDs for the selected rows based on the `multiselectRowId` property
|
|
373
|
+
* that the consumer provides.
|
|
374
|
+
*/
|
|
296
375
|
this.multiselectSelectionChange = new EventEmitter();
|
|
376
|
+
/**
|
|
377
|
+
* @internal
|
|
378
|
+
*/
|
|
297
379
|
this.rowDeleteCancel = new EventEmitter();
|
|
380
|
+
/**
|
|
381
|
+
* @internal
|
|
382
|
+
*/
|
|
298
383
|
this.rowDeleteConfirm = new EventEmitter();
|
|
384
|
+
/**
|
|
385
|
+
* Fires when the columns to display in the grid change or when the order of the columns changes.
|
|
386
|
+
* The event emits an array of IDs for the displayed columns that reflects the column order.
|
|
387
|
+
*/
|
|
299
388
|
this.selectedColumnIdsChange = new EventEmitter();
|
|
389
|
+
/**
|
|
390
|
+
* Fires when the active sort field changes.
|
|
391
|
+
*/
|
|
300
392
|
this.sortFieldChange = new EventEmitter();
|
|
301
393
|
this.columnResizeStep = 10;
|
|
302
394
|
this.gridId = ++nextId;
|
|
@@ -308,6 +400,7 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
308
400
|
this.isDraggingResizeHandle = false;
|
|
309
401
|
this.isResized = false;
|
|
310
402
|
this.ngUnsubscribe = new Subject();
|
|
403
|
+
this.rowDeleteContents = {};
|
|
311
404
|
this.subscriptions = [];
|
|
312
405
|
this.scrollTriggered = false;
|
|
313
406
|
this.selectedColumnIdsSet = false;
|
|
@@ -322,6 +415,10 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
322
415
|
get: function () {
|
|
323
416
|
return this._selectedColumnIds;
|
|
324
417
|
},
|
|
418
|
+
/**
|
|
419
|
+
* Specifies the columns to display in the grid based on the `id` or `field` properties
|
|
420
|
+
* of the columns. If no columns are specified, then the grid displays all columns.
|
|
421
|
+
*/
|
|
325
422
|
set: function (value) {
|
|
326
423
|
var currentIds = this._selectedColumnIds;
|
|
327
424
|
this._selectedColumnIds = value;
|
|
@@ -353,6 +450,11 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
353
450
|
get: function () {
|
|
354
451
|
return this._selectedRowIds;
|
|
355
452
|
},
|
|
453
|
+
/**
|
|
454
|
+
* Specifies a set of IDs for the rows to select in a multiselect grid.
|
|
455
|
+
* The IDs match the `id` properties of the `data` objects.
|
|
456
|
+
* Rows with IDs that are not included are de-selected in the grid.
|
|
457
|
+
*/
|
|
356
458
|
set: function (value) {
|
|
357
459
|
if (value) {
|
|
358
460
|
this._selectedRowIds = value;
|
|
@@ -363,6 +465,13 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
363
465
|
enumerable: true,
|
|
364
466
|
configurable: true
|
|
365
467
|
});
|
|
468
|
+
Object.defineProperty(SkyGridComponent.prototype, "tableWidth", {
|
|
469
|
+
get: function () {
|
|
470
|
+
return this.tableElementRef.nativeElement.offsetWidth;
|
|
471
|
+
},
|
|
472
|
+
enumerable: true,
|
|
473
|
+
configurable: true
|
|
474
|
+
});
|
|
366
475
|
SkyGridComponent.prototype.ngOnInit = function () {
|
|
367
476
|
var _this = this;
|
|
368
477
|
this.messageStream
|
|
@@ -393,12 +502,34 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
393
502
|
SkyGridComponent.prototype.ngOnChanges = function (changes) {
|
|
394
503
|
var _this = this;
|
|
395
504
|
if (changes.columns && this.columns) {
|
|
505
|
+
if (this.selectedColumnIds) {
|
|
506
|
+
this.selectedColumnIds = this.selectedColumnIds.filter(function (columnId) { return _this.columns.find(function (column) { return column.id === columnId; }); });
|
|
507
|
+
}
|
|
396
508
|
this.setDisplayedColumns(true);
|
|
397
509
|
}
|
|
398
510
|
if (changes.data && this.data) {
|
|
399
511
|
this.transformData();
|
|
400
512
|
// This set timeout is necessary to ensure the data has rendered in the grid
|
|
401
513
|
setTimeout(function () {
|
|
514
|
+
// This cleans up any lingering row deletes for items that have been removed.
|
|
515
|
+
Object.keys(_this.rowDeleteContents).forEach(function (id) {
|
|
516
|
+
if (!_this.data.find(function (item) { return item.id === id; })) {
|
|
517
|
+
_this.destroyRowDelete(id);
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
// The rows re-render thus messing up the affixers. We must reaffix them so that things
|
|
521
|
+
// continue to render correctly.
|
|
522
|
+
var rowElement = _this.tableElementRef.nativeElement.querySelector('[sky-cmp-id="' + id + '"]');
|
|
523
|
+
_this.rowDeleteContents[id].affixer.affixTo(rowElement, {
|
|
524
|
+
autoFitContext: SkyAffixAutoFitContext.Viewport,
|
|
525
|
+
isSticky: true,
|
|
526
|
+
placement: 'above',
|
|
527
|
+
verticalAlignment: 'top',
|
|
528
|
+
horizontalAlignment: 'left',
|
|
529
|
+
enableAutoFit: false
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
});
|
|
402
533
|
_this.checkUserColumnWidthsForScroll();
|
|
403
534
|
});
|
|
404
535
|
}
|
|
@@ -407,12 +538,16 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
407
538
|
}
|
|
408
539
|
};
|
|
409
540
|
SkyGridComponent.prototype.ngOnDestroy = function () {
|
|
541
|
+
var _this = this;
|
|
410
542
|
this.subscriptions.forEach(function (subscription) {
|
|
411
543
|
subscription.unsubscribe();
|
|
412
544
|
});
|
|
413
545
|
this.multiselectSelectionChange.complete();
|
|
414
546
|
this.ngUnsubscribe.next();
|
|
415
547
|
this.ngUnsubscribe.complete();
|
|
548
|
+
Object.keys(this.rowDeleteContents).forEach(function (id) {
|
|
549
|
+
_this.destroyRowDelete(id);
|
|
550
|
+
});
|
|
416
551
|
};
|
|
417
552
|
SkyGridComponent.prototype.onWindowResize = function () {
|
|
418
553
|
this.checkUserColumnWidthsForScroll();
|
|
@@ -645,6 +780,7 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
645
780
|
SkyGridComponent.prototype.cancelRowDelete = function (id) {
|
|
646
781
|
this.rowDeleteConfigs = this.rowDeleteConfigs.filter(function (config) { return config.id !== id; });
|
|
647
782
|
this.rowDeleteCancel.emit({ id: id });
|
|
783
|
+
this.destroyRowDelete(id);
|
|
648
784
|
};
|
|
649
785
|
SkyGridComponent.prototype.confirmRowDelete = function (id) {
|
|
650
786
|
this.rowDeleteConfigs.find(function (config) { return config.id === id; }).pending = true;
|
|
@@ -721,6 +857,7 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
721
857
|
this.emitSelectedRows(SkyGridSelectedRowsSource.ClearAll);
|
|
722
858
|
};
|
|
723
859
|
SkyGridComponent.prototype.handleIncomingMessages = function (message) {
|
|
860
|
+
var _this = this;
|
|
724
861
|
/* tslint:disable-next-line:switch-default */
|
|
725
862
|
switch (message.type) {
|
|
726
863
|
case SkyGridMessageType.SelectAll:
|
|
@@ -740,6 +877,41 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
740
877
|
}
|
|
741
878
|
else {
|
|
742
879
|
this.rowDeleteConfigs.push({ id: message.data.promptDeleteRow.id, pending: false });
|
|
880
|
+
var overlay_1 = this.overlayService.create({
|
|
881
|
+
enableScroll: true,
|
|
882
|
+
showBackdrop: false,
|
|
883
|
+
closeOnNavigation: true,
|
|
884
|
+
enableClose: false,
|
|
885
|
+
enablePointerEvents: true
|
|
886
|
+
});
|
|
887
|
+
overlay_1.attachTemplate(this.inlineDeleteTemplateRef, { $implicit: this.data.find(function (item) { return item.id === message.data.promptDeleteRow.id; }) });
|
|
888
|
+
/**
|
|
889
|
+
* We are manually setting the z-index here because overlays will always be on top of
|
|
890
|
+
* the omnibar. This manual setting is 1 less than the omnibar's z-index of 1000. We
|
|
891
|
+
* discussed changing the overlay service to allow for this but decided against that
|
|
892
|
+
* change at this time due to its niche nature.
|
|
893
|
+
*/
|
|
894
|
+
overlay_1.componentRef.instance.zIndex = '999';
|
|
895
|
+
setTimeout(function () {
|
|
896
|
+
var inlineDeleteRef = _this.inlineDeleteRefs.toArray()
|
|
897
|
+
.find(function (elRef) {
|
|
898
|
+
return elRef.nativeElement.id === 'row-delete-ref-' + message.data.promptDeleteRow.id;
|
|
899
|
+
});
|
|
900
|
+
var affixer = _this.affixService.createAffixer(inlineDeleteRef);
|
|
901
|
+
var rowElement = _this.tableElementRef.nativeElement.querySelector('[sky-cmp-id="' + message.data.promptDeleteRow.id + '"]');
|
|
902
|
+
affixer.affixTo(rowElement, {
|
|
903
|
+
autoFitContext: SkyAffixAutoFitContext.Viewport,
|
|
904
|
+
isSticky: true,
|
|
905
|
+
placement: 'above',
|
|
906
|
+
verticalAlignment: 'top',
|
|
907
|
+
horizontalAlignment: 'left',
|
|
908
|
+
enableAutoFit: false
|
|
909
|
+
});
|
|
910
|
+
_this.rowDeleteContents[message.data.promptDeleteRow.id] = {
|
|
911
|
+
affixer: affixer,
|
|
912
|
+
overlay: overlay_1
|
|
913
|
+
};
|
|
914
|
+
});
|
|
743
915
|
}
|
|
744
916
|
}
|
|
745
917
|
break;
|
|
@@ -748,6 +920,7 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
748
920
|
/* istanbul ignore else */
|
|
749
921
|
if (message.data && message.data.abortDeleteRow) {
|
|
750
922
|
this.rowDeleteConfigs = this.rowDeleteConfigs.filter(function (config) { return config.id !== message.data.abortDeleteRow.id; });
|
|
923
|
+
this.destroyRowDelete(message.data.abortDeleteRow.id);
|
|
751
924
|
}
|
|
752
925
|
break;
|
|
753
926
|
}
|
|
@@ -765,7 +938,8 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
765
938
|
if (respectHidden === void 0) { respectHidden = false; }
|
|
766
939
|
if (this.selectedColumnIds !== undefined) {
|
|
767
940
|
// setup displayed columns
|
|
768
|
-
this.displayedColumns = this.selectedColumnIds
|
|
941
|
+
this.displayedColumns = this.selectedColumnIds
|
|
942
|
+
.filter(function (columnId) { return _this.columns.find(function (column) { return column.id === columnId; }); }).map(function (columnId) { return _this.columns.filter(function (column) { return column.id === columnId; })[0]; });
|
|
769
943
|
}
|
|
770
944
|
else if (respectHidden) {
|
|
771
945
|
this.displayedColumns = this.columns.filter(function (column) {
|
|
@@ -857,16 +1031,10 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
857
1031
|
}
|
|
858
1032
|
this.changeDetector.detectChanges();
|
|
859
1033
|
this.columnWidthChange.emit(this.getColumnWidthModelChange());
|
|
860
|
-
// If in "scroll" mode, reset the full table width.
|
|
861
|
-
// This prevents pixel "hopping" for the non-resized columns
|
|
862
|
-
if (this.fit === 'scroll') {
|
|
863
|
-
this.tableWidth = this.tableElementRef.nativeElement.offsetWidth;
|
|
864
|
-
}
|
|
865
1034
|
};
|
|
866
1035
|
SkyGridComponent.prototype.initColumnWidths = function () {
|
|
867
1036
|
var _this = this;
|
|
868
1037
|
// Establish table width.
|
|
869
|
-
this.tableWidth = this.tableElementRef.nativeElement.offsetWidth;
|
|
870
1038
|
this.showTopScroll = true;
|
|
871
1039
|
// Set column widths based on the width initially given by the browser.
|
|
872
1040
|
// computedWidth prevents accidental overflow for browsers with sub-pixel widths.
|
|
@@ -918,7 +1086,6 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
918
1086
|
this.skyWindow.nativeWindow.setTimeout(function () {
|
|
919
1087
|
_this.gridAdapter.setStyle(_this.tableElementRef, 'width', "auto");
|
|
920
1088
|
_this.changeDetector.detectChanges();
|
|
921
|
-
_this.tableWidth = _this.tableElementRef.nativeElement.offsetWidth;
|
|
922
1089
|
_this.gridAdapter.setStyle(_this.tableElementRef, 'width', _this.tableWidth + "px");
|
|
923
1090
|
_this.changeDetector.detectChanges();
|
|
924
1091
|
});
|
|
@@ -944,6 +1111,14 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
944
1111
|
SkyGridComponent.prototype.addDelimeter = function (text, delimiter) {
|
|
945
1112
|
return text.filter(function (val) { return val; }).join(delimiter);
|
|
946
1113
|
};
|
|
1114
|
+
SkyGridComponent.prototype.destroyRowDelete = function (id) {
|
|
1115
|
+
var rowDeleteContents = this.rowDeleteContents[id];
|
|
1116
|
+
if (rowDeleteContents) {
|
|
1117
|
+
rowDeleteContents.affixer.destroy();
|
|
1118
|
+
this.overlayService.close(rowDeleteContents.overlay);
|
|
1119
|
+
delete this.rowDeleteContents[id];
|
|
1120
|
+
}
|
|
1121
|
+
};
|
|
947
1122
|
SkyGridComponent.prototype.emitSelectedRows = function (source) {
|
|
948
1123
|
var selectedRows = {
|
|
949
1124
|
selectedRowIds: this.getSelectedRows(),
|
|
@@ -1040,11 +1215,13 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
1040
1215
|
});
|
|
1041
1216
|
};
|
|
1042
1217
|
SkyGridComponent.ctorParameters = function () { return [
|
|
1218
|
+
{ type: SkyAffixService },
|
|
1219
|
+
{ type: ChangeDetectorRef },
|
|
1043
1220
|
{ type: DragulaService },
|
|
1044
1221
|
{ type: SkyGridAdapterService },
|
|
1222
|
+
{ type: SkyOverlayService },
|
|
1045
1223
|
{ type: SkyAppWindowRef },
|
|
1046
|
-
{ type: SkyUIConfigService }
|
|
1047
|
-
{ type: ChangeDetectorRef }
|
|
1224
|
+
{ type: SkyUIConfigService }
|
|
1048
1225
|
]; };
|
|
1049
1226
|
__decorate([
|
|
1050
1227
|
Input()
|
|
@@ -1078,19 +1255,19 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
1078
1255
|
], SkyGridComponent.prototype, "rowHighlightedId", void 0);
|
|
1079
1256
|
__decorate([
|
|
1080
1257
|
Input()
|
|
1081
|
-
], SkyGridComponent.prototype, "
|
|
1258
|
+
], SkyGridComponent.prototype, "selectedColumnIds", null);
|
|
1082
1259
|
__decorate([
|
|
1083
1260
|
Input()
|
|
1084
|
-
], SkyGridComponent.prototype, "
|
|
1261
|
+
], SkyGridComponent.prototype, "selectedRowIds", null);
|
|
1085
1262
|
__decorate([
|
|
1086
1263
|
Input()
|
|
1087
|
-
], SkyGridComponent.prototype, "
|
|
1264
|
+
], SkyGridComponent.prototype, "settingsKey", void 0);
|
|
1088
1265
|
__decorate([
|
|
1089
1266
|
Input()
|
|
1090
|
-
], SkyGridComponent.prototype, "
|
|
1267
|
+
], SkyGridComponent.prototype, "sortField", void 0);
|
|
1091
1268
|
__decorate([
|
|
1092
1269
|
Input()
|
|
1093
|
-
], SkyGridComponent.prototype, "
|
|
1270
|
+
], SkyGridComponent.prototype, "width", void 0);
|
|
1094
1271
|
__decorate([
|
|
1095
1272
|
Output()
|
|
1096
1273
|
], SkyGridComponent.prototype, "columnWidthChange", void 0);
|
|
@@ -1110,7 +1287,7 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
1110
1287
|
Output()
|
|
1111
1288
|
], SkyGridComponent.prototype, "sortFieldChange", void 0);
|
|
1112
1289
|
__decorate([
|
|
1113
|
-
ContentChildren(SkyGridColumnComponent
|
|
1290
|
+
ContentChildren(SkyGridColumnComponent)
|
|
1114
1291
|
], SkyGridComponent.prototype, "columnComponents", void 0);
|
|
1115
1292
|
__decorate([
|
|
1116
1293
|
ViewChildren('gridCol')
|
|
@@ -1118,6 +1295,12 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
1118
1295
|
__decorate([
|
|
1119
1296
|
ViewChildren('colSizeRange')
|
|
1120
1297
|
], SkyGridComponent.prototype, "columnRangeInputElementRefs", void 0);
|
|
1298
|
+
__decorate([
|
|
1299
|
+
ViewChildren('inlineDeleteRef')
|
|
1300
|
+
], SkyGridComponent.prototype, "inlineDeleteRefs", void 0);
|
|
1301
|
+
__decorate([
|
|
1302
|
+
ViewChild('inlineDeleteTemplateRef', { read: TemplateRef })
|
|
1303
|
+
], SkyGridComponent.prototype, "inlineDeleteTemplateRef", void 0);
|
|
1121
1304
|
__decorate([
|
|
1122
1305
|
ViewChild('gridContainer')
|
|
1123
1306
|
], SkyGridComponent.prototype, "tableContainerElementRef", void 0);
|
|
@@ -1136,18 +1319,21 @@ var SkyGridComponent = /** @class */ (function () {
|
|
|
1136
1319
|
SkyGridComponent = __decorate([
|
|
1137
1320
|
Component({
|
|
1138
1321
|
selector: 'sky-grid',
|
|
1139
|
-
template: "<div class=\"sky-grid\">\n <div *ngIf=\"showTopScroll\"\n class=\"sky-grid-top-scroll-container\"\n (scroll)=\"onTopScroll($event)\"\n #topScrollContainer\n >\n <div\n class=\"sky-grid-top-scroll\"\n [style.width.px]=\"getTopScrollWidth()\"\n ></div>\n </div>\n <div\n class=\"sky-grid-table-container\"\n [style.height.px]=\"height\"\n [style.width.px]=\"width\"\n (scroll)=\"onGridScroll($event)\"\n #gridContainer\n >\n <table\n class=\"sky-grid-table\"\n [ngClass]=\"getTableClassNames()\"\n #gridTable>\n <thead>\n <tr dragula=\"sky-grid-heading\">\n <th *ngIf=\"
|
|
1322
|
+
template: "<div class=\"sky-grid\">\n <div *ngIf=\"showTopScroll\"\n class=\"sky-grid-top-scroll-container\"\n (scroll)=\"onTopScroll($event)\"\n #topScrollContainer\n >\n <div\n class=\"sky-grid-top-scroll\"\n [style.width.px]=\"getTopScrollWidth()\"\n ></div>\n </div>\n <div\n class=\"sky-grid-table-container\"\n [style.height.px]=\"height\"\n [style.width.px]=\"width\"\n (scroll)=\"onGridScroll($event)\"\n #gridContainer\n >\n <table\n class=\"sky-grid-table\"\n [ngClass]=\"getTableClassNames()\"\n #gridTable>\n <thead>\n <tr dragula=\"sky-grid-heading\">\n <th *ngIf=\"enableMultiselect\"\n class=\"sky-grid-heading sky-grid-multiselect-cell sky-grid-header-locked\"\n scope=\"col\"\n [style.max-width.px]=\"minColWidth\"\n [style.width.px]=\"minColWidth\"\n >\n <span class=\"screen-reader-only\">\n {{ 'skyux_grid_multiselect_select_row' | skyLibResources }}\n </span>\n </th>\n <th *ngFor=\"let column of displayedColumns; let last = last, let i = index\"\n class=\"sky-grid-heading sky-field-label\"\n scope=\"col\"\n [attr.sky-cmp-index]=\"i\"\n [attr.sky-cmp-id]=\"column.id || column.field\"\n [attr.aria-sort]=\"getAriaSortDirection(column) | async\"\n [id]=\"'sky-grid-' + gridId + '-column-' + i\"\n [ngClass]=\"'sky-grid-column-alignment-' + column.alignment\"\n [style.max-width.px]=\"column.width\"\n [style.width.px]=\"column.width\"\n [tabIndex]=\"column.isSortable ? 0 : -1\"\n (mouseup)=\"sortByColumn(column)\"\n (keydown)=\"onKeydown($event, column)\"\n (touchmove)=\"onTouchMove($event)\"\n #gridCol\n >\n <div\n class=\"overflow\"\n [ngClass]=\"getTableHeaderClassNames(column)\"\n [style.max-width.px]=\"column.width - 1\"\n [style.width.px]=\"column.width - 1\"\n >\n <span *ngIf=\"(getCaretVisibility(column.field) | async) === 'hidden'\"\n class=\"sky-grid-header-caret-hidden-spacing\"\n ></span>\n <!-- The no spacing here is intentional to avoid extra spaces due to these being inline elements -->\n <span\n class=\"sky-grid-header-text\"\n >{{column.heading?.trim()}}</span>\n <sky-icon\n class=\"sky-grid-heading-sort\"\n [ngClass]=\"'sky-grid-heading-sort-' + (getCaretVisibility(column.field) | async)\"\n [icon]=\"getCaretIconNames(column)\"\n >\n </sky-icon>\n <sky-help-inline *ngIf=\"column.inlineHelpPopover\"\n [ngClass]=\"{\n 'sky-grid-help-inline-sort-hidden' : getHelpInlineClass(column.field) | async\n }\"\n [skyPopover]=\"column.inlineHelpPopover\"\n (keydown.enter)=\"$event.stopPropagation()\"\n (keydown.space)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\"\n >\n </sky-help-inline>\n </div>\n <span\n *ngIf=\"(fit==='width' && !last) || (fit==='scroll')\"\n aria-hidden=\"true\"\n class=\"sky-grid-resize-handle\"\n tabindex=\"-1\"\n [attr.sky-cmp-index]=\"i\"\n (mousedown)=\"onResizeColumnStart($event)\"\n (touchstart)=\"onResizeColumnStart($event)\"\n >\n </span>\n <input\n aria-label=\"Width of column\"\n class=\"sky-grid-column-input-aria-only\"\n role=\"slider\"\n type=\"range\"\n [attr.aria-controls]=\"'sky-grid-' + gridId + '-column-' + i\"\n [attr.aria-valuemin]=\"minColWidth\"\n [attr.aria-valuemax]=\"maxColWidth\"\n [attr.aria-valuenow]=\"column.width\"\n [attr.sky-cmp-index]=\"i\"\n [min]=\"minColWidth\"\n [max]=\"maxColWidth\"\n [step]=\"columnResizeStep\"\n [(ngModel)]=\"column.width\"\n (blur)=\"onResizeHandleBlur($event)\"\n (focus)=\"onResizeHandleFocus($event)\"\n (keydown)=\"onKeydownResizeCol($event)\"\n (change)=\"onInputChangeResizeCol($event)\"\n #colSizeRange />\n </th>\n </tr>\n </thead>\n <tbody class=\"sky-grid-tbody\">\n <tr\n class=\"sky-grid-row\"\n *ngFor=\"let item of items; let i = index\"\n [attr.aria-current]=\"isRowHighlighted(item.id) ? true : null\"\n [attr.aria-selected]=\"item.isSelected\"\n [attr.sky-cmp-id]=\"item.id\"\n [ngClass]=\"{\n 'sky-grid-multiselect-selected-row' : item.isSelected,\n 'sky-grid-multiselect-row' : enableMultiselect,\n 'sky-grid-row-highlight' : isRowHighlighted(item.id)\n }\"\n (click)=\"onRowClick($event, item)\"\n >\n <td *ngIf=\"enableMultiselect\"\n class=\"sky-grid-multiselect-cell sky-grid-header-locked\"\n >\n <div\n [style.max-width.px]=\"minColWidth\"\n [style.width.px]=\"minColWidth\"\n >\n <sky-checkbox\n [label]=\"'skyux_grid_multiselect_select_row' | skyLibResources\"\n (change)=\"onMultiselectCheckboxChange()\"\n [(ngModel)]=\"item.isSelected\"\n >\n </sky-checkbox>\n </div>\n </td>\n <td *ngFor=\"let column of displayedColumns; let last = last; let i = index\"\n class=\"sky-grid-cell\"\n [ngClass]=\"'sky-grid-column-alignment-' + column.alignment\"\n [style.max-width.px]=\"column.width\"\n [style.width.px]=\"column.width\"\n >\n <sky-grid-cell\n [skyHighlight]=\"!column.excludeFromHighlighting ? highlightText : undefined\"\n [template]=\"column.template || defaultCellTemplate\"\n [fieldSelector]=\"column.field\"\n [item]=\"item\"\n [columnId]=\"column.id\"\n [attr.sky-cmp-id]=\"column.id || column.field\">\n </sky-grid-cell>\n </td>\n </tr>\n </tbody>\n </table>\n <div *ngIf=\"showResizeBar\"\n aria-hidden=\"true\"\n id=\"sky-grid-resize-bar\"\n tabindex=\"-1\"\n #resizeBar\n >\n </div>\n </div>\n</div>\n\n<ng-template #defaultCellTemplate let-row=\"row\" let-value=\"value\">{{value}}</ng-template>\n\n<ng-template\n let-item\n #inlineDeleteTemplateRef\n>\n <div\n [id]=\"'row-delete-ref-' + item.id\"\n [ngStyle]='{\n \"height\": getRowHeight(0),\n \"position\": \"fixed\",\n \"width\": tableWidth + \"px\"\n }'\n #inlineDeleteRef\n >\n <sky-inline-delete\n [pending]=\"getRowDeleteItem(item.id).pending\"\n (cancelTriggered)=\"cancelRowDelete(item.id)\"\n (deleteTriggered)=\"confirmRowDelete(item.id)\"\n ></sky-inline-delete>\n </div>\n</ng-template>\n",
|
|
1140
1323
|
viewProviders: [DragulaService],
|
|
1141
1324
|
providers: [
|
|
1142
1325
|
SkyGridAdapterService
|
|
1143
1326
|
],
|
|
1144
1327
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1145
|
-
styles: [".sky-grid{position:relative;display:block}.sky-grid-table-container{overflow:auto}.sky-grid-table{position:relative;table-layout:fixed;border-collapse:collapse;margin:0;font-size:15px;min-width:100%}.sky-grid-table.sky-grid-fit{max-width:100%;width:100%}.sky-grid-tbody{background-color:#fff}.sky-grid-row{border-bottom:1px dotted #cdcfd2}.sky-grid-row:nth-child(odd){background-color:#fbfbfb}.sky-grid-row.sky-grid-row-highlight{border-top:1px solid #0974a1;box-shadow:0 0 0 3px inset #0974a1}.sky-grid-row .sky-grid-cell{padding:0;min-width:10px}.sky-grid-heading{position:relative;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:0 solid #cdcfd2;padding:0;cursor:pointer;background-color:#fff;overflow:visible;background-clip:padding-box;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-grid-heading:first-child{border-left:1px solid transparent}.sky-grid-heading.sky-grid-header-dragging{background-color:#eeeeef}.sky-grid-heading.sky-grid-column-alignment-center .sky-grid-heading-sort,.sky-grid-heading.sky-grid-column-alignment-left .sky-grid-heading-sort{width:14px}.sky-grid-heading.sky-grid-column-alignment-center .sky-grid-help-inline-sort-hidden,.sky-grid-heading.sky-grid-column-alignment-left .sky-grid-help-inline-sort-hidden{margin-left:-14px;margin-right:14px}.sky-grid-heading.sky-grid-column-alignment-right .sky-grid-header-caret-hidden-spacing{padding-left:14px}.sky-grid-heading.sky-grid-column-alignment-right .sky-grid-heading-sort-visible{width:14px}.sky-grid-heading div{padding:8px}.sky-grid-heading .overflow{text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1;overflow:hidden;min-width:100%}.sky-grid-heading .sky-grid-column-input-aria-only{-webkit-appearance:none;-moz-appearance:none;height:100%;width:5px;position:absolute;display:block;top:0;bottom:0;right:0}.sky-grid-heading .sky-grid-column-input-aria-only::-moz-range-track{background:0 0}.sky-grid-heading .sky-grid-column-input-aria-only::-moz-range-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only::-ms-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only:focus{background-color:#00b4f1}.sky-grid-column-alignment-left{text-align:left}.sky-grid-column-alignment-center{text-align:center}.sky-grid-column-alignment-right{text-align:right}.sky-grid-
|
|
1328
|
+
styles: [".sky-grid{position:relative;display:block}.sky-grid-table-container{overflow:auto}.sky-grid-table{position:relative;table-layout:fixed;border-collapse:collapse;margin:0;font-size:15px;min-width:100%}.sky-grid-table.sky-grid-fit{max-width:100%;width:100%}.sky-grid-tbody{background-color:#fff}.sky-grid-row{border-bottom:1px dotted #cdcfd2}.sky-grid-row:nth-child(odd){background-color:#fbfbfb}.sky-grid-row.sky-grid-row-highlight{border-top:1px solid #0974a1;box-shadow:0 0 0 3px inset #0974a1}.sky-grid-row .sky-grid-cell{padding:0;min-width:10px}.sky-grid-heading{position:relative;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:0 solid #cdcfd2;padding:0;cursor:pointer;background-color:#fff;overflow:visible;background-clip:padding-box;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-grid-heading:first-child{border-left:1px solid transparent}.sky-grid-heading.sky-grid-header-dragging{background-color:#eeeeef}.sky-grid-heading.sky-grid-column-alignment-center .sky-grid-heading-sort,.sky-grid-heading.sky-grid-column-alignment-left .sky-grid-heading-sort{width:14px}.sky-grid-heading.sky-grid-column-alignment-center .sky-grid-help-inline-sort-hidden,.sky-grid-heading.sky-grid-column-alignment-left .sky-grid-help-inline-sort-hidden{margin-left:-14px;margin-right:14px}.sky-grid-heading.sky-grid-column-alignment-right .sky-grid-header-caret-hidden-spacing{padding-left:14px}.sky-grid-heading.sky-grid-column-alignment-right .sky-grid-heading-sort-visible{width:14px}.sky-grid-heading div{padding:8px}.sky-grid-heading .overflow{text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1;overflow:hidden;min-width:100%}.sky-grid-heading .sky-grid-column-input-aria-only{-webkit-appearance:none;-moz-appearance:none;height:100%;width:5px;position:absolute;display:block;top:0;bottom:0;right:0}.sky-grid-heading .sky-grid-column-input-aria-only::-moz-range-track{background:0 0}.sky-grid-heading .sky-grid-column-input-aria-only::-moz-range-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only::-ms-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0;background:0 0;display:none}.sky-grid-heading .sky-grid-column-input-aria-only:focus{background-color:#00b4f1}.sky-grid-column-alignment-left{text-align:left}.sky-grid-column-alignment-center{text-align:center}.sky-grid-column-alignment-right{text-align:right}.sky-grid-multiselect-cell{padding:0;text-align:center}.sky-grid-multiselect-cell ::ng-deep.sky-switch-control{margin:0 auto}th.sky-grid-multiselect-cell{cursor:default}th.sky-grid-multiselect-cell .screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:0;white-space:nowrap}@-moz-document url-prefix(){.sky-grid-multiselect-row td{border-left:0 solid transparent;border-right:0 solid transparent}}.sky-grid-multiselect-row:hover{background-color:#e9e4f1}.sky-grid-multiselect-row:hover:nth-child(odd){background:#e9e4f1}.sky-grid-multiselect-selected-row{background:#f1eef6;border-top:1px solid #dadbf6;border-bottom:1px solid #dadbf6}.sky-grid-multiselect-selected-row:nth-child(odd){background:#f1eef6}.sky-grid-has-toolbar .sky-grid-heading{border-top-width:0}.sky-grid-heading-sort.sky-grid-heading-sort-hidden{visibility:hidden}.sky-grid-heading-sort.sky-grid-heading-sort-visible{visibility:visible;padding-left:5px}.sky-grid-resize-handle{position:absolute;right:0;top:0;bottom:0;width:30px;z-index:2;min-height:20px;height:100%!important;vertical-align:middle;cursor:col-resize}.sky-grid-resize-handle:hover::after{background-color:#00b4f1}.sky-grid-resize-handle:after{position:absolute;right:0;top:0;bottom:0;width:5px;height:100%;content:\"\"}#sky-grid-resize-bar{position:absolute;top:0;left:0;z-index:99;height:100%;width:5px;background:#00b4f1;opacity:.6}tr{position:relative}.sky-grid-top-scroll-container{overflow:auto}.sky-grid-top-scroll{height:1px}"]
|
|
1146
1329
|
})
|
|
1147
1330
|
], SkyGridComponent);
|
|
1148
1331
|
return SkyGridComponent;
|
|
1149
1332
|
}());
|
|
1150
1333
|
|
|
1334
|
+
/**
|
|
1335
|
+
* @internal
|
|
1336
|
+
*/
|
|
1151
1337
|
var SkyGridCellComponent = /** @class */ (function () {
|
|
1152
1338
|
function SkyGridCellComponent() {
|
|
1153
1339
|
}
|
|
@@ -1245,11 +1431,13 @@ var SkyGridModule = /** @class */ (function () {
|
|
|
1245
1431
|
CommonModule,
|
|
1246
1432
|
DragulaModule,
|
|
1247
1433
|
FormsModule,
|
|
1434
|
+
SkyAffixModule,
|
|
1248
1435
|
SkyCheckboxModule,
|
|
1249
1436
|
SkyGridsResourcesModule,
|
|
1250
1437
|
SkyHelpInlineModule,
|
|
1251
1438
|
SkyIconModule,
|
|
1252
1439
|
SkyInlineDeleteModule,
|
|
1440
|
+
SkyOverlayModule,
|
|
1253
1441
|
SkyPopoverModule,
|
|
1254
1442
|
SkyTextHighlightModule
|
|
1255
1443
|
],
|