@progress/kendo-angular-grid 18.0.1-develop.3 → 18.1.0-develop.10
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/columns/cell-rowspan.d.ts +10 -0
- package/columns/column-base.d.ts +8 -2
- package/editing-directives/local-row-edit.service.d.ts +1 -1
- package/esm2022/aggregates/selection-aggregate.service.mjs +1 -1
- package/esm2022/columns/cell-rowspan.mjs +5 -0
- package/esm2022/columns/column-base.mjs +13 -2
- package/esm2022/dragdrop/draggable-column.directive.mjs +2 -2
- package/esm2022/editing-directives/local-row-edit.service.mjs +1 -1
- package/esm2022/grid.component.mjs +6 -3
- package/esm2022/grouping/group-panel.component.mjs +1 -1
- package/esm2022/navigation/logical-cell.directive.mjs +7 -1
- package/esm2022/navigation/navigation.service.mjs +27 -35
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/pdf.component.mjs +1 -1
- package/esm2022/rendering/cell.component.mjs +1 -1
- package/esm2022/rendering/common/col-group.component.mjs +1 -1
- package/esm2022/rendering/footer/footer.component.mjs +1 -1
- package/esm2022/rendering/header/header.component.mjs +2 -2
- package/esm2022/rendering/list.component.mjs +14 -5
- package/esm2022/rendering/rowspan.service.mjs +24 -0
- package/esm2022/rendering/table-body.component.mjs +106 -64
- package/esm2022/selection/selection-default.mjs +1 -1
- package/fesm2022/progress-kendo-angular-grid.mjs +202 -123
- package/index.d.ts +1 -0
- package/navigation/logical-cell.directive.d.ts +1 -0
- package/navigation/navigation.service.d.ts +2 -0
- package/package.json +19 -19
- package/pdf/pdf.component.d.ts +1 -1
- package/rendering/cell.component.d.ts +1 -1
- package/rendering/common/col-group.component.d.ts +1 -1
- package/rendering/footer/footer.component.d.ts +1 -1
- package/rendering/header/header.component.d.ts +1 -1
- package/rendering/list.component.d.ts +4 -1
- package/rendering/rowspan.service.d.ts +14 -0
- package/rendering/table-body.component.d.ts +9 -2
- package/schematics/ngAdd/index.js +4 -4
|
@@ -2279,6 +2279,10 @@ class ColumnBase {
|
|
|
2279
2279
|
*
|
|
2280
2280
|
*/
|
|
2281
2281
|
footerClass;
|
|
2282
|
+
/**
|
|
2283
|
+
* Defines a function that is used to determine the rowspan of each column cell.
|
|
2284
|
+
*/
|
|
2285
|
+
cellRowspan;
|
|
2282
2286
|
/**
|
|
2283
2287
|
* @hidden
|
|
2284
2288
|
*/
|
|
@@ -2373,8 +2377,13 @@ class ColumnBase {
|
|
|
2373
2377
|
throw new Error(ColumnConfigurationErrorMessages.columnNested);
|
|
2374
2378
|
}
|
|
2375
2379
|
}
|
|
2380
|
+
ngOnChanges(changes) {
|
|
2381
|
+
if (isDevMode() && changes['cellRowspan'] && typeof changes['cellRowspan'].currentValue !== 'function') {
|
|
2382
|
+
throw new Error(GridConfigurationErrorMessages.functionType('cellRowspan', changes['cellRowspan'].currentValue));
|
|
2383
|
+
}
|
|
2384
|
+
}
|
|
2376
2385
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnBase, deps: [{ token: ColumnBase }, { token: IdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2377
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnBase, selector: "kendo-grid-column-base", inputs: { resizable: "resizable", reorderable: "reorderable", minResizableWidth: "minResizableWidth", maxResizableWidth: "maxResizableWidth", title: "title", width: "width", autoSize: "autoSize", locked: "locked", sticky: "sticky", hidden: "hidden", media: "media", lockable: "lockable", stickable: "stickable", columnMenu: "columnMenu", includeInChooser: "includeInChooser", tableCellsRole: "tableCellsRole", style: "style", headerStyle: "headerStyle", filterStyle: "filterStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", filterClass: "filterClass", footerClass: "footerClass" }, queries: [{ propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], ngImport: i0, template: ``, isInline: true });
|
|
2386
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnBase, selector: "kendo-grid-column-base", inputs: { resizable: "resizable", reorderable: "reorderable", minResizableWidth: "minResizableWidth", maxResizableWidth: "maxResizableWidth", title: "title", width: "width", autoSize: "autoSize", locked: "locked", sticky: "sticky", hidden: "hidden", media: "media", lockable: "lockable", stickable: "stickable", columnMenu: "columnMenu", includeInChooser: "includeInChooser", tableCellsRole: "tableCellsRole", style: "style", headerStyle: "headerStyle", filterStyle: "filterStyle", footerStyle: "footerStyle", cssClass: ["class", "cssClass"], headerClass: "headerClass", filterClass: "filterClass", footerClass: "footerClass", cellRowspan: "cellRowspan" }, queries: [{ propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "headerTemplates", predicate: HeaderTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
|
|
2378
2387
|
}
|
|
2379
2388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnBase, decorators: [{
|
|
2380
2389
|
type: Component,
|
|
@@ -2431,6 +2440,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2431
2440
|
type: Input
|
|
2432
2441
|
}], footerClass: [{
|
|
2433
2442
|
type: Input
|
|
2443
|
+
}], cellRowspan: [{
|
|
2444
|
+
type: Input
|
|
2434
2445
|
}], headerTemplates: [{
|
|
2435
2446
|
type: ContentChildren,
|
|
2436
2447
|
args: [HeaderTemplateDirective, { descendants: false }]
|
|
@@ -3310,6 +3321,7 @@ class NavigationService {
|
|
|
3310
3321
|
pagerIsNavigable = false;
|
|
3311
3322
|
tableIsNavigable = false;
|
|
3312
3323
|
toolbarIsNavigable = false;
|
|
3324
|
+
lastCellRowIndex;
|
|
3313
3325
|
get activeDataRow() {
|
|
3314
3326
|
return Math.max(0, this.activeRowIndex - this.meta.headerRows);
|
|
3315
3327
|
}
|
|
@@ -3578,78 +3590,62 @@ class NavigationService {
|
|
|
3578
3590
|
.forEach(cell => cell.focusGroup && cell.focusGroup.activate());
|
|
3579
3591
|
}
|
|
3580
3592
|
moveCursorFwd() {
|
|
3593
|
+
this.lastCellRowIndex = this.activeCell.rowIndex;
|
|
3581
3594
|
return this.ctx.localization.rtl ? this.cursor.moveLeft() : this.cursor.moveRight();
|
|
3582
3595
|
}
|
|
3583
3596
|
moveCursorBwd() {
|
|
3597
|
+
this.lastCellRowIndex = this.activeCell.rowIndex;
|
|
3584
3598
|
return this.ctx.localization.rtl ? this.cursor.moveRight() : this.cursor.moveLeft();
|
|
3585
3599
|
}
|
|
3586
3600
|
onCursorKeydown(args) {
|
|
3587
3601
|
let preventDefault = false;
|
|
3588
3602
|
const modifier = args.ctrlKey || args.metaKey;
|
|
3589
|
-
|
|
3603
|
+
let step = modifier ? 5 : 1;
|
|
3604
|
+
const rowspan = +args.target?.getAttribute('rowspan');
|
|
3605
|
+
let rowspanOffset = 0;
|
|
3590
3606
|
if (!this.onCellKeydown(args)) {
|
|
3591
3607
|
return;
|
|
3592
3608
|
}
|
|
3593
3609
|
const row = this.cursor.row;
|
|
3610
|
+
const dir = args.keyCode === Keys.ArrowDown ? 'Down' : 'Up';
|
|
3611
|
+
const right = args.keyCode === Keys.ArrowRight;
|
|
3594
3612
|
switch (args.keyCode) {
|
|
3595
3613
|
case Keys.ArrowDown:
|
|
3596
|
-
if (args.shiftKey) {
|
|
3597
|
-
if (this.ctx.grid.blockArrowSelection) {
|
|
3598
|
-
return;
|
|
3599
|
-
}
|
|
3600
|
-
preventDefault = this.cursor.moveDown(step);
|
|
3601
|
-
if (this.activeRow?.dataItem) {
|
|
3602
|
-
this.handleVerticalArrowSelection(step);
|
|
3603
|
-
}
|
|
3604
|
-
}
|
|
3605
|
-
else {
|
|
3606
|
-
preventDefault = this.cursor.moveDown(step);
|
|
3607
|
-
}
|
|
3608
|
-
break;
|
|
3609
3614
|
case Keys.ArrowUp:
|
|
3615
|
+
if (rowspan > 1) {
|
|
3616
|
+
rowspanOffset = this.calculateRowspanOffset(dir, rowspan);
|
|
3617
|
+
step += rowspanOffset;
|
|
3618
|
+
}
|
|
3610
3619
|
if (args.shiftKey) {
|
|
3611
3620
|
if (this.ctx.grid.blockArrowSelection) {
|
|
3612
3621
|
return;
|
|
3613
3622
|
}
|
|
3614
|
-
preventDefault = this.cursor
|
|
3623
|
+
preventDefault = this.cursor[`move${dir}`](step);
|
|
3615
3624
|
if (this.activeRow?.dataItem) {
|
|
3616
|
-
|
|
3625
|
+
const sign = dir === 'Down' ? 1 : -1;
|
|
3626
|
+
this.handleVerticalArrowSelection(sign * step);
|
|
3617
3627
|
}
|
|
3618
3628
|
}
|
|
3619
3629
|
else {
|
|
3620
|
-
preventDefault = this.cursor
|
|
3630
|
+
preventDefault = this.cursor[`move${dir}`](step);
|
|
3621
3631
|
}
|
|
3632
|
+
this.lastCellRowIndex = this.activeRowIndex;
|
|
3622
3633
|
break;
|
|
3623
3634
|
case Keys.ArrowRight:
|
|
3624
|
-
if (args.altKey && this.ctx.grid.resizable && this.isColumnResizable) {
|
|
3625
|
-
this.columnResize(true);
|
|
3626
|
-
break;
|
|
3627
|
-
}
|
|
3628
|
-
if (args.shiftKey) {
|
|
3629
|
-
if (this.ctx.grid.blockArrowSelection) {
|
|
3630
|
-
return;
|
|
3631
|
-
}
|
|
3632
|
-
preventDefault = this.moveCursorFwd();
|
|
3633
|
-
this.handleHorizontalArrowSelection(args);
|
|
3634
|
-
}
|
|
3635
|
-
else {
|
|
3636
|
-
preventDefault = this.moveCursorFwd();
|
|
3637
|
-
}
|
|
3638
|
-
break;
|
|
3639
3635
|
case Keys.ArrowLeft:
|
|
3640
3636
|
if (args.altKey && this.ctx.grid.resizable && this.isColumnResizable) {
|
|
3641
|
-
this.columnResize(
|
|
3637
|
+
this.columnResize(right);
|
|
3642
3638
|
break;
|
|
3643
3639
|
}
|
|
3644
3640
|
if (args.shiftKey) {
|
|
3645
3641
|
if (this.ctx.grid.blockArrowSelection) {
|
|
3646
3642
|
return;
|
|
3647
3643
|
}
|
|
3648
|
-
preventDefault = this
|
|
3644
|
+
preventDefault = this[`moveCursor${right ? 'Fwd' : 'Bwd'}`]();
|
|
3649
3645
|
this.handleHorizontalArrowSelection(args);
|
|
3650
3646
|
}
|
|
3651
3647
|
else {
|
|
3652
|
-
preventDefault = this
|
|
3648
|
+
preventDefault = this[`moveCursor${right ? 'Fwd' : 'Bwd'}`]();
|
|
3653
3649
|
}
|
|
3654
3650
|
break;
|
|
3655
3651
|
case Keys.PageDown:
|
|
@@ -3902,6 +3898,13 @@ class NavigationService {
|
|
|
3902
3898
|
const ev = rowSelectionService.selectRange(startRowIndex, endRowIndex);
|
|
3903
3899
|
rowSelectionService.changes.emit(ev);
|
|
3904
3900
|
}
|
|
3901
|
+
calculateRowspanOffset(direction, cellRowspan) {
|
|
3902
|
+
if (!isPresent$1(this.lastCellRowIndex)) {
|
|
3903
|
+
return 0;
|
|
3904
|
+
}
|
|
3905
|
+
const offset = direction === 'Up' ? Math.abs(this.lastCellRowIndex - this.activeRowIndex) : (this.activeRowIndex + cellRowspan - this.lastCellRowIndex - 1);
|
|
3906
|
+
return offset;
|
|
3907
|
+
}
|
|
3905
3908
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService, deps: [{ token: i0.NgZone }, { token: DomEventsService }, { token: i44.PagerContextService }, { token: ScrollRequestService }, { token: GroupsService }, { token: DetailsService }, { token: FocusRoot }, { token: EditService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: ColumnResizingService }, { token: FocusableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3906
3909
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationService });
|
|
3907
3910
|
}
|
|
@@ -3957,13 +3960,13 @@ class DraggableColumnDirective {
|
|
|
3957
3960
|
this.renderer = renderer;
|
|
3958
3961
|
}
|
|
3959
3962
|
ngOnInit() {
|
|
3960
|
-
this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(filter(
|
|
3963
|
+
this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(filter(() => this.enabled), filter(({ originalEvent: { target } }) => target === this.element.nativeElement || skipButtons(target)), tap((e) => {
|
|
3961
3964
|
const originalEvent = e.originalEvent;
|
|
3962
3965
|
if (!e.isTouch) {
|
|
3963
3966
|
originalEvent.preventDefault();
|
|
3964
3967
|
}
|
|
3965
3968
|
this.nav.navigateTo(originalEvent.target);
|
|
3966
|
-
}), switchMap(preventOnDblClick$1(this.draggable.kendoRelease)), tap((
|
|
3969
|
+
}), switchMap(preventOnDblClick$1(this.draggable.kendoRelease)), tap(() => {
|
|
3967
3970
|
this.hint.create(this.context.hint);
|
|
3968
3971
|
this.cue.create();
|
|
3969
3972
|
}), switchMap(down => this.draggable.kendoDrag.pipe(tap((e) => {
|
|
@@ -4269,7 +4272,7 @@ class ColGroupComponent {
|
|
|
4269
4272
|
get columnsToRender() {
|
|
4270
4273
|
return columnsToRender(this.columns);
|
|
4271
4274
|
}
|
|
4272
|
-
trackBy(index
|
|
4275
|
+
trackBy(index) {
|
|
4273
4276
|
return index;
|
|
4274
4277
|
}
|
|
4275
4278
|
isSorted(column) {
|
|
@@ -4758,6 +4761,9 @@ class LogicalCellDirective {
|
|
|
4758
4761
|
return this.idService.cellId(this.logicalRowIndex, this.logicalColIndex);
|
|
4759
4762
|
}
|
|
4760
4763
|
}
|
|
4764
|
+
get cellRowspan() {
|
|
4765
|
+
return String(this.rowSpan);
|
|
4766
|
+
}
|
|
4761
4767
|
get ariaColIndex() {
|
|
4762
4768
|
if (this.logicalSlaveCell || this.logicalColIndex === -1) {
|
|
4763
4769
|
return undefined;
|
|
@@ -4864,7 +4870,7 @@ class LogicalCellDirective {
|
|
|
4864
4870
|
return this.navigationService.isCellFocused(this);
|
|
4865
4871
|
}
|
|
4866
4872
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogicalCellDirective, deps: [{ token: FocusGroup }, { token: i0.ElementRef }, { token: ColumnInfoService }, { token: IdService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: CELL_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4867
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LogicalCellDirective, isStandalone: true, selector: "[kendoGridLogicalCell]", inputs: { logicalColIndex: "logicalColIndex", logicalRowIndex: "logicalRowIndex", logicalSlaveCell: "logicalSlaveCell", colIndex: "colIndex", colSpan: "colSpan", rowSpan: "rowSpan", groupItem: "groupItem", dataRowIndex: "dataRowIndex", dataItem: "dataItem", detailExpandCell: "detailExpandCell", headerLabelText: "headerLabelText" }, host: { properties: { "attr.id": "this.id", "attr.aria-colindex": "this.ariaColIndex" } }, providers: [{
|
|
4873
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LogicalCellDirective, isStandalone: true, selector: "[kendoGridLogicalCell]", inputs: { logicalColIndex: "logicalColIndex", logicalRowIndex: "logicalRowIndex", logicalSlaveCell: "logicalSlaveCell", colIndex: "colIndex", colSpan: "colSpan", rowSpan: "rowSpan", groupItem: "groupItem", dataRowIndex: "dataRowIndex", dataItem: "dataItem", detailExpandCell: "detailExpandCell", headerLabelText: "headerLabelText" }, host: { properties: { "attr.id": "this.id", "attr.rowspan": "this.cellRowspan", "attr.aria-colindex": "this.ariaColIndex" } }, providers: [{
|
|
4868
4874
|
provide: FocusGroup,
|
|
4869
4875
|
deps: [FocusRoot],
|
|
4870
4876
|
useClass: FocusGroup
|
|
@@ -4911,6 +4917,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4911
4917
|
}], id: [{
|
|
4912
4918
|
type: HostBinding,
|
|
4913
4919
|
args: ['attr.id']
|
|
4920
|
+
}], cellRowspan: [{
|
|
4921
|
+
type: HostBinding,
|
|
4922
|
+
args: ['attr.rowspan']
|
|
4914
4923
|
}], ariaColIndex: [{
|
|
4915
4924
|
type: HostBinding,
|
|
4916
4925
|
args: ['attr.aria-colindex']
|
|
@@ -5719,7 +5728,7 @@ class GroupPanelComponent {
|
|
|
5719
5728
|
.reduce((acc, target) => merge(acc, target.leave), from([]));
|
|
5720
5729
|
const dropStream = this.dropTargets
|
|
5721
5730
|
.reduce((acc, target) => merge(acc, target.drop), from([]));
|
|
5722
|
-
this.targetSubscription.add(enterStream.pipe(tap(
|
|
5731
|
+
this.targetSubscription.add(enterStream.pipe(tap(() => {
|
|
5723
5732
|
this.hint.removeLock();
|
|
5724
5733
|
this.destroyMenu();
|
|
5725
5734
|
}), filter(({ draggable, target }) => this.canDrop(draggable.context, target.context)), tap(this.enter.bind(this)), switchMapTo(dropStream.pipe(takeUntil(leaveStream.pipe(tap(this.leave.bind(this))))))).subscribe(this.drop.bind(this)));
|
|
@@ -14243,7 +14252,7 @@ class PDFComponent extends PDFExportComponent {
|
|
|
14243
14252
|
/**
|
|
14244
14253
|
* @hidden
|
|
14245
14254
|
*/
|
|
14246
|
-
saveAs(
|
|
14255
|
+
saveAs() {
|
|
14247
14256
|
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
|
|
14248
14257
|
}
|
|
14249
14258
|
/**
|
|
@@ -14927,7 +14936,7 @@ class CellSelectionAggregateService {
|
|
|
14927
14936
|
return true;
|
|
14928
14937
|
}
|
|
14929
14938
|
init() {
|
|
14930
|
-
this.sub.add(this.ctx.grid.dataStateChange.subscribe(
|
|
14939
|
+
this.sub.add(this.ctx.grid.dataStateChange.subscribe(() => {
|
|
14931
14940
|
// nullifies aggregates and sets default count to avoid mismatching state -
|
|
14932
14941
|
// https://github.com/telerik/kendo-angular-private/issues/2964
|
|
14933
14942
|
this.nullifyAggregates();
|
|
@@ -16241,7 +16250,7 @@ class HeaderComponent {
|
|
|
16241
16250
|
}
|
|
16242
16251
|
canDrop(draggable, target) {
|
|
16243
16252
|
isDocumentAvailable() && this.zone.runOutsideAngular(() => {
|
|
16244
|
-
document.addEventListener('pointerup',
|
|
16253
|
+
document.addEventListener('pointerup', () => {
|
|
16245
16254
|
this.stopSorting = true;
|
|
16246
16255
|
setTimeout(() => this.stopSorting = false);
|
|
16247
16256
|
}, {
|
|
@@ -16266,7 +16275,7 @@ class HeaderComponent {
|
|
|
16266
16275
|
isCheckboxColumn(column) {
|
|
16267
16276
|
return isCheckboxColumn(column) && !column.templateRef;
|
|
16268
16277
|
}
|
|
16269
|
-
trackByIndex(index
|
|
16278
|
+
trackByIndex(index) {
|
|
16270
16279
|
return index;
|
|
16271
16280
|
}
|
|
16272
16281
|
addStickyStyles(column) {
|
|
@@ -16919,7 +16928,7 @@ class FooterComponent {
|
|
|
16919
16928
|
get columnsToRender() {
|
|
16920
16929
|
return columnsToRender(this.columns || []);
|
|
16921
16930
|
}
|
|
16922
|
-
trackByIndex(index
|
|
16931
|
+
trackByIndex(index) {
|
|
16923
16932
|
return index;
|
|
16924
16933
|
}
|
|
16925
16934
|
logicalColumnIndex(column) {
|
|
@@ -17518,7 +17527,7 @@ class CellComponent {
|
|
|
17518
17527
|
ngDoCheck() {
|
|
17519
17528
|
this.updateCellContext();
|
|
17520
17529
|
}
|
|
17521
|
-
ngOnChanges(
|
|
17530
|
+
ngOnChanges() {
|
|
17522
17531
|
this.updateTemplateContext();
|
|
17523
17532
|
}
|
|
17524
17533
|
ngAfterContentChecked() {
|
|
@@ -17772,6 +17781,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17772
17781
|
type: Input
|
|
17773
17782
|
}] } });
|
|
17774
17783
|
|
|
17784
|
+
/**
|
|
17785
|
+
* @hidden
|
|
17786
|
+
*/
|
|
17787
|
+
class RowspanService {
|
|
17788
|
+
skipCells = [];
|
|
17789
|
+
addCells(rowIndex, colIndex, rowspan) {
|
|
17790
|
+
for (let i = 1; i < rowspan; i++) {
|
|
17791
|
+
if (!this.skipCells.some(this.cellExists(rowIndex + i, colIndex))) {
|
|
17792
|
+
this.skipCells.push({ rowIndex: rowIndex + i, colIndex });
|
|
17793
|
+
}
|
|
17794
|
+
}
|
|
17795
|
+
}
|
|
17796
|
+
reset() {
|
|
17797
|
+
this.skipCells = [];
|
|
17798
|
+
}
|
|
17799
|
+
shouldSkip(rowIndex, colIndex) {
|
|
17800
|
+
return !!this.skipCells.find(this.cellExists(rowIndex, colIndex));
|
|
17801
|
+
}
|
|
17802
|
+
cellExists = (rowIndex, colIndex) => cell => cell.rowIndex === rowIndex && cell.colIndex === colIndex;
|
|
17803
|
+
}
|
|
17804
|
+
|
|
17775
17805
|
const columnCellIndex = (cell, cells) => {
|
|
17776
17806
|
let cellIndex = 0;
|
|
17777
17807
|
for (let idx = 0; idx < cells.length; idx++) {
|
|
@@ -17800,6 +17830,7 @@ class TableBodyComponent {
|
|
|
17800
17830
|
cellSelectionService;
|
|
17801
17831
|
columnInfoService;
|
|
17802
17832
|
navigationService;
|
|
17833
|
+
rowspanService;
|
|
17803
17834
|
columns = [];
|
|
17804
17835
|
allColumns;
|
|
17805
17836
|
groups = [];
|
|
@@ -17822,6 +17853,7 @@ class TableBodyComponent {
|
|
|
17822
17853
|
trackBy = defaultTrackBy;
|
|
17823
17854
|
rowSticky;
|
|
17824
17855
|
totalColumns;
|
|
17856
|
+
rowClass = () => null;
|
|
17825
17857
|
hostClass = true;
|
|
17826
17858
|
groupHeaderSlaveCellsCount;
|
|
17827
17859
|
groupHeaderColumns;
|
|
@@ -17832,8 +17864,9 @@ class TableBodyComponent {
|
|
|
17832
17864
|
clickTimeout;
|
|
17833
17865
|
minusIcon = minusIcon;
|
|
17834
17866
|
plusIcon = plusIcon;
|
|
17835
|
-
|
|
17836
|
-
|
|
17867
|
+
dataArray;
|
|
17868
|
+
rerender = false;
|
|
17869
|
+
constructor(detailsService, groupsService, changeNotification, editService, ctx, ngZone, renderer, element, domEvents, selectionService, cellSelectionService, columnInfoService, navigationService, rowspanService) {
|
|
17837
17870
|
this.detailsService = detailsService;
|
|
17838
17871
|
this.groupsService = groupsService;
|
|
17839
17872
|
this.changeNotification = changeNotification;
|
|
@@ -17847,6 +17880,7 @@ class TableBodyComponent {
|
|
|
17847
17880
|
this.cellSelectionService = cellSelectionService;
|
|
17848
17881
|
this.columnInfoService = columnInfoService;
|
|
17849
17882
|
this.navigationService = navigationService;
|
|
17883
|
+
this.rowspanService = rowspanService;
|
|
17850
17884
|
this.noRecordsText = this.ctx.localization.get('noRecords');
|
|
17851
17885
|
this.cellKeydownSubscription = this.navigationService.cellKeydown.subscribe((args) => this.cellKeydownHandler(args));
|
|
17852
17886
|
this.trackByWrapper = this.trackByWrapper.bind(this);
|
|
@@ -17855,6 +17889,12 @@ class TableBodyComponent {
|
|
|
17855
17889
|
get newDataItem() {
|
|
17856
17890
|
return this.editService.newDataItem;
|
|
17857
17891
|
}
|
|
17892
|
+
get cachedDataArray() {
|
|
17893
|
+
if (!this.dataArray) {
|
|
17894
|
+
this.dataArray = this.data.map(item => item);
|
|
17895
|
+
}
|
|
17896
|
+
return this.dataArray;
|
|
17897
|
+
}
|
|
17858
17898
|
// Number of unlocked columns in the next table, if any
|
|
17859
17899
|
unlockedColumnsCount(item) {
|
|
17860
17900
|
const allColumns = this.allColumns || this.columns;
|
|
@@ -17868,6 +17908,24 @@ class TableBodyComponent {
|
|
|
17868
17908
|
const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - (this.allColumns || this.columns).length;
|
|
17869
17909
|
return item && this.isDataItem(item) ? contentColumnsCount : headerFooterColumnsCount;
|
|
17870
17910
|
}
|
|
17911
|
+
shouldSkipCell(rowIndex, colIndex) {
|
|
17912
|
+
return this.rowspanService.shouldSkip(rowIndex, colIndex);
|
|
17913
|
+
}
|
|
17914
|
+
getRowspan(row, column, colIndex) {
|
|
17915
|
+
if (this.rerender) {
|
|
17916
|
+
this.dataArray = null;
|
|
17917
|
+
this.rerender = false;
|
|
17918
|
+
}
|
|
17919
|
+
const rowspan = column.cellRowspan(row, column, this.cachedDataArray);
|
|
17920
|
+
if (rowspan > 1) {
|
|
17921
|
+
this.rowspanService.addCells(row.index, colIndex, rowspan);
|
|
17922
|
+
}
|
|
17923
|
+
this.ngZone.runOutsideAngular(() => setTimeout(() => {
|
|
17924
|
+
this.rerender = true;
|
|
17925
|
+
this.rowspanService.reset();
|
|
17926
|
+
}));
|
|
17927
|
+
return rowspan;
|
|
17928
|
+
}
|
|
17871
17929
|
isAriaSelected(item, column) {
|
|
17872
17930
|
return this.cellSelectionService.isCellSelected(item, column) ||
|
|
17873
17931
|
this.isRowSelected(item) ? 'true' : 'false';
|
|
@@ -18171,7 +18229,7 @@ class TableBodyComponent {
|
|
|
18171
18229
|
});
|
|
18172
18230
|
}
|
|
18173
18231
|
}
|
|
18174
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableBodyComponent, deps: [{ token: DetailsService }, { token: GroupsService }, { token: ChangeNotificationService }, { token: EditService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DomEventsService }, { token: SelectionService }, { token: CellSelectionService }, { token: ColumnInfoService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18232
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableBodyComponent, deps: [{ token: DetailsService }, { token: GroupsService }, { token: ChangeNotificationService }, { token: EditService }, { token: ContextService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DomEventsService }, { token: SelectionService }, { token: CellSelectionService }, { token: ColumnInfoService }, { token: NavigationService }, { token: RowspanService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18175
18233
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableBodyComponent, isStandalone: true, selector: "[kendoGridTableBody]", inputs: { columns: "columns", allColumns: "allColumns", groups: "groups", detailTemplate: "detailTemplate", noRecordsTemplate: "noRecordsTemplate", data: "data", skip: "skip", selectable: "selectable", filterable: "filterable", noRecordsText: "noRecordsText", isLocked: "isLocked", isLoading: "isLoading", isVirtual: "isVirtual", cellLoadingTemplate: "cellLoadingTemplate", skipGroupDecoration: "skipGroupDecoration", showGroupFooters: "showGroupFooters", lockedColumnsCount: "lockedColumnsCount", totalColumnsCount: "totalColumnsCount", virtualColumns: "virtualColumns", trackBy: "trackBy", rowSticky: "rowSticky", totalColumns: "totalColumns", rowClass: "rowClass" }, host: { properties: { "class.k-table-tbody": "this.hostClass" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
18176
18234
|
<ng-container *ngIf="editService.hasNewItem">
|
|
18177
18235
|
<tr class="k-grid-add-row k-grid-edit-row k-master-row"
|
|
@@ -18287,35 +18345,41 @@ class TableBodyComponent {
|
|
|
18287
18345
|
[svgIcon]="detailButtonSvgIcon(item)"></kendo-icon-wrapper>
|
|
18288
18346
|
</a>
|
|
18289
18347
|
</td>
|
|
18290
|
-
<
|
|
18291
|
-
|
|
18292
|
-
|
|
18293
|
-
|
|
18294
|
-
|
|
18295
|
-
|
|
18296
|
-
|
|
18297
|
-
|
|
18298
|
-
|
|
18299
|
-
|
|
18300
|
-
|
|
18301
|
-
|
|
18302
|
-
|
|
18303
|
-
|
|
18304
|
-
|
|
18305
|
-
|
|
18306
|
-
|
|
18307
|
-
|
|
18308
|
-
|
|
18309
|
-
|
|
18310
|
-
|
|
18311
|
-
|
|
18312
|
-
|
|
18313
|
-
|
|
18314
|
-
|
|
18315
|
-
|
|
18316
|
-
|
|
18317
|
-
|
|
18318
|
-
|
|
18348
|
+
<ng-container *ngFor="let column of columns; let columnIndex = index; trackBy: trackByColumns;">
|
|
18349
|
+
<td *ngIf="column.cellRowspan ? !shouldSkipCell(rowIndex, lockedColumnsCount + columnIndex) : true"
|
|
18350
|
+
kendoGridCell
|
|
18351
|
+
[rowIndex]="$any(item).index"
|
|
18352
|
+
[columnIndex]="lockedColumnsCount + columnIndex"
|
|
18353
|
+
[attr.data-kendo-grid-column-index]="lockedColumnsCount + columnIndex"
|
|
18354
|
+
[column]="column"
|
|
18355
|
+
[dataItem]="item.data"
|
|
18356
|
+
[isLoading]="isLoading"
|
|
18357
|
+
[isVirtual]="isVirtual"
|
|
18358
|
+
[loadingTemplate]="cellLoadingTemplate"
|
|
18359
|
+
kendoGridLogicalCell
|
|
18360
|
+
[logicalRowIndex]="logicalRowIndex(rowIndex)"
|
|
18361
|
+
[logicalColIndex]="logicalColIndex(column)"
|
|
18362
|
+
[dataRowIndex]="$any(item).index"
|
|
18363
|
+
[dataItem]="item.data"
|
|
18364
|
+
[colIndex]="columnIndex"
|
|
18365
|
+
[colSpan]="column.colspan"
|
|
18366
|
+
[rowSpan]="column.cellRowspan ? getRowspan({
|
|
18367
|
+
index: rowIndex,
|
|
18368
|
+
dataItem: item
|
|
18369
|
+
}, column, lockedColumnsCount + columnIndex) : 1"
|
|
18370
|
+
[attr.role]="column.tableCellsRole"
|
|
18371
|
+
class="k-table-td"
|
|
18372
|
+
[attr.aria-selected]="lockedColumnsCount < 1 && isSelectable({ dataItem: item.data, index: $any(item).index }) ? isAriaSelected(item, column) : undefined"
|
|
18373
|
+
[class.k-grid-content-sticky]="column.sticky"
|
|
18374
|
+
[class.k-touch-action-none]="isSelectable({ dataItem: item.data, index: $any(item).index }) && $any(selectable).drag"
|
|
18375
|
+
[ngClass]="column.cssClass"
|
|
18376
|
+
[class.k-grid-edit-cell]="isEditingCell($any(item).index, column)"
|
|
18377
|
+
[ngStyle]="column.sticky ? addStickyColumnStyles(column) : column.style"
|
|
18378
|
+
[attr.colspan]="column.colspan"
|
|
18379
|
+
[class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)"
|
|
18380
|
+
>
|
|
18381
|
+
</td>
|
|
18382
|
+
</ng-container>
|
|
18319
18383
|
</tr>
|
|
18320
18384
|
<tr *ngIf="isDataItem(item) &&
|
|
18321
18385
|
(!$any(item).group || isDataItemInExpandedGroup($any(item))) &&
|
|
@@ -18516,35 +18580,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18516
18580
|
[svgIcon]="detailButtonSvgIcon(item)"></kendo-icon-wrapper>
|
|
18517
18581
|
</a>
|
|
18518
18582
|
</td>
|
|
18519
|
-
<
|
|
18520
|
-
|
|
18521
|
-
|
|
18522
|
-
|
|
18523
|
-
|
|
18524
|
-
|
|
18525
|
-
|
|
18526
|
-
|
|
18527
|
-
|
|
18528
|
-
|
|
18529
|
-
|
|
18530
|
-
|
|
18531
|
-
|
|
18532
|
-
|
|
18533
|
-
|
|
18534
|
-
|
|
18535
|
-
|
|
18536
|
-
|
|
18537
|
-
|
|
18538
|
-
|
|
18539
|
-
|
|
18540
|
-
|
|
18541
|
-
|
|
18542
|
-
|
|
18543
|
-
|
|
18544
|
-
|
|
18545
|
-
|
|
18546
|
-
|
|
18547
|
-
|
|
18583
|
+
<ng-container *ngFor="let column of columns; let columnIndex = index; trackBy: trackByColumns;">
|
|
18584
|
+
<td *ngIf="column.cellRowspan ? !shouldSkipCell(rowIndex, lockedColumnsCount + columnIndex) : true"
|
|
18585
|
+
kendoGridCell
|
|
18586
|
+
[rowIndex]="$any(item).index"
|
|
18587
|
+
[columnIndex]="lockedColumnsCount + columnIndex"
|
|
18588
|
+
[attr.data-kendo-grid-column-index]="lockedColumnsCount + columnIndex"
|
|
18589
|
+
[column]="column"
|
|
18590
|
+
[dataItem]="item.data"
|
|
18591
|
+
[isLoading]="isLoading"
|
|
18592
|
+
[isVirtual]="isVirtual"
|
|
18593
|
+
[loadingTemplate]="cellLoadingTemplate"
|
|
18594
|
+
kendoGridLogicalCell
|
|
18595
|
+
[logicalRowIndex]="logicalRowIndex(rowIndex)"
|
|
18596
|
+
[logicalColIndex]="logicalColIndex(column)"
|
|
18597
|
+
[dataRowIndex]="$any(item).index"
|
|
18598
|
+
[dataItem]="item.data"
|
|
18599
|
+
[colIndex]="columnIndex"
|
|
18600
|
+
[colSpan]="column.colspan"
|
|
18601
|
+
[rowSpan]="column.cellRowspan ? getRowspan({
|
|
18602
|
+
index: rowIndex,
|
|
18603
|
+
dataItem: item
|
|
18604
|
+
}, column, lockedColumnsCount + columnIndex) : 1"
|
|
18605
|
+
[attr.role]="column.tableCellsRole"
|
|
18606
|
+
class="k-table-td"
|
|
18607
|
+
[attr.aria-selected]="lockedColumnsCount < 1 && isSelectable({ dataItem: item.data, index: $any(item).index }) ? isAriaSelected(item, column) : undefined"
|
|
18608
|
+
[class.k-grid-content-sticky]="column.sticky"
|
|
18609
|
+
[class.k-touch-action-none]="isSelectable({ dataItem: item.data, index: $any(item).index }) && $any(selectable).drag"
|
|
18610
|
+
[ngClass]="column.cssClass"
|
|
18611
|
+
[class.k-grid-edit-cell]="isEditingCell($any(item).index, column)"
|
|
18612
|
+
[ngStyle]="column.sticky ? addStickyColumnStyles(column) : column.style"
|
|
18613
|
+
[attr.colspan]="column.colspan"
|
|
18614
|
+
[class.k-selected]="isSelectable && cellSelectionService.isCellSelected(item, column)"
|
|
18615
|
+
>
|
|
18616
|
+
</td>
|
|
18617
|
+
</ng-container>
|
|
18548
18618
|
</tr>
|
|
18549
18619
|
<tr *ngIf="isDataItem(item) &&
|
|
18550
18620
|
(!$any(item).group || isDataItemInExpandedGroup($any(item))) &&
|
|
@@ -18631,7 +18701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18631
18701
|
GroupHeaderComponent, IconWrapperComponent, NgTemplateOutlet, ResizeSensorComponent
|
|
18632
18702
|
]
|
|
18633
18703
|
}]
|
|
18634
|
-
}], ctorParameters: function () { return [{ type: DetailsService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: EditService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: DomEventsService }, { type: SelectionService }, { type: CellSelectionService }, { type: ColumnInfoService }, { type: NavigationService }]; }, propDecorators: { columns: [{
|
|
18704
|
+
}], ctorParameters: function () { return [{ type: DetailsService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: EditService }, { type: ContextService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: DomEventsService }, { type: SelectionService }, { type: CellSelectionService }, { type: ColumnInfoService }, { type: NavigationService }, { type: RowspanService }]; }, propDecorators: { columns: [{
|
|
18635
18705
|
type: Input
|
|
18636
18706
|
}], allColumns: [{
|
|
18637
18707
|
type: Input
|
|
@@ -18675,11 +18745,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18675
18745
|
type: Input
|
|
18676
18746
|
}], totalColumns: [{
|
|
18677
18747
|
type: Input
|
|
18748
|
+
}], rowClass: [{
|
|
18749
|
+
type: Input
|
|
18678
18750
|
}], hostClass: [{
|
|
18679
18751
|
type: HostBinding,
|
|
18680
18752
|
args: ['class.k-table-tbody']
|
|
18681
|
-
}], rowClass: [{
|
|
18682
|
-
type: Input
|
|
18683
18753
|
}] } });
|
|
18684
18754
|
|
|
18685
18755
|
/**
|
|
@@ -19410,8 +19480,8 @@ const packageMetadata = {
|
|
|
19410
19480
|
productName: 'Kendo UI for Angular',
|
|
19411
19481
|
productCode: 'KENDOUIANGULAR',
|
|
19412
19482
|
productCodes: ['KENDOUIANGULAR'],
|
|
19413
|
-
publishDate:
|
|
19414
|
-
version: '18.0
|
|
19483
|
+
publishDate: 1738357372,
|
|
19484
|
+
version: '18.1.0-develop.10',
|
|
19415
19485
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
19416
19486
|
};
|
|
19417
19487
|
|
|
@@ -19965,7 +20035,7 @@ class Selection {
|
|
|
19965
20035
|
this.ctx.grid.rowSelected = (row) => this.rowSelectionState.has(this.getItemKey(row));
|
|
19966
20036
|
}
|
|
19967
20037
|
if (!isPresent(this.ctx.grid.isRowSelectable)) {
|
|
19968
|
-
this.ctx.grid.isRowSelectable = (
|
|
20038
|
+
this.ctx.grid.isRowSelectable = () => Boolean(this.ctx.grid.selectable);
|
|
19969
20039
|
}
|
|
19970
20040
|
if (!isPresent(this.ctx.grid.cellSelected)) {
|
|
19971
20041
|
this.ctx.grid.cellSelected = (row, column, colIndex) => {
|
|
@@ -21486,6 +21556,7 @@ class ListComponent {
|
|
|
21486
21556
|
changeDetector;
|
|
21487
21557
|
pdfService;
|
|
21488
21558
|
columnInfo;
|
|
21559
|
+
rowspanService;
|
|
21489
21560
|
hostClass = true;
|
|
21490
21561
|
hostRole = 'presentation';
|
|
21491
21562
|
data;
|
|
@@ -21542,6 +21613,7 @@ class ListComponent {
|
|
|
21542
21613
|
columnsEndIdx;
|
|
21543
21614
|
viewportColumnsWidth;
|
|
21544
21615
|
scrollLeft = 0;
|
|
21616
|
+
observer;
|
|
21545
21617
|
get lockedLeafColumns() {
|
|
21546
21618
|
return this.columns.lockedLeafColumns;
|
|
21547
21619
|
}
|
|
@@ -21573,7 +21645,7 @@ class ListComponent {
|
|
|
21573
21645
|
rtl = false;
|
|
21574
21646
|
columnUpdateFrame;
|
|
21575
21647
|
hasLockedContainer;
|
|
21576
|
-
constructor(scrollerFactory, detailsService, changeNotification, suspendService, groupsService, ngZone, renderer, scrollSyncService, resizeService, editService, supportService, navigationService, scrollRequestService, ctx, columnResizingService, changeDetector, pdfService, columnInfo) {
|
|
21648
|
+
constructor(scrollerFactory, detailsService, changeNotification, suspendService, groupsService, ngZone, renderer, scrollSyncService, resizeService, editService, supportService, navigationService, scrollRequestService, ctx, columnResizingService, changeDetector, pdfService, columnInfo, rowspanService) {
|
|
21577
21649
|
this.changeNotification = changeNotification;
|
|
21578
21650
|
this.suspendService = suspendService;
|
|
21579
21651
|
this.groupsService = groupsService;
|
|
@@ -21589,6 +21661,7 @@ class ListComponent {
|
|
|
21589
21661
|
this.changeDetector = changeDetector;
|
|
21590
21662
|
this.pdfService = pdfService;
|
|
21591
21663
|
this.columnInfo = columnInfo;
|
|
21664
|
+
this.rowspanService = rowspanService;
|
|
21592
21665
|
this.scroller = scrollerFactory(this.dispatcher);
|
|
21593
21666
|
this.subscriptions = detailsService.changes.subscribe(x => this.detailExpand(x));
|
|
21594
21667
|
this.subscriptions.add(scrollRequestService.requests.subscribe(req => isPresent(req.adjustIndex) ? this.scrollTo(req.request, req.adjustIndex) : this.scrollToItem(req.request)));
|
|
@@ -21660,6 +21733,7 @@ class ListComponent {
|
|
|
21660
21733
|
if (this.resizeService) {
|
|
21661
21734
|
this.resizeService.destroy();
|
|
21662
21735
|
}
|
|
21736
|
+
this.observer?.disconnect();
|
|
21663
21737
|
this.cleanupScroller();
|
|
21664
21738
|
}
|
|
21665
21739
|
init() {
|
|
@@ -21765,7 +21839,7 @@ class ListComponent {
|
|
|
21765
21839
|
const shouldScroll = () => this.isVirtual && this.skip > 0 && this.total > 0;
|
|
21766
21840
|
const sub = this.changeNotification.changes
|
|
21767
21841
|
.pipe(filter(shouldScroll))
|
|
21768
|
-
.subscribe(
|
|
21842
|
+
.subscribe(() => {
|
|
21769
21843
|
this.scrollTo({ row: this.skip });
|
|
21770
21844
|
sub.unsubscribe();
|
|
21771
21845
|
});
|
|
@@ -21776,7 +21850,10 @@ class ListComponent {
|
|
|
21776
21850
|
return merge(this.changeNotification.changes, this.groupsService.changes
|
|
21777
21851
|
.pipe(filter(isLocked), switchMapTo(onStable())), this.editService.changed, this.resizeService.changes, this.columnResizingService.changes
|
|
21778
21852
|
.pipe(filter(change => change.type === 'end')), this.supportService.changes)
|
|
21779
|
-
.pipe(tap(() =>
|
|
21853
|
+
.pipe(tap(() => {
|
|
21854
|
+
this.ngZone.run(() => this.rowspanService.reset());
|
|
21855
|
+
this.resetNavigationViewport();
|
|
21856
|
+
}), filter(isLocked))
|
|
21780
21857
|
.subscribe(() => {
|
|
21781
21858
|
const scrollTop = this.container.nativeElement.scrollTop;
|
|
21782
21859
|
const scrollLeft = this.container.nativeElement.scrollLeft;
|
|
@@ -22019,7 +22096,7 @@ class ListComponent {
|
|
|
22019
22096
|
}
|
|
22020
22097
|
return element.offsetLeft;
|
|
22021
22098
|
}
|
|
22022
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [{ token: SCROLLER_FACTORY_TOKEN }, { token: DetailsService }, { token: ChangeNotificationService }, { token: SuspendService }, { token: GroupsService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }, { token: ResizeService }, { token: EditService }, { token: BrowserSupportService }, { token: NavigationService }, { token: ScrollRequestService }, { token: ContextService }, { token: ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: PDFService }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22099
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [{ token: SCROLLER_FACTORY_TOKEN }, { token: DetailsService }, { token: ChangeNotificationService }, { token: SuspendService }, { token: GroupsService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: ScrollSyncService }, { token: ResizeService }, { token: EditService }, { token: BrowserSupportService }, { token: NavigationService }, { token: ScrollRequestService }, { token: ContextService }, { token: ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: PDFService }, { token: ColumnInfoService }, { token: RowspanService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22023
22100
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListComponent, isStandalone: true, selector: "kendo-grid-list", inputs: { data: "data", groups: "groups", total: "total", rowHeight: "rowHeight", stickyRowHeight: "stickyRowHeight", detailRowHeight: "detailRowHeight", take: "take", skip: "skip", columns: "columns", detailTemplate: "detailTemplate", noRecordsTemplate: "noRecordsTemplate", selectable: "selectable", groupable: "groupable", filterable: "filterable", rowClass: "rowClass", rowSticky: "rowSticky", loading: "loading", trackBy: "trackBy", virtualColumns: "virtualColumns", isVirtual: "isVirtual", cellLoadingTemplate: "cellLoadingTemplate", loadingTemplate: "loadingTemplate", sort: "sort", size: "size" }, outputs: { contentScroll: "contentScroll", pageChange: "pageChange", scrollBottom: "scrollBottom" }, host: { properties: { "class.k-grid-container": "this.hostClass", "attr.role": "this.hostRole" } }, providers: [
|
|
22024
22101
|
{
|
|
22025
22102
|
provide: SCROLLER_FACTORY_TOKEN,
|
|
@@ -22266,7 +22343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
22266
22343
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
22267
22344
|
type: Inject,
|
|
22268
22345
|
args: [SCROLLER_FACTORY_TOKEN]
|
|
22269
|
-
}] }, { type: DetailsService }, { type: ChangeNotificationService }, { type: SuspendService }, { type: GroupsService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }, { type: ResizeService }, { type: EditService }, { type: BrowserSupportService }, { type: NavigationService }, { type: ScrollRequestService }, { type: ContextService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: ColumnInfoService }]; }, propDecorators: { hostClass: [{
|
|
22346
|
+
}] }, { type: DetailsService }, { type: ChangeNotificationService }, { type: SuspendService }, { type: GroupsService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ScrollSyncService }, { type: ResizeService }, { type: EditService }, { type: BrowserSupportService }, { type: NavigationService }, { type: ScrollRequestService }, { type: ContextService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: ColumnInfoService }, { type: RowspanService }]; }, propDecorators: { hostClass: [{
|
|
22270
22347
|
type: HostBinding,
|
|
22271
22348
|
args: ['class.k-grid-container']
|
|
22272
22349
|
}], hostRole: [{
|
|
@@ -25052,7 +25129,7 @@ class GridComponent {
|
|
|
25052
25129
|
applyAutoSize() {
|
|
25053
25130
|
const cols = this.columns.filter((c) => this.autoSize ? c.autoSize !== false : c.autoSize);
|
|
25054
25131
|
if (cols.length > 0) {
|
|
25055
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(
|
|
25132
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.autoFitColumns(cols));
|
|
25056
25133
|
}
|
|
25057
25134
|
}
|
|
25058
25135
|
onColumnRangeChange(range) {
|
|
@@ -25196,7 +25273,8 @@ class GridComponent {
|
|
|
25196
25273
|
ContextService,
|
|
25197
25274
|
SizingOptionsService,
|
|
25198
25275
|
RowReorderService,
|
|
25199
|
-
ClipboardService
|
|
25276
|
+
ClipboardService,
|
|
25277
|
+
RowspanService
|
|
25200
25278
|
], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
|
|
25201
25279
|
<ng-container kendoGridLocalizedMessages
|
|
25202
25280
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
@@ -25903,7 +25981,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25903
25981
|
ContextService,
|
|
25904
25982
|
SizingOptionsService,
|
|
25905
25983
|
RowReorderService,
|
|
25906
|
-
ClipboardService
|
|
25984
|
+
ClipboardService,
|
|
25985
|
+
RowspanService
|
|
25907
25986
|
],
|
|
25908
25987
|
selector: 'kendo-grid',
|
|
25909
25988
|
template: `
|
|
@@ -27194,7 +27273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27194
27273
|
* @hidden
|
|
27195
27274
|
*/
|
|
27196
27275
|
class LocalRowEditService extends LocalEditService {
|
|
27197
|
-
update(
|
|
27276
|
+
update() {
|
|
27198
27277
|
this.dataChanged();
|
|
27199
27278
|
}
|
|
27200
27279
|
}
|