@progress/kendo-angular-grid 18.4.1-develop.2 → 18.5.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/column-menu/column-chooser.component.d.ts +0 -4
- package/column-menu/column-menu-item.component.d.ts +3 -4
- package/columns/column-base.d.ts +3 -2
- package/columns/column.component.d.ts +5 -5
- package/common/dom-events.service.d.ts +1 -0
- package/common/field-datatype.d.ts +9 -0
- package/directives.d.ts +5 -3
- package/editing/form/dialog-form.component.d.ts +27 -0
- package/editing/form/form-formfield.component.d.ts +24 -0
- package/editing/form/form.component.d.ts +28 -0
- package/editing/form/index.d.ts +8 -0
- package/editing/form/models.d.ts +196 -0
- package/editing-directives/editing-directive-base.d.ts +10 -3
- package/editing-directives/external-editing.directive.d.ts +46 -0
- package/esm2022/column-menu/column-chooser.component.mjs +2 -13
- package/esm2022/column-menu/column-list.component.mjs +53 -33
- package/esm2022/column-menu/column-menu-item.component.mjs +3 -4
- package/esm2022/columns/column-base.mjs +4 -0
- package/esm2022/columns/column.component.mjs +0 -4
- package/esm2022/common/dom-events.service.mjs +1 -0
- package/esm2022/common/field-datatype.mjs +5 -0
- package/esm2022/directives.mjs +8 -1
- package/esm2022/editing/edit.service.mjs +1 -1
- package/esm2022/editing/form/dialog-form.component.mjs +102 -0
- package/esm2022/editing/form/form-formfield.component.mjs +161 -0
- package/esm2022/editing/form/form.component.mjs +153 -0
- package/esm2022/editing/form/index.mjs +8 -0
- package/esm2022/editing/form/models.mjs +5 -0
- package/esm2022/editing-directives/editing-directive-base.mjs +33 -5
- package/esm2022/editing-directives/external-editing.directive.mjs +130 -0
- package/esm2022/filtering/cell/filter-cell-host.directive.mjs +5 -5
- package/esm2022/filtering/filter-host.directive.mjs +5 -7
- package/esm2022/filtering/menu/filter-menu-host.directive.mjs +5 -5
- package/esm2022/grid.component.mjs +78 -14
- package/esm2022/grid.module.mjs +15 -11
- package/esm2022/index.mjs +1 -0
- package/esm2022/localization/messages.mjs +62 -1
- package/esm2022/navigation/navigation.service.mjs +46 -16
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/footer/footer.component.mjs +12 -5
- package/esm2022/rendering/table-body.component.mjs +1 -1
- package/esm2022/selection/cell-selection.service.mjs +12 -4
- package/esm2022/selection/marquee.directive.mjs +7 -2
- package/esm2022/selection/selection.service.mjs +10 -6
- package/esm2022/utils.mjs +10 -1
- package/fesm2022/progress-kendo-angular-grid.mjs +858 -141
- package/filtering/cell/filter-cell-host.directive.d.ts +2 -2
- package/filtering/filter-host.directive.d.ts +2 -3
- package/filtering/menu/filter-menu-host.directive.d.ts +2 -2
- package/grid.component.d.ts +0 -6
- package/grid.module.d.ts +15 -11
- package/index.d.ts +3 -0
- package/localization/messages.d.ts +46 -1
- package/navigation/navigation.service.d.ts +2 -0
- package/package.json +19 -19
- package/rendering/footer/footer.component.d.ts +3 -1
- package/schematics/ngAdd/index.js +4 -4
- package/selection/cell-selection.service.d.ts +1 -1
- package/selection/selection.service.d.ts +2 -2
- package/selection/types.d.ts +5 -0
- package/utils.d.ts +5 -0
|
@@ -3,44 +3,49 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ViewEncapsulation, NgModule } from '@angular/core';
|
|
6
|
+
import { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ViewEncapsulation, inject, NgModule } from '@angular/core';
|
|
7
7
|
import { merge, of, Subject, zip as zip$1, from, Subscription, interval, fromEvent, Observable, BehaviorSubject } from 'rxjs';
|
|
8
8
|
import * as i1$3 from '@progress/kendo-angular-common';
|
|
9
9
|
import { isDocumentAvailable, Keys, isPresent as isPresent$1, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, closest as closest$1, isFocusable as isFocusable$1, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
10
10
|
import * as i1 from '@angular/platform-browser';
|
|
11
11
|
import * as i1$1 from '@progress/kendo-angular-icons';
|
|
12
12
|
import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
|
|
13
|
-
import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, columnsIcon, chevronUpIcon, chevronDownIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, filePdfIcon, fileExcelIcon } from '@progress/kendo-svg-icons';
|
|
13
|
+
import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, columnsIcon, chevronUpIcon, chevronDownIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, insertMiddleIcon, checkIcon, xIcon, saveIcon, filePdfIcon, fileExcelIcon } from '@progress/kendo-svg-icons';
|
|
14
14
|
import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, skip, auditTime, bufferCount } from 'rxjs/operators';
|
|
15
15
|
import * as i1$2 from '@progress/kendo-angular-l10n';
|
|
16
16
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
17
17
|
import * as i44 from '@progress/kendo-angular-pager';
|
|
18
18
|
import { PagerContextService, PagerNavigationService, PagerTemplateDirective, KENDO_PAGER } from '@progress/kendo-angular-pager';
|
|
19
19
|
import { orderBy, isCompositeFilterDescriptor, groupBy, process, filterBy } from '@progress/kendo-data-query';
|
|
20
|
-
import { NgFor, NgIf, NgTemplateOutlet, NgSwitch, NgSwitchCase, NgClass, NgStyle, NgSwitchDefault } from '@angular/common';
|
|
20
|
+
import { NgFor, NgIf, NgTemplateOutlet, NgSwitch, NgSwitchCase, NgClass, NgStyle, NgSwitchDefault, KeyValuePipe } from '@angular/common';
|
|
21
21
|
import { getter } from '@progress/kendo-common';
|
|
22
22
|
import * as i1$4 from '@progress/kendo-angular-intl';
|
|
23
23
|
import * as i5 from '@progress/kendo-angular-popup';
|
|
24
24
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
25
|
-
import
|
|
25
|
+
import * as i2 from '@progress/kendo-angular-buttons';
|
|
26
|
+
import { ChipListComponent, ChipComponent, ButtonComponent, Button, KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
|
26
27
|
import * as i1$5 from '@progress/kendo-angular-dropdowns';
|
|
27
28
|
import { DropDownListComponent, AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
|
|
28
29
|
import * as i4 from '@angular/forms';
|
|
29
30
|
import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms';
|
|
30
|
-
import * as
|
|
31
|
-
import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
32
|
-
import
|
|
31
|
+
import * as i4$1 from '@progress/kendo-angular-inputs';
|
|
32
|
+
import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_CHECKBOX } from '@progress/kendo-angular-inputs';
|
|
33
|
+
import * as i5$1 from '@progress/kendo-angular-dateinputs';
|
|
34
|
+
import { DatePickerComponent, DatePickerCustomMessagesComponent, KENDO_DATEPICKER, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1 } from '@progress/kendo-angular-dateinputs';
|
|
33
35
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
34
36
|
import { TabStripComponent, TabStripTabComponent, TabTitleDirective, TabContentDirective } from '@progress/kendo-angular-layout';
|
|
35
37
|
import { saveAs } from '@progress/kendo-file-saver';
|
|
36
|
-
import * as i5$
|
|
38
|
+
import * as i5$2 from '@progress/kendo-angular-excel-export';
|
|
37
39
|
import { workbookOptions, toDataURL, ColumnBase as ColumnBase$1, ColumnComponent as ColumnComponent$1, ColumnGroupComponent as ColumnGroupComponent$1, FooterTemplateDirective as FooterTemplateDirective$1, GroupFooterTemplateDirective as GroupFooterTemplateDirective$1, GroupHeaderColumnTemplateDirective as GroupHeaderColumnTemplateDirective$1, GroupHeaderTemplateDirective as GroupHeaderTemplateDirective$1 } from '@progress/kendo-angular-excel-export';
|
|
38
40
|
import { PDFExportMarginComponent, PDFExportTemplateDirective, PDFExportComponent } from '@progress/kendo-angular-pdf-export';
|
|
39
41
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
40
42
|
import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
|
|
43
|
+
import * as i1$6 from '@progress/kendo-angular-dialog';
|
|
44
|
+
import { DialogContainerDirective, DialogService, DialogContentBase, DialogActionsComponent, DialogContainerService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
|
|
45
|
+
import * as i3 from '@progress/kendo-angular-label';
|
|
46
|
+
import { KENDO_LABELS } from '@progress/kendo-angular-label';
|
|
41
47
|
import * as i45 from '@progress/kendo-angular-toolbar';
|
|
42
48
|
import { KENDO_TOOLBAR } from '@progress/kendo-angular-toolbar';
|
|
43
|
-
import { DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
|
|
44
49
|
|
|
45
50
|
/* eslint-disable no-bitwise */
|
|
46
51
|
/**
|
|
@@ -444,7 +449,7 @@ const nodesToArray = (nodes) => [].slice.call(nodes);
|
|
|
444
449
|
/**
|
|
445
450
|
* @hidden
|
|
446
451
|
*/
|
|
447
|
-
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(
|
|
452
|
+
const replaceMessagePlaceholder = (message, name, value) => (message ?? '').replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
|
|
448
453
|
/**
|
|
449
454
|
* @hidden
|
|
450
455
|
*/
|
|
@@ -506,6 +511,15 @@ const findRowSpan = (data, index, field) => {
|
|
|
506
511
|
}
|
|
507
512
|
return rowspan;
|
|
508
513
|
};
|
|
514
|
+
/**
|
|
515
|
+
* @hidden
|
|
516
|
+
* Determines whether selection of multiple ranges is enabled in the selectable settings.
|
|
517
|
+
*/
|
|
518
|
+
const isMultipleRangesEnabled = (selectableSettings) => {
|
|
519
|
+
return selectableSettings &&
|
|
520
|
+
typeof selectableSettings === 'object' &&
|
|
521
|
+
selectableSettings.selectable.multipleRanges;
|
|
522
|
+
};
|
|
509
523
|
|
|
510
524
|
/**
|
|
511
525
|
* @hidden
|
|
@@ -1416,6 +1430,7 @@ class DomEventsService {
|
|
|
1416
1430
|
cellMouseup = new EventEmitter();
|
|
1417
1431
|
click = new EventEmitter();
|
|
1418
1432
|
keydown = new EventEmitter();
|
|
1433
|
+
shiftKeyup = new EventEmitter();
|
|
1419
1434
|
focus = new EventEmitter();
|
|
1420
1435
|
focusIn = new EventEmitter();
|
|
1421
1436
|
focusOut = new EventEmitter();
|
|
@@ -1629,7 +1644,7 @@ class EditService {
|
|
|
1629
1644
|
this.changes.emit({ action: 'edit', rowIndex });
|
|
1630
1645
|
}
|
|
1631
1646
|
beginAdd() {
|
|
1632
|
-
this.changes.emit({ action: 'add' });
|
|
1647
|
+
this.changes.emit({ action: 'add', isNew: true });
|
|
1633
1648
|
}
|
|
1634
1649
|
endEdit(rowIndex) {
|
|
1635
1650
|
const { group: formGroup } = this.context(rowIndex);
|
|
@@ -2467,6 +2482,10 @@ class ColumnBase {
|
|
|
2467
2482
|
throw new Error(ColumnConfigurationErrorMessages.columnNested);
|
|
2468
2483
|
}
|
|
2469
2484
|
}
|
|
2485
|
+
ngAfterViewInit() {
|
|
2486
|
+
this.initialMaxResizableWidth = this.maxResizableWidth;
|
|
2487
|
+
this.initialMinResizableWidth = this.minResizableWidth;
|
|
2488
|
+
}
|
|
2470
2489
|
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 });
|
|
2471
2490
|
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 }], ngImport: i0, template: ``, isInline: true });
|
|
2472
2491
|
}
|
|
@@ -2840,10 +2859,6 @@ class ColumnComponent extends ColumnBase {
|
|
|
2840
2859
|
get displayTitle() {
|
|
2841
2860
|
return this.title === undefined ? this.field : this.title;
|
|
2842
2861
|
}
|
|
2843
|
-
ngAfterViewInit() {
|
|
2844
|
-
this.initialMaxResizableWidth = this.maxResizableWidth;
|
|
2845
|
-
this.initialMinResizableWidth = this.minResizableWidth;
|
|
2846
|
-
}
|
|
2847
2862
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnComponent, deps: [{ token: ColumnBase, host: true, optional: true, skipSelf: true }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2848
2863
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnComponent, isStandalone: true, selector: "kendo-grid-column", inputs: { field: "field", format: "format", sortable: "sortable", groupable: "groupable", editor: "editor", filter: "filter", filterable: "filterable", editable: "editable" }, providers: [
|
|
2849
2864
|
{
|
|
@@ -3452,6 +3467,8 @@ class NavigationService {
|
|
|
3452
3467
|
tableIsNavigable = false;
|
|
3453
3468
|
toolbarIsNavigable = false;
|
|
3454
3469
|
lastCellRowIndex;
|
|
3470
|
+
isShiftPressed = false;
|
|
3471
|
+
currentSelection = [];
|
|
3455
3472
|
get activeDataRow() {
|
|
3456
3473
|
return Math.max(0, this.activeRowIndex - this.meta.headerRows);
|
|
3457
3474
|
}
|
|
@@ -3496,6 +3513,10 @@ class NavigationService {
|
|
|
3496
3513
|
.subscribe(() => this.cursor.reset(0, 0)));
|
|
3497
3514
|
this.subs.add(this.domEvents.keydown
|
|
3498
3515
|
.subscribe(args => this.onKeydown(args)));
|
|
3516
|
+
this.subs.add(this.domEvents.shiftKeyup
|
|
3517
|
+
.subscribe(() => {
|
|
3518
|
+
this.isShiftPressed = false;
|
|
3519
|
+
}));
|
|
3499
3520
|
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.keyCode === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(
|
|
3500
3521
|
// Timeout if focusOut doesn't fire very soon
|
|
3501
3522
|
interval(0).pipe(take(1))))))
|
|
@@ -3733,12 +3754,23 @@ class NavigationService {
|
|
|
3733
3754
|
let step = modifier ? 5 : 1;
|
|
3734
3755
|
const rowspan = +args.target?.getAttribute('rowspan');
|
|
3735
3756
|
let rowspanOffset = 0;
|
|
3757
|
+
let startNewSelection = false;
|
|
3758
|
+
const allowMultipleRanges = (this.ctx.grid.selectionService.active && this.ctx.grid.selectableSettings?.multipleRanges) ||
|
|
3759
|
+
(this.ctx.grid.cellSelectionService.active && this.ctx.grid.cellSelectionService?.options?.multipleRanges);
|
|
3760
|
+
if (!allowMultipleRanges) {
|
|
3761
|
+
this.currentSelection = [];
|
|
3762
|
+
}
|
|
3736
3763
|
if (!this.onCellKeydown(args)) {
|
|
3737
3764
|
return;
|
|
3738
3765
|
}
|
|
3739
3766
|
const row = this.cursor.row;
|
|
3740
3767
|
const dir = args.keyCode === Keys.ArrowDown ? 'Down' : 'Up';
|
|
3741
3768
|
const right = args.keyCode === Keys.ArrowRight;
|
|
3769
|
+
const isArrowKey = args.code === 'ArrowDown' || args.code === 'ArrowUp' || args.code === 'ArrowLeft' || args.code === 'ArrowRight';
|
|
3770
|
+
if (!this.isShiftPressed && args.shiftKey && isArrowKey) {
|
|
3771
|
+
startNewSelection = true;
|
|
3772
|
+
this.isShiftPressed = true;
|
|
3773
|
+
}
|
|
3742
3774
|
switch (args.keyCode) {
|
|
3743
3775
|
case Keys.ArrowDown:
|
|
3744
3776
|
case Keys.ArrowUp:
|
|
@@ -3751,9 +3783,10 @@ class NavigationService {
|
|
|
3751
3783
|
return;
|
|
3752
3784
|
}
|
|
3753
3785
|
preventDefault = this.cursor[`move${dir}`](step);
|
|
3786
|
+
const preserveCurrentSelection = startNewSelection && allowMultipleRanges;
|
|
3754
3787
|
if (this.activeRow?.dataItem) {
|
|
3755
3788
|
const sign = dir === 'Down' ? 1 : -1;
|
|
3756
|
-
this.handleVerticalArrowSelection(sign * step);
|
|
3789
|
+
this.handleVerticalArrowSelection(sign * step, preserveCurrentSelection);
|
|
3757
3790
|
}
|
|
3758
3791
|
}
|
|
3759
3792
|
else {
|
|
@@ -3772,7 +3805,8 @@ class NavigationService {
|
|
|
3772
3805
|
return;
|
|
3773
3806
|
}
|
|
3774
3807
|
preventDefault = this[`moveCursor${right ? 'Fwd' : 'Bwd'}`]();
|
|
3775
|
-
|
|
3808
|
+
const preserveCurrentSelection = startNewSelection && allowMultipleRanges;
|
|
3809
|
+
this.handleHorizontalArrowSelection(args, preserveCurrentSelection);
|
|
3776
3810
|
}
|
|
3777
3811
|
else {
|
|
3778
3812
|
preventDefault = this[`moveCursor${right ? 'Fwd' : 'Bwd'}`]();
|
|
@@ -3975,7 +4009,7 @@ class NavigationService {
|
|
|
3975
4009
|
this.leaveCell();
|
|
3976
4010
|
this.cursor.reset();
|
|
3977
4011
|
}
|
|
3978
|
-
handleVerticalArrowSelection(args) {
|
|
4012
|
+
handleVerticalArrowSelection(args, preserveSelection) {
|
|
3979
4013
|
const cellSelectionEnabled = this.ctx.grid.cellSelectionService.active;
|
|
3980
4014
|
const rowSelectionEnabled = this.ctx.grid.selectionService.active && !this.ctx.grid.selectableSettings.checkboxOnly;
|
|
3981
4015
|
if (cellSelectionEnabled || rowSelectionEnabled) {
|
|
@@ -3985,14 +4019,15 @@ class NavigationService {
|
|
|
3985
4019
|
const dataItem = selectionService.settings.view.at(rowIdx);
|
|
3986
4020
|
const item = { index: this.activeRow.dataRowIndex, data: dataItem, column: this.ctx.grid.columnsContainer.leafColumnsToRender[colIdx] };
|
|
3987
4021
|
if (selectionService.options.mode === 'multiple') {
|
|
3988
|
-
|
|
4022
|
+
const startRowIndex = this.activeRow.dataRowIndex - args;
|
|
4023
|
+
cellSelectionEnabled ? this.handleMultipleArrowCellSelection(item, preserveSelection, startRowIndex, colIdx) : this.handleMultipleArrowRowSelection(item, preserveSelection, startRowIndex);
|
|
3989
4024
|
}
|
|
3990
4025
|
else {
|
|
3991
4026
|
selectionService.handleClick(item, args);
|
|
3992
4027
|
}
|
|
3993
4028
|
}
|
|
3994
4029
|
}
|
|
3995
|
-
handleHorizontalArrowSelection(args) {
|
|
4030
|
+
handleHorizontalArrowSelection(args, preserveSelection) {
|
|
3996
4031
|
const cellSelectionEnabled = this.ctx.grid.cellSelectionService.active;
|
|
3997
4032
|
if (cellSelectionEnabled) {
|
|
3998
4033
|
const selectionService = this.ctx.grid[cellSelectionEnabled ? 'cellSelectionService' : 'selectionService'];
|
|
@@ -4004,27 +4039,37 @@ class NavigationService {
|
|
|
4004
4039
|
return;
|
|
4005
4040
|
}
|
|
4006
4041
|
if (selectionService.options.mode === 'multiple') {
|
|
4007
|
-
|
|
4042
|
+
const startColumnIndex = args.key === 'ArrowRight' ? colIdx - 1 : colIdx + 1;
|
|
4043
|
+
this.handleMultipleArrowCellSelection(item, preserveSelection, row.dataRowIndex, startColumnIndex);
|
|
4008
4044
|
}
|
|
4009
4045
|
else {
|
|
4010
4046
|
selectionService.handleClick(item, args);
|
|
4011
4047
|
}
|
|
4012
4048
|
}
|
|
4013
4049
|
}
|
|
4014
|
-
handleMultipleArrowCellSelection(item) {
|
|
4050
|
+
handleMultipleArrowCellSelection(item, preserveSelection, startRow, startColumn) {
|
|
4015
4051
|
const cellSelectionService = this.ctx.grid.cellSelectionService;
|
|
4016
|
-
const startRowIndex = Math.min(cellSelectionService.lastSelectionItemRowIndex, item.index);
|
|
4017
|
-
const startColIndex = Math.min(cellSelectionService.lastSelectionItemColIndex, item.column.leafIndex);
|
|
4018
|
-
const endRowIndex = Math.max(cellSelectionService.lastSelectionItemRowIndex, item.index);
|
|
4019
|
-
const endColIndex = Math.max(cellSelectionService.lastSelectionItemColIndex, item.column.leafIndex);
|
|
4020
|
-
|
|
4052
|
+
const startRowIndex = preserveSelection ? startRow : Math.min(cellSelectionService.lastSelectionItemRowIndex, item.index);
|
|
4053
|
+
const startColIndex = preserveSelection ? startColumn : Math.min(cellSelectionService.lastSelectionItemColIndex, item.column.leafIndex);
|
|
4054
|
+
const endRowIndex = preserveSelection ? item.index : Math.max(cellSelectionService.lastSelectionItemRowIndex, item.index);
|
|
4055
|
+
const endColIndex = preserveSelection ? item.column.leafIndex : Math.max(cellSelectionService.lastSelectionItemColIndex, item.column.leafIndex);
|
|
4056
|
+
if (preserveSelection) {
|
|
4057
|
+
cellSelectionService.lastSelectionItemRowIndex = startRow;
|
|
4058
|
+
cellSelectionService.lastSelectionItemColIndex = startColumn;
|
|
4059
|
+
this.currentSelection = cellSelectionService.currentSelection;
|
|
4060
|
+
}
|
|
4061
|
+
const ev = cellSelectionService.selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex, preserveSelection, this.currentSelection);
|
|
4021
4062
|
cellSelectionService.changes.emit(ev);
|
|
4022
4063
|
}
|
|
4023
|
-
handleMultipleArrowRowSelection(item) {
|
|
4064
|
+
handleMultipleArrowRowSelection(item, preserveSelection, startRow) {
|
|
4024
4065
|
const rowSelectionService = this.ctx.grid.selectionService;
|
|
4025
|
-
const startRowIndex = Math.min(rowSelectionService.lastSelectionStartIndex, item.index);
|
|
4026
|
-
const endRowIndex = Math.max(rowSelectionService.lastSelectionStartIndex, item.index);
|
|
4027
|
-
|
|
4066
|
+
const startRowIndex = preserveSelection ? startRow : Math.min(rowSelectionService.lastSelectionStartIndex, item.index);
|
|
4067
|
+
const endRowIndex = preserveSelection ? item.index : Math.max(rowSelectionService.lastSelectionStartIndex, item.index);
|
|
4068
|
+
if (preserveSelection) {
|
|
4069
|
+
rowSelectionService.lastSelectionStartIndex = startRow;
|
|
4070
|
+
this.currentSelection = rowSelectionService.currentSelection;
|
|
4071
|
+
}
|
|
4072
|
+
const ev = rowSelectionService.selectRange(startRowIndex, endRowIndex, preserveSelection, this.currentSelection);
|
|
4028
4073
|
rowSelectionService.changes.emit(ev);
|
|
4029
4074
|
}
|
|
4030
4075
|
calculateRowspanOffset(direction, cellRowspan) {
|
|
@@ -7603,16 +7648,14 @@ const diffFilters = (a, b) => {
|
|
|
7603
7648
|
*/
|
|
7604
7649
|
class FilterHostDirective {
|
|
7605
7650
|
host;
|
|
7606
|
-
resolver;
|
|
7607
7651
|
column;
|
|
7608
7652
|
filter;
|
|
7609
7653
|
component;
|
|
7610
|
-
constructor(host
|
|
7654
|
+
constructor(host) {
|
|
7611
7655
|
this.host = host;
|
|
7612
|
-
this.resolver = resolver;
|
|
7613
7656
|
}
|
|
7614
7657
|
ngOnInit() {
|
|
7615
|
-
this.component = this.host.createComponent(this.
|
|
7658
|
+
this.component = this.host.createComponent(this.componentType());
|
|
7616
7659
|
this.initComponent({
|
|
7617
7660
|
column: this.column,
|
|
7618
7661
|
filter: this.filter
|
|
@@ -7637,7 +7680,7 @@ class FilterHostDirective {
|
|
|
7637
7680
|
instance.column = column;
|
|
7638
7681
|
instance.filter = filter;
|
|
7639
7682
|
}
|
|
7640
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterHostDirective, deps: [{ token: i0.ViewContainerRef }
|
|
7683
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterHostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7641
7684
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterHostDirective, selector: "[kendoGridFilterHostBase]", inputs: { column: "column", filter: "filter" }, usesOnChanges: true, ngImport: i0 });
|
|
7642
7685
|
}
|
|
7643
7686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterHostDirective, decorators: [{
|
|
@@ -7645,7 +7688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7645
7688
|
args: [{
|
|
7646
7689
|
selector: '[kendoGridFilterHostBase]'
|
|
7647
7690
|
}]
|
|
7648
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }
|
|
7691
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
|
|
7649
7692
|
type: Input
|
|
7650
7693
|
}], filter: [{
|
|
7651
7694
|
type: Input
|
|
@@ -9520,8 +9563,8 @@ const filterMenuComponentFactory = (type) => ({
|
|
|
9520
9563
|
class FilterMenuHostDirective extends FilterHostDirective {
|
|
9521
9564
|
filterService;
|
|
9522
9565
|
menuTabbingService;
|
|
9523
|
-
constructor(host
|
|
9524
|
-
super(host
|
|
9566
|
+
constructor(host) {
|
|
9567
|
+
super(host);
|
|
9525
9568
|
}
|
|
9526
9569
|
componentType() {
|
|
9527
9570
|
if (isPresent(this.column) && !isNullOrEmptyString(this.column.filter)) {
|
|
@@ -9534,7 +9577,7 @@ class FilterMenuHostDirective extends FilterHostDirective {
|
|
|
9534
9577
|
this.component.instance.filterService = this.filterService;
|
|
9535
9578
|
this.component.instance.menuTabbingService = this.menuTabbingService;
|
|
9536
9579
|
}
|
|
9537
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuHostDirective, deps: [{ token: i0.ViewContainerRef }
|
|
9580
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuHostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9538
9581
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuHostDirective, isStandalone: true, selector: "[kendoFilterMenuHost]", inputs: { filterService: "filterService", menuTabbingService: "menuTabbingService" }, usesInheritance: true, ngImport: i0 });
|
|
9539
9582
|
}
|
|
9540
9583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuHostDirective, decorators: [{
|
|
@@ -9543,7 +9586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9543
9586
|
selector: '[kendoFilterMenuHost]',
|
|
9544
9587
|
standalone: true
|
|
9545
9588
|
}]
|
|
9546
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }
|
|
9589
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { filterService: [{
|
|
9547
9590
|
type: Input
|
|
9548
9591
|
}], menuTabbingService: [{
|
|
9549
9592
|
type: Input
|
|
@@ -10641,8 +10684,8 @@ const filterComponentFactory = (type) => ({
|
|
|
10641
10684
|
* @hidden
|
|
10642
10685
|
*/
|
|
10643
10686
|
class FilterCellHostDirective extends FilterHostDirective {
|
|
10644
|
-
constructor(host
|
|
10645
|
-
super(host
|
|
10687
|
+
constructor(host) {
|
|
10688
|
+
super(host);
|
|
10646
10689
|
}
|
|
10647
10690
|
componentType() {
|
|
10648
10691
|
if (!isNullOrEmptyString(this.column.filter)) {
|
|
@@ -10650,7 +10693,7 @@ class FilterCellHostDirective extends FilterHostDirective {
|
|
|
10650
10693
|
}
|
|
10651
10694
|
return StringFilterCellComponent;
|
|
10652
10695
|
}
|
|
10653
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellHostDirective, deps: [{ token: i0.ViewContainerRef }
|
|
10696
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellHostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10654
10697
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FilterCellHostDirective, isStandalone: true, selector: "[kendoFilterCellHost]", usesInheritance: true, ngImport: i0 });
|
|
10655
10698
|
}
|
|
10656
10699
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterCellHostDirective, decorators: [{
|
|
@@ -10659,7 +10702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10659
10702
|
selector: '[kendoFilterCellHost]',
|
|
10660
10703
|
standalone: true
|
|
10661
10704
|
}]
|
|
10662
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }
|
|
10705
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
10663
10706
|
|
|
10664
10707
|
/**
|
|
10665
10708
|
* @hidden
|
|
@@ -11102,6 +11145,17 @@ class ColumnListComponent {
|
|
|
11102
11145
|
if (e.keyCode !== Keys.Tab) {
|
|
11103
11146
|
e.preventDefault();
|
|
11104
11147
|
}
|
|
11148
|
+
if (e.key === 'Tab' && !e.shiftKey && this.autoSync) {
|
|
11149
|
+
e.preventDefault();
|
|
11150
|
+
}
|
|
11151
|
+
if (e.key === 'Tab' && e.shiftKey) {
|
|
11152
|
+
this.ngZone.run(() => {
|
|
11153
|
+
if (e.target.matches('.k-column-list-item')) {
|
|
11154
|
+
e.preventDefault();
|
|
11155
|
+
this.resetButton?.nativeElement.focus();
|
|
11156
|
+
}
|
|
11157
|
+
});
|
|
11158
|
+
}
|
|
11105
11159
|
if (e.keyCode === Keys.ArrowDown) {
|
|
11106
11160
|
this.listNavigationService.next();
|
|
11107
11161
|
}
|
|
@@ -11116,19 +11170,23 @@ class ColumnListComponent {
|
|
|
11116
11170
|
if (this.allowHideAll && !this.hasLocked) {
|
|
11117
11171
|
return;
|
|
11118
11172
|
}
|
|
11119
|
-
|
|
11173
|
+
// Cache visible columns to avoid repeated checks
|
|
11174
|
+
const visibleColumns = [];
|
|
11175
|
+
const columnMap = new Map();
|
|
11120
11176
|
this.checkboxes.forEach((checkbox, index) => {
|
|
11177
|
+
// Reset all disabled states first
|
|
11178
|
+
this.setDisabledState(checkbox, false);
|
|
11121
11179
|
if (checkbox.checkedState) {
|
|
11122
|
-
|
|
11180
|
+
visibleColumns.push({ checkbox, index });
|
|
11181
|
+
columnMap.set(index, this.columns[index]);
|
|
11123
11182
|
}
|
|
11124
|
-
this.setDisabledState(checkbox, false);
|
|
11125
11183
|
});
|
|
11126
|
-
|
|
11127
|
-
|
|
11184
|
+
// Only apply disabled states where needed
|
|
11185
|
+
if (!this.allowHideAll && visibleColumns.length === 1 && !this.hasFiltered) {
|
|
11186
|
+
this.setDisabledState(visibleColumns[0].checkbox, true);
|
|
11128
11187
|
}
|
|
11129
11188
|
else if (this.hasLocked && !this.hasUnlockedFiltered) {
|
|
11130
|
-
const
|
|
11131
|
-
const checkedUnlocked = checkedItems.filter(item => !columns[item.index].locked);
|
|
11189
|
+
const checkedUnlocked = visibleColumns.filter(item => !columnMap.get(item.index).locked);
|
|
11132
11190
|
if (checkedUnlocked.length === 1) {
|
|
11133
11191
|
this.setDisabledState(checkedUnlocked[0].checkbox, true);
|
|
11134
11192
|
}
|
|
@@ -11149,34 +11207,32 @@ class ColumnListComponent {
|
|
|
11149
11207
|
}
|
|
11150
11208
|
}
|
|
11151
11209
|
setDisabledState(checkbox, disabled) {
|
|
11152
|
-
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11156
|
-
|
|
11157
|
-
|
|
11158
|
-
|
|
11210
|
+
if (checkbox.disabled !== disabled) {
|
|
11211
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11212
|
+
checkbox.disabled = disabled;
|
|
11213
|
+
const checkboxElement = checkbox.hostElement.nativeElement;
|
|
11214
|
+
const parentElement = checkboxElement.parentElement;
|
|
11215
|
+
if (disabled) {
|
|
11216
|
+
this.renderer.addClass(parentElement, 'k-disabled');
|
|
11217
|
+
this.renderer.setAttribute(parentElement, 'aria-disabled', 'true');
|
|
11218
|
+
}
|
|
11219
|
+
else {
|
|
11220
|
+
this.renderer.removeClass(parentElement, 'k-disabled');
|
|
11221
|
+
this.renderer.removeAttribute(parentElement, 'aria-disabled');
|
|
11222
|
+
}
|
|
11223
|
+
});
|
|
11224
|
+
}
|
|
11159
11225
|
}
|
|
11160
11226
|
handleCheckBoxClick = (e) => {
|
|
11161
11227
|
const closestItem = e.target.closest('.k-column-list-item');
|
|
11162
11228
|
if (closestItem) {
|
|
11163
11229
|
const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
|
|
11164
|
-
const checkbox = this.checkboxes.find(checkBox => checkBox.hostElement.nativeElement === checkboxElement);
|
|
11165
11230
|
const index = parseInt(checkboxElement.firstElementChild.getAttribute('data-index'), 10);
|
|
11166
|
-
|
|
11167
|
-
|
|
11168
|
-
|
|
11169
|
-
|
|
11170
|
-
}
|
|
11171
|
-
if (checkboxElement.contains(e.target)) {
|
|
11172
|
-
const checkboxInputElement = checkboxElement.firstElementChild;
|
|
11173
|
-
checkboxInputElement.blur();
|
|
11174
|
-
checkboxInputElement.classList.remove('k-focus');
|
|
11175
|
-
}
|
|
11176
|
-
else {
|
|
11177
|
-
this.listNavigationService.toggleCheckedState();
|
|
11231
|
+
const checkbox = this.checkboxes.toArray()[index];
|
|
11232
|
+
if (e.target === checkbox.input.nativeElement) {
|
|
11233
|
+
closestItem.focus();
|
|
11234
|
+
e.target.classList.remove('k-focus');
|
|
11178
11235
|
}
|
|
11179
|
-
closestItem.focus();
|
|
11180
11236
|
if (this.autoSync) {
|
|
11181
11237
|
if (!this.columns[index]) {
|
|
11182
11238
|
return;
|
|
@@ -11184,14 +11240,21 @@ class ColumnListComponent {
|
|
|
11184
11240
|
const column = this.columns[index];
|
|
11185
11241
|
const hidden = !checkbox.checkedState;
|
|
11186
11242
|
if (Boolean(column.hidden) !== hidden) {
|
|
11187
|
-
this.ngZone.
|
|
11243
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11188
11244
|
column.hidden = hidden;
|
|
11189
|
-
this.
|
|
11245
|
+
this.ngZone.run(() => {
|
|
11246
|
+
this.columnChange.emit([column]);
|
|
11247
|
+
});
|
|
11190
11248
|
});
|
|
11191
11249
|
}
|
|
11192
11250
|
}
|
|
11193
11251
|
else {
|
|
11194
|
-
this.updateDisabled();
|
|
11252
|
+
this.ngZone.run(() => this.updateDisabled());
|
|
11253
|
+
}
|
|
11254
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
11255
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
11256
|
+
this.listNavigationService.activeIndex = index;
|
|
11257
|
+
this.listNavigationService.toggle(index, true);
|
|
11195
11258
|
}
|
|
11196
11259
|
}
|
|
11197
11260
|
};
|
|
@@ -11209,9 +11272,9 @@ class ColumnListComponent {
|
|
|
11209
11272
|
role="option">
|
|
11210
11273
|
<kendo-checkbox
|
|
11211
11274
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
11275
|
+
[tabindex]="-1"
|
|
11212
11276
|
[checkedState]="!column.hidden"
|
|
11213
11277
|
[disabled]="isDisabled(column)"
|
|
11214
|
-
[tabindex]="-1"
|
|
11215
11278
|
></kendo-checkbox>
|
|
11216
11279
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
11217
11280
|
</label>
|
|
@@ -11253,9 +11316,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11253
11316
|
role="option">
|
|
11254
11317
|
<kendo-checkbox
|
|
11255
11318
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
11319
|
+
[tabindex]="-1"
|
|
11256
11320
|
[checkedState]="!column.hidden"
|
|
11257
11321
|
[disabled]="isDisabled(column)"
|
|
11258
|
-
[tabindex]="-1"
|
|
11259
11322
|
></kendo-checkbox>
|
|
11260
11323
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
11261
11324
|
</label>
|
|
@@ -11440,15 +11503,6 @@ class ColumnChooserComponent {
|
|
|
11440
11503
|
this.changeDetector.markForCheck();
|
|
11441
11504
|
this.columnInfoService.changeVisibility(changed);
|
|
11442
11505
|
}
|
|
11443
|
-
/**
|
|
11444
|
-
* @hidden
|
|
11445
|
-
*/
|
|
11446
|
-
onShiftTab(e) {
|
|
11447
|
-
if (e.target.matches('.k-column-list-item')) {
|
|
11448
|
-
e.preventDefault();
|
|
11449
|
-
this.columnList.resetButton.nativeElement.focus();
|
|
11450
|
-
}
|
|
11451
|
-
}
|
|
11452
11506
|
close(focusAnchor = false) {
|
|
11453
11507
|
if (this.popupRef) {
|
|
11454
11508
|
this.popupRef.close();
|
|
@@ -11490,8 +11544,7 @@ class ColumnChooserComponent {
|
|
|
11490
11544
|
[autoSync]="autoSync"
|
|
11491
11545
|
[allowHideAll]="allowHideAll"
|
|
11492
11546
|
(apply)="onApply($event)"
|
|
11493
|
-
(columnChange)="onChange($event)"
|
|
11494
|
-
(keydown.shift.tab)="onShiftTab($event)">
|
|
11547
|
+
(columnChange)="onChange($event)">
|
|
11495
11548
|
</kendo-grid-columnlist>
|
|
11496
11549
|
</ng-template>
|
|
11497
11550
|
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
@@ -11524,8 +11577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11524
11577
|
[autoSync]="autoSync"
|
|
11525
11578
|
[allowHideAll]="allowHideAll"
|
|
11526
11579
|
(apply)="onApply($event)"
|
|
11527
|
-
(columnChange)="onChange($event)"
|
|
11528
|
-
(keydown.shift.tab)="onShiftTab($event)">
|
|
11580
|
+
(columnChange)="onChange($event)">
|
|
11529
11581
|
</kendo-grid-columnlist>
|
|
11530
11582
|
</ng-template>
|
|
11531
11583
|
`,
|
|
@@ -11697,13 +11749,12 @@ class ColumnMenuItemComponent {
|
|
|
11697
11749
|
*/
|
|
11698
11750
|
collapse = new EventEmitter();
|
|
11699
11751
|
/**
|
|
11700
|
-
* Specifies the name of the [font icon](slug:
|
|
11701
|
-
* that will be rendered
|
|
11752
|
+
* Specifies the name of the [font icon](slug:icon_list)
|
|
11753
|
+
* that will be rendered within the item.
|
|
11702
11754
|
*/
|
|
11703
11755
|
icon;
|
|
11704
11756
|
/**
|
|
11705
|
-
*
|
|
11706
|
-
* that will be rendered for the item.
|
|
11757
|
+
* Defines the [SVG icon](slug:svgicon_list) to be rendered within the item.
|
|
11707
11758
|
*/
|
|
11708
11759
|
svgIcon;
|
|
11709
11760
|
/**
|
|
@@ -15458,7 +15509,8 @@ class SelectionService {
|
|
|
15458
15509
|
ev = this.toggle(item);
|
|
15459
15510
|
}
|
|
15460
15511
|
else if (event.shiftKey) {
|
|
15461
|
-
|
|
15512
|
+
const preserveCurrentSelection = isMultipleRangesEnabled(this.settings);
|
|
15513
|
+
ev = this.addAllTo(item, ctrlKey, preserveCurrentSelection);
|
|
15462
15514
|
}
|
|
15463
15515
|
}
|
|
15464
15516
|
if (!isPresent(ev)) {
|
|
@@ -15565,7 +15617,7 @@ class SelectionService {
|
|
|
15565
15617
|
item = iterator.next();
|
|
15566
15618
|
}
|
|
15567
15619
|
}
|
|
15568
|
-
addAllTo(item, ctrlKey) {
|
|
15620
|
+
addAllTo(item, ctrlKey, preserveSelection = false) {
|
|
15569
15621
|
const selectedRows = [];
|
|
15570
15622
|
const deselectedRows = [];
|
|
15571
15623
|
const start = Math.min(this.lastSelectionStartIndex, item.index);
|
|
@@ -15576,7 +15628,7 @@ class SelectionService {
|
|
|
15576
15628
|
if (next.value && next.value.type === "data") {
|
|
15577
15629
|
const idx = next.value.index;
|
|
15578
15630
|
const rowArgs = { dataItem: next.value.data, index: idx };
|
|
15579
|
-
if ((idx < start || idx > end) && this.isSelected(idx) && !ctrlKey) {
|
|
15631
|
+
if ((idx < start || idx > end) && this.isSelected(idx) && !ctrlKey && !preserveSelection) {
|
|
15580
15632
|
deselectedRows.push(rowArgs);
|
|
15581
15633
|
}
|
|
15582
15634
|
if ((idx >= start && idx <= end) && !this.isSelected(idx) && !this.nonSelectableRows.has(idx)) {
|
|
@@ -15633,7 +15685,7 @@ class SelectionService {
|
|
|
15633
15685
|
}
|
|
15634
15686
|
this.changes.emit(ev);
|
|
15635
15687
|
}
|
|
15636
|
-
selectRange(startIndex, endIndex) {
|
|
15688
|
+
selectRange(startIndex, endIndex, preserveSelection, existingSelections = []) {
|
|
15637
15689
|
const selectedRows = [];
|
|
15638
15690
|
const deselectedRows = [];
|
|
15639
15691
|
const start = Math.min(startIndex, endIndex);
|
|
@@ -15645,7 +15697,10 @@ class SelectionService {
|
|
|
15645
15697
|
const idx = next.value.index;
|
|
15646
15698
|
const rowArgs = { dataItem: next.value.data, index: idx };
|
|
15647
15699
|
if ((idx < start || idx > end) && this.isSelected(idx)) {
|
|
15648
|
-
|
|
15700
|
+
const deselectRow = !(preserveSelection || existingSelections.find((value) => value && value.dataItem === rowArgs.dataItem && value.index === rowArgs.index));
|
|
15701
|
+
if (deselectRow) {
|
|
15702
|
+
deselectedRows.push(rowArgs);
|
|
15703
|
+
}
|
|
15649
15704
|
}
|
|
15650
15705
|
if ((idx >= start && idx <= end) && !this.isSelected(idx) && !this.nonSelectableRows.has(idx)) {
|
|
15651
15706
|
selectedRows.push(rowArgs);
|
|
@@ -15870,7 +15925,12 @@ class CellSelectionService {
|
|
|
15870
15925
|
const startColIndex = Math.min(this.lastSelectionItemColIndex, item.column.leafIndex);
|
|
15871
15926
|
const endRowIndex = Math.max(this.lastSelectionItemRowIndex, item.index);
|
|
15872
15927
|
const endColIndex = Math.max(this.lastSelectionItemColIndex, item.column.leafIndex);
|
|
15873
|
-
|
|
15928
|
+
const preserveCurrentSelection = isMultipleRangesEnabled(this.settings);
|
|
15929
|
+
ev = this.selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex, preserveCurrentSelection);
|
|
15930
|
+
if (preserveCurrentSelection) {
|
|
15931
|
+
this.lastSelectionItemRowIndex = item.index;
|
|
15932
|
+
this.lastSelectionItemColIndex = item.column.leafIndex;
|
|
15933
|
+
}
|
|
15874
15934
|
}
|
|
15875
15935
|
}
|
|
15876
15936
|
if (!isPresent(ev)) {
|
|
@@ -15961,7 +16021,7 @@ class CellSelectionService {
|
|
|
15961
16021
|
}
|
|
15962
16022
|
}
|
|
15963
16023
|
}
|
|
15964
|
-
selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex) {
|
|
16024
|
+
selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex, preserveSelection = false, existingSelections = []) {
|
|
15965
16025
|
const selectedCells = [];
|
|
15966
16026
|
const deselectedCells = [];
|
|
15967
16027
|
const selectionStartRow = Math.min(startRowIndex, endRowIndex);
|
|
@@ -15985,7 +16045,10 @@ class CellSelectionService {
|
|
|
15985
16045
|
const isInColRange = selectionStartCol <= col.leafIndex && col.leafIndex <= selectionEndCol;
|
|
15986
16046
|
const isInSelectionRect = isInRowRange && isInColRange;
|
|
15987
16047
|
if (!isInSelectionRect && selected) {
|
|
15988
|
-
|
|
16048
|
+
const deselectCell = !(preserveSelection || existingSelections.find((value) => value && value.itemKey === item.itemKey && value.columnKey === item.columnKey));
|
|
16049
|
+
if (deselectCell) {
|
|
16050
|
+
deselectedCells.push(item);
|
|
16051
|
+
}
|
|
15989
16052
|
}
|
|
15990
16053
|
if (isInSelectionRect && !selected && !this.nonSelectableRows.has(idx)) {
|
|
15991
16054
|
selectedCells.push(item);
|
|
@@ -16203,7 +16266,7 @@ class SelectAllCheckboxDirective {
|
|
|
16203
16266
|
return undefined;
|
|
16204
16267
|
}
|
|
16205
16268
|
}
|
|
16206
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectAllCheckboxDirective, deps: [{ token: SelectionService }, { token: CellSelectionService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token:
|
|
16269
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectAllCheckboxDirective, deps: [{ token: SelectionService }, { token: CellSelectionService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4$1.CheckBoxComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
16207
16270
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectAllCheckboxDirective, isStandalone: true, selector: "[kendoGridSelectAllCheckbox]", inputs: { state: "state" }, outputs: { selectAllChange: "selectAllChange" }, usesOnChanges: true, ngImport: i0 });
|
|
16208
16271
|
}
|
|
16209
16272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectAllCheckboxDirective, decorators: [{
|
|
@@ -16212,7 +16275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
16212
16275
|
selector: '[kendoGridSelectAllCheckbox]',
|
|
16213
16276
|
standalone: true
|
|
16214
16277
|
}]
|
|
16215
|
-
}], ctorParameters: function () { return [{ type: SelectionService }, { type: CellSelectionService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type:
|
|
16278
|
+
}], ctorParameters: function () { return [{ type: SelectionService }, { type: CellSelectionService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4$1.CheckBoxComponent, decorators: [{
|
|
16216
16279
|
type: Host
|
|
16217
16280
|
}, {
|
|
16218
16281
|
type: Optional
|
|
@@ -17171,6 +17234,7 @@ class FooterComponent {
|
|
|
17171
17234
|
lockedColumnsCount = 0;
|
|
17172
17235
|
logicalRowIndex = 0;
|
|
17173
17236
|
totalColumns;
|
|
17237
|
+
totalColumnsCount = 0;
|
|
17174
17238
|
get footerClass() {
|
|
17175
17239
|
return !this.scrollable;
|
|
17176
17240
|
}
|
|
@@ -17182,6 +17246,10 @@ class FooterComponent {
|
|
|
17182
17246
|
get columnsToRender() {
|
|
17183
17247
|
return columnsToRender(this.columns || []);
|
|
17184
17248
|
}
|
|
17249
|
+
// Number of unlocked columns in the next table, if any
|
|
17250
|
+
get unlockedColumnsCount() {
|
|
17251
|
+
return this.totalColumnsCount - this.lockedColumnsCount - this.columns.length;
|
|
17252
|
+
}
|
|
17185
17253
|
trackByIndex(index) {
|
|
17186
17254
|
return index;
|
|
17187
17255
|
}
|
|
@@ -17200,15 +17268,15 @@ class FooterComponent {
|
|
|
17200
17268
|
return isColumnGroupComponent(column);
|
|
17201
17269
|
}
|
|
17202
17270
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FooterComponent, deps: [{ token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FooterComponent, isStandalone: true, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex", totalColumns: "totalColumns" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass", "attr.role": "this.hostRole" } }, ngImport: i0, template: `
|
|
17271
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FooterComponent, isStandalone: true, selector: "[kendoGridFooter]", inputs: { columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", lockedColumnsCount: "lockedColumnsCount", logicalRowIndex: "logicalRowIndex", totalColumns: "totalColumns", totalColumnsCount: "totalColumnsCount" }, host: { properties: { "class.k-grid-footer": "this.footerClass", "class.k-table-tfoot": "this.hostClass", "attr.role": "this.hostRole" } }, ngImport: i0, template: `
|
|
17204
17272
|
<ng-container>
|
|
17205
17273
|
<tr
|
|
17206
|
-
|
|
17274
|
+
class="k-footer-template"
|
|
17207
17275
|
kendoGridLogicalRow
|
|
17208
17276
|
[logicalRowIndex]="logicalRowIndex"
|
|
17209
17277
|
[logicalSlaveRow]="lockedColumnsCount > 0"
|
|
17210
17278
|
[logicalCellsCount]="columns.length"
|
|
17211
|
-
[logicalSlaveCellsCount]="
|
|
17279
|
+
[logicalSlaveCellsCount]="unlockedColumnsCount"
|
|
17212
17280
|
[totalColumns]="totalColumns"
|
|
17213
17281
|
>
|
|
17214
17282
|
<td
|
|
@@ -17253,12 +17321,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17253
17321
|
template: `
|
|
17254
17322
|
<ng-container>
|
|
17255
17323
|
<tr
|
|
17256
|
-
|
|
17324
|
+
class="k-footer-template"
|
|
17257
17325
|
kendoGridLogicalRow
|
|
17258
17326
|
[logicalRowIndex]="logicalRowIndex"
|
|
17259
17327
|
[logicalSlaveRow]="lockedColumnsCount > 0"
|
|
17260
17328
|
[logicalCellsCount]="columns.length"
|
|
17261
|
-
[logicalSlaveCellsCount]="
|
|
17329
|
+
[logicalSlaveCellsCount]="unlockedColumnsCount"
|
|
17262
17330
|
[totalColumns]="totalColumns"
|
|
17263
17331
|
>
|
|
17264
17332
|
<td
|
|
@@ -17312,6 +17380,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17312
17380
|
type: Input
|
|
17313
17381
|
}], totalColumns: [{
|
|
17314
17382
|
type: Input
|
|
17383
|
+
}], totalColumnsCount: [{
|
|
17384
|
+
type: Input
|
|
17315
17385
|
}], footerClass: [{
|
|
17316
17386
|
type: HostBinding,
|
|
17317
17387
|
args: ['class.k-grid-footer']
|
|
@@ -17583,7 +17653,7 @@ class SelectionCheckboxDirective {
|
|
|
17583
17653
|
this.renderer.setProperty(this.el.nativeElement, 'checked', isSelected);
|
|
17584
17654
|
}
|
|
17585
17655
|
}
|
|
17586
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionCheckboxDirective, deps: [{ token: SelectionService }, { token: CellSelectionService }, { token: CellSelectionAggregateService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token:
|
|
17656
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionCheckboxDirective, deps: [{ token: SelectionService }, { token: CellSelectionService }, { token: CellSelectionAggregateService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i4$1.CheckBoxComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
17587
17657
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectionCheckboxDirective, isStandalone: true, selector: "[kendoGridSelectionCheckbox]", inputs: { itemIndex: ["kendoGridSelectionCheckbox", "itemIndex"] }, ngImport: i0 });
|
|
17588
17658
|
}
|
|
17589
17659
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionCheckboxDirective, decorators: [{
|
|
@@ -17592,7 +17662,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17592
17662
|
selector: '[kendoGridSelectionCheckbox]',
|
|
17593
17663
|
standalone: true
|
|
17594
17664
|
}]
|
|
17595
|
-
}], ctorParameters: function () { return [{ type: SelectionService }, { type: CellSelectionService }, { type: CellSelectionAggregateService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type:
|
|
17665
|
+
}], ctorParameters: function () { return [{ type: SelectionService }, { type: CellSelectionService }, { type: CellSelectionAggregateService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i4$1.CheckBoxComponent, decorators: [{
|
|
17596
17666
|
type: Host
|
|
17597
17667
|
}, {
|
|
17598
17668
|
type: Optional
|
|
@@ -18177,7 +18247,7 @@ class TableBodyComponent {
|
|
|
18177
18247
|
}
|
|
18178
18248
|
});
|
|
18179
18249
|
const contentColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - allColumnsCount;
|
|
18180
|
-
const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount -
|
|
18250
|
+
const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - allColumns.length;
|
|
18181
18251
|
return item && this.isDataItem(item) ? contentColumnsCount : headerFooterColumnsCount;
|
|
18182
18252
|
}
|
|
18183
18253
|
shouldSkipCell(rowIndex, colIndex) {
|
|
@@ -19761,8 +19831,8 @@ const packageMetadata = {
|
|
|
19761
19831
|
productName: 'Kendo UI for Angular',
|
|
19762
19832
|
productCode: 'KENDOUIANGULAR',
|
|
19763
19833
|
productCodes: ['KENDOUIANGULAR'],
|
|
19764
|
-
publishDate:
|
|
19765
|
-
version: '18.
|
|
19834
|
+
publishDate: 1744092477,
|
|
19835
|
+
version: '18.5.0-develop.10',
|
|
19766
19836
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
19767
19837
|
};
|
|
19768
19838
|
|
|
@@ -21373,13 +21443,17 @@ class GridMarqueeDirective {
|
|
|
21373
21443
|
}
|
|
21374
21444
|
endSelection(args) {
|
|
21375
21445
|
if (args.type === 'mouseup' || args.type === 'touchend') {
|
|
21446
|
+
const modifier = args.originalEvent.ctrlKey || args.originalEvent.metaKey;
|
|
21447
|
+
const preserveCurrentSelection = modifier &&
|
|
21448
|
+
(isMultipleRangesEnabled(this.selection.settings) ||
|
|
21449
|
+
isMultipleRangesEnabled(this.cellSelection.settings));
|
|
21376
21450
|
if (this.cellSelection.active) {
|
|
21377
21451
|
this.cellSelection.dragging = true;
|
|
21378
|
-
this.cellSelection.changes.emit(this.cellSelection.selectRange(this.pressTarget.rowIndex, this.pressTarget.column.leafIndex, args.rowIndex, args.column.leafIndex));
|
|
21452
|
+
this.cellSelection.changes.emit(this.cellSelection.selectRange(this.pressTarget.rowIndex, this.pressTarget.column.leafIndex, args.rowIndex, args.column.leafIndex, preserveCurrentSelection));
|
|
21379
21453
|
}
|
|
21380
21454
|
else if (this.selection.active) {
|
|
21381
21455
|
this.selection.dragging = true;
|
|
21382
|
-
this.selection.changes.emit(this.selection.selectRange(this.pressTarget.rowIndex, args.rowIndex));
|
|
21456
|
+
this.selection.changes.emit(this.selection.selectRange(this.pressTarget.rowIndex, args.rowIndex, preserveCurrentSelection));
|
|
21383
21457
|
}
|
|
21384
21458
|
}
|
|
21385
21459
|
this.clean();
|
|
@@ -23252,8 +23326,53 @@ class GridMessages extends ComponentMessages {
|
|
|
23252
23326
|
* The text for the Group pane Chip Menu Move as next item.
|
|
23253
23327
|
*/
|
|
23254
23328
|
groupChipMenuNext;
|
|
23329
|
+
/**
|
|
23330
|
+
* The default text of a form validation error when using the built-in external editing.
|
|
23331
|
+
* <br/><br/>
|
|
23332
|
+
* The text consists of a three-part message—the name of the data item property the respective Grid column is bound to,
|
|
23333
|
+
* the name of the error, coming from the respective `FormControl` object, and a localizable string.
|
|
23334
|
+
* <br/><br/>
|
|
23335
|
+
* For a field named `ProductName`, and an error named `required`, the default error text will be `ProductName has required validation error`.
|
|
23336
|
+
* <br/><br/>
|
|
23337
|
+
* To customize the default text of the form validation error, use the `{errorName}` and `{fieldName}` placeholders and a custom localizable string.
|
|
23338
|
+
* For example, `{errorName} detected for {fieldName} field`.
|
|
23339
|
+
* <br/><br/>
|
|
23340
|
+
* The `{errorName}` and `{fieldName}` placeholders will be replaced internally with the field and error names for the respective invalid form control,
|
|
23341
|
+
* and the resulting error message will be rendered as `required error detected for ProductName field`.
|
|
23342
|
+
* [See example](slug:globalization_grid#toc-custom-messages).
|
|
23343
|
+
*
|
|
23344
|
+
*/
|
|
23345
|
+
formValidationErrorText;
|
|
23346
|
+
/**
|
|
23347
|
+
* The title of the remove item confirmation Dialog.
|
|
23348
|
+
*/
|
|
23349
|
+
removeConfirmationDialogTitle;
|
|
23350
|
+
/**
|
|
23351
|
+
* The content of the remove item confirmation Dialog.
|
|
23352
|
+
*/
|
|
23353
|
+
removeConfirmationDialogContent;
|
|
23354
|
+
/**
|
|
23355
|
+
* The text of the confirm action button in the remove confirmation Dialog.
|
|
23356
|
+
*/
|
|
23357
|
+
removeConfirmationDialogConfirmText;
|
|
23358
|
+
/**
|
|
23359
|
+
* The text of the reject action button in the remove confirmation Dialog.
|
|
23360
|
+
*/
|
|
23361
|
+
removeConfirmationDialogRejectText;
|
|
23362
|
+
/**
|
|
23363
|
+
* The title of the external editing Dialog.
|
|
23364
|
+
*/
|
|
23365
|
+
externalEditingTitle;
|
|
23366
|
+
/**
|
|
23367
|
+
* The text of the external editing Dialog <b>Save</b> button.
|
|
23368
|
+
*/
|
|
23369
|
+
externalEditingSaveText;
|
|
23370
|
+
/**
|
|
23371
|
+
* The text of the external editing Dialog <b>Cancel</b> button.
|
|
23372
|
+
*/
|
|
23373
|
+
externalEditingCancelText;
|
|
23255
23374
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
23256
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext" }, usesInheritance: true, ngImport: i0 });
|
|
23375
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
|
|
23257
23376
|
}
|
|
23258
23377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
|
|
23259
23378
|
type: Directive,
|
|
@@ -23429,6 +23548,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
23429
23548
|
type: Input
|
|
23430
23549
|
}], groupChipMenuNext: [{
|
|
23431
23550
|
type: Input
|
|
23551
|
+
}], formValidationErrorText: [{
|
|
23552
|
+
type: Input
|
|
23553
|
+
}], removeConfirmationDialogTitle: [{
|
|
23554
|
+
type: Input
|
|
23555
|
+
}], removeConfirmationDialogContent: [{
|
|
23556
|
+
type: Input
|
|
23557
|
+
}], removeConfirmationDialogConfirmText: [{
|
|
23558
|
+
type: Input
|
|
23559
|
+
}], removeConfirmationDialogRejectText: [{
|
|
23560
|
+
type: Input
|
|
23561
|
+
}], externalEditingTitle: [{
|
|
23562
|
+
type: Input
|
|
23563
|
+
}], externalEditingSaveText: [{
|
|
23564
|
+
type: Input
|
|
23565
|
+
}], externalEditingCancelText: [{
|
|
23566
|
+
type: Input
|
|
23432
23567
|
}] } });
|
|
23433
23568
|
|
|
23434
23569
|
/**
|
|
@@ -24201,9 +24336,6 @@ class GridComponent {
|
|
|
24201
24336
|
columnList;
|
|
24202
24337
|
selectionDirective = false;
|
|
24203
24338
|
ariaRootId = `k-${guid()}`;
|
|
24204
|
-
/**
|
|
24205
|
-
* @hidden
|
|
24206
|
-
*/
|
|
24207
24339
|
showLicenseWatermark = false;
|
|
24208
24340
|
columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
|
|
24209
24341
|
if (!isUniversal()) {
|
|
@@ -25002,9 +25134,6 @@ class GridComponent {
|
|
|
25002
25134
|
updateNavigationMetadata() {
|
|
25003
25135
|
this.navigationService.metadata = this.navigationMetadata();
|
|
25004
25136
|
}
|
|
25005
|
-
/**
|
|
25006
|
-
* @hidden
|
|
25007
|
-
*/
|
|
25008
25137
|
reorder({ target, source, before, changeContainer }) {
|
|
25009
25138
|
this.ngZone.run(() => {
|
|
25010
25139
|
const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));
|
|
@@ -25330,6 +25459,11 @@ class GridComponent {
|
|
|
25330
25459
|
const keydownSubscription = this.renderer.listen(wrapper, 'keydown', (args) => {
|
|
25331
25460
|
this.domEvents.keydown.emit(args);
|
|
25332
25461
|
});
|
|
25462
|
+
const shiftKeyupSubscription = this.renderer.listen(wrapper, 'keyup', (args) => {
|
|
25463
|
+
if (args.key === 'Shift') {
|
|
25464
|
+
this.domEvents.shiftKeyup.emit(args);
|
|
25465
|
+
}
|
|
25466
|
+
});
|
|
25333
25467
|
// focusIn and focusOut are relative to the element with ARIA role "grid"
|
|
25334
25468
|
let focused = false;
|
|
25335
25469
|
const focusInSubscription = this.renderer.listen(ariaRoot, 'focusin', (args) => {
|
|
@@ -25344,6 +25478,7 @@ class GridComponent {
|
|
|
25344
25478
|
const outside = !closest(next, (node) => node === ariaRoot);
|
|
25345
25479
|
if (outside) {
|
|
25346
25480
|
this.domEvents.focusOut.emit(args);
|
|
25481
|
+
this.domEvents.shiftKeyup.emit(args);
|
|
25347
25482
|
focused = false;
|
|
25348
25483
|
}
|
|
25349
25484
|
});
|
|
@@ -25354,6 +25489,7 @@ class GridComponent {
|
|
|
25354
25489
|
windowBlurSubscription();
|
|
25355
25490
|
clickSubscription();
|
|
25356
25491
|
keydownSubscription();
|
|
25492
|
+
shiftKeyupSubscription();
|
|
25357
25493
|
focusInSubscription();
|
|
25358
25494
|
focusOutSubscription();
|
|
25359
25495
|
};
|
|
@@ -25836,6 +25972,30 @@ class GridComponent {
|
|
|
25836
25972
|
|
|
25837
25973
|
i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
|
|
25838
25974
|
groupChipMenuNext="Move as next"
|
|
25975
|
+
|
|
25976
|
+
i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
|
|
25977
|
+
formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
|
|
25978
|
+
|
|
25979
|
+
i18n-removeConfirmationDialogTitle="kendo.grid.removeConfirmationDialogTitle|The title of the built-in remove item confirmation Dialog"
|
|
25980
|
+
removeConfirmationDialogTitle="Please confirm"
|
|
25981
|
+
|
|
25982
|
+
i18n-removeConfirmationDialogContent="kendo.grid.removeConfirmationDialogContent|The content of the built-in remove item confirmation Dialog"
|
|
25983
|
+
removeConfirmationDialogContent="Are you sure you want to delete this item?"
|
|
25984
|
+
|
|
25985
|
+
i18n-removeConfirmationDialogConfirmText="kendo.grid.removeConfirmationDialogConfirmText|The text of the built-in remove item confirmation Dialog confirm action button"
|
|
25986
|
+
removeConfirmationDialogConfirmText="Yes"
|
|
25987
|
+
|
|
25988
|
+
i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
|
|
25989
|
+
removeConfirmationDialogRejectText="No"
|
|
25990
|
+
|
|
25991
|
+
i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
|
|
25992
|
+
externalEditingTitle="Edit"
|
|
25993
|
+
|
|
25994
|
+
i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
|
|
25995
|
+
externalEditingSaveText="Save"
|
|
25996
|
+
|
|
25997
|
+
i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
|
|
25998
|
+
externalEditingCancelText="Cancel"
|
|
25839
25999
|
>
|
|
25840
26000
|
</ng-container>
|
|
25841
26001
|
<kendo-grid-toolbar
|
|
@@ -26064,7 +26224,8 @@ class GridComponent {
|
|
|
26064
26224
|
[columns]="$any(lockedLeafColumns)"
|
|
26065
26225
|
[detailTemplate]="detailTemplate"
|
|
26066
26226
|
[logicalRowIndex]="ariaRowCount"
|
|
26067
|
-
[totalColumns]="columnsContainer"
|
|
26227
|
+
[totalColumns]="columnsContainer"
|
|
26228
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26068
26229
|
</tfoot>
|
|
26069
26230
|
</table>
|
|
26070
26231
|
</div>
|
|
@@ -26091,7 +26252,8 @@ class GridComponent {
|
|
|
26091
26252
|
[columns]="$any(headerColumns)"
|
|
26092
26253
|
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
26093
26254
|
[detailTemplate]="detailTemplate"
|
|
26094
|
-
[totalColumns]="columnsContainer"
|
|
26255
|
+
[totalColumns]="columnsContainer"
|
|
26256
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26095
26257
|
</tfoot>
|
|
26096
26258
|
</table>
|
|
26097
26259
|
</div>
|
|
@@ -26112,6 +26274,8 @@ class GridComponent {
|
|
|
26112
26274
|
</colgroup>
|
|
26113
26275
|
<thead kendoGridHeader
|
|
26114
26276
|
*ngIf="!hideHeader"
|
|
26277
|
+
class="k-grid-header"
|
|
26278
|
+
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
26115
26279
|
role="rowgroup"
|
|
26116
26280
|
[resizable]="resizable"
|
|
26117
26281
|
[scrollable]="false"
|
|
@@ -26154,7 +26318,8 @@ class GridComponent {
|
|
|
26154
26318
|
[groups]="group"
|
|
26155
26319
|
[columns]="$any(leafColumns)"
|
|
26156
26320
|
[detailTemplate]="detailTemplate"
|
|
26157
|
-
[totalColumns]="columnsContainer"
|
|
26321
|
+
[totalColumns]="columnsContainer"
|
|
26322
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26158
26323
|
</tfoot>
|
|
26159
26324
|
</table>
|
|
26160
26325
|
</ng-container>
|
|
@@ -26237,8 +26402,10 @@ class GridComponent {
|
|
|
26237
26402
|
<kendo-pager-info *ngIf="normalizedPageableSettings.info">
|
|
26238
26403
|
</kendo-pager-info>
|
|
26239
26404
|
</ng-template>
|
|
26405
|
+
<div kendoDialogContainer></div>
|
|
26406
|
+
|
|
26240
26407
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
26241
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i44.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i44.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i44.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i44.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i44.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i44.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i44.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i44.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i44.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
26408
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i44.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i44.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i44.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: i44.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i44.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i44.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: i44.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i44.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i44.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DialogContainerDirective, selector: "[kendoDialogContainer]" }], encapsulation: i0.ViewEncapsulation.None });
|
|
26242
26409
|
}
|
|
26243
26410
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
|
|
26244
26411
|
type: Component,
|
|
@@ -26547,6 +26714,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26547
26714
|
|
|
26548
26715
|
i18n-groupChipMenuNext="kendo.grid.groupChipMenuNext|The text for the Group pane Chip Menu Move as next item"
|
|
26549
26716
|
groupChipMenuNext="Move as next"
|
|
26717
|
+
|
|
26718
|
+
i18n-formValidationErrorText="kendo.grid.formValidationErrorText|The default text of a form validation error when using external editing."
|
|
26719
|
+
formValidationErrorText="{{ 'The {fieldName} field has {errorName} validation error' }}"
|
|
26720
|
+
|
|
26721
|
+
i18n-removeConfirmationDialogTitle="kendo.grid.removeConfirmationDialogTitle|The title of the built-in remove item confirmation Dialog"
|
|
26722
|
+
removeConfirmationDialogTitle="Please confirm"
|
|
26723
|
+
|
|
26724
|
+
i18n-removeConfirmationDialogContent="kendo.grid.removeConfirmationDialogContent|The content of the built-in remove item confirmation Dialog"
|
|
26725
|
+
removeConfirmationDialogContent="Are you sure you want to delete this item?"
|
|
26726
|
+
|
|
26727
|
+
i18n-removeConfirmationDialogConfirmText="kendo.grid.removeConfirmationDialogConfirmText|The text of the built-in remove item confirmation Dialog confirm action button"
|
|
26728
|
+
removeConfirmationDialogConfirmText="Yes"
|
|
26729
|
+
|
|
26730
|
+
i18n-removeConfirmationDialogRejectText="kendo.grid.removeConfirmationDialogRejectText|The text of the built-in remove item confirmation Dialog reject action button"
|
|
26731
|
+
removeConfirmationDialogRejectText="No"
|
|
26732
|
+
|
|
26733
|
+
i18n-externalEditingTitle="kendo.grid.externalEditingTitle|The title of the built-in external editing form container"
|
|
26734
|
+
externalEditingTitle="Edit"
|
|
26735
|
+
|
|
26736
|
+
i18n-externalEditingSaveText="kendo.grid.externalEditingSaveText|The text of the external editing form Save button"
|
|
26737
|
+
externalEditingSaveText="Save"
|
|
26738
|
+
|
|
26739
|
+
i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
|
|
26740
|
+
externalEditingCancelText="Cancel"
|
|
26550
26741
|
>
|
|
26551
26742
|
</ng-container>
|
|
26552
26743
|
<kendo-grid-toolbar
|
|
@@ -26775,7 +26966,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26775
26966
|
[columns]="$any(lockedLeafColumns)"
|
|
26776
26967
|
[detailTemplate]="detailTemplate"
|
|
26777
26968
|
[logicalRowIndex]="ariaRowCount"
|
|
26778
|
-
[totalColumns]="columnsContainer"
|
|
26969
|
+
[totalColumns]="columnsContainer"
|
|
26970
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26779
26971
|
</tfoot>
|
|
26780
26972
|
</table>
|
|
26781
26973
|
</div>
|
|
@@ -26802,7 +26994,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26802
26994
|
[columns]="$any(headerColumns)"
|
|
26803
26995
|
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
26804
26996
|
[detailTemplate]="detailTemplate"
|
|
26805
|
-
[totalColumns]="columnsContainer"
|
|
26997
|
+
[totalColumns]="columnsContainer"
|
|
26998
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26806
26999
|
</tfoot>
|
|
26807
27000
|
</table>
|
|
26808
27001
|
</div>
|
|
@@ -26823,6 +27016,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26823
27016
|
</colgroup>
|
|
26824
27017
|
<thead kendoGridHeader
|
|
26825
27018
|
*ngIf="!hideHeader"
|
|
27019
|
+
class="k-grid-header"
|
|
27020
|
+
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
26826
27021
|
role="rowgroup"
|
|
26827
27022
|
[resizable]="resizable"
|
|
26828
27023
|
[scrollable]="false"
|
|
@@ -26865,7 +27060,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26865
27060
|
[groups]="group"
|
|
26866
27061
|
[columns]="$any(leafColumns)"
|
|
26867
27062
|
[detailTemplate]="detailTemplate"
|
|
26868
|
-
[totalColumns]="columnsContainer"
|
|
27063
|
+
[totalColumns]="columnsContainer"
|
|
27064
|
+
[totalColumnsCount]="leafColumns.length">
|
|
26869
27065
|
</tfoot>
|
|
26870
27066
|
</table>
|
|
26871
27067
|
</ng-container>
|
|
@@ -26948,6 +27144,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26948
27144
|
<kendo-pager-info *ngIf="normalizedPageableSettings.info">
|
|
26949
27145
|
</kendo-pager-info>
|
|
26950
27146
|
</ng-template>
|
|
27147
|
+
<div kendoDialogContainer></div>
|
|
27148
|
+
|
|
26951
27149
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
26952
27150
|
`,
|
|
26953
27151
|
standalone: true,
|
|
@@ -26956,7 +27154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26956
27154
|
TableDirective, GridTableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective,
|
|
26957
27155
|
ListComponent, DragTargetContainerDirective, DropTargetContainerDirective, DraggableDirective,
|
|
26958
27156
|
GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent, StatusBarComponent,
|
|
26959
|
-
IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet
|
|
27157
|
+
IconWrapperComponent, WatermarkOverlayComponent, ...KENDO_PAGER, NgTemplateOutlet, DialogContainerDirective
|
|
26960
27158
|
]
|
|
26961
27159
|
}]
|
|
26962
27160
|
}], ctorParameters: function () { return [{ type: BrowserSupportService }, { type: SelectionService }, { type: CellSelectionService }, { type: i0.ElementRef }, { type: GroupInfoService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: DetailsService }, { type: EditService }, { type: FilterService }, { type: PDFService }, { type: ResponsiveService }, { type: i0.Renderer2 }, { type: ExcelService }, { type: i0.NgZone }, { type: ScrollSyncService }, { type: DomEventsService }, { type: ColumnResizingService }, { type: i0.ChangeDetectorRef }, { type: ColumnReorderService }, { type: ColumnInfoService }, { type: NavigationService }, { type: SortService }, { type: ScrollRequestService }, { type: i1$2.LocalizationService }, { type: ContextService }, { type: SizingOptionsService }, { type: RowReorderService }]; }, propDecorators: { data: [{
|
|
@@ -27505,10 +27703,32 @@ class EditingDirectiveBase {
|
|
|
27505
27703
|
get editService() {
|
|
27506
27704
|
return this.userEditService || this.defaultEditService;
|
|
27507
27705
|
}
|
|
27706
|
+
removeConfirmationSubject = new Subject();
|
|
27707
|
+
dialogService;
|
|
27708
|
+
localization;
|
|
27709
|
+
defaultRemoveConfirmation = (_item) => {
|
|
27710
|
+
const dialog = this.dialogService.open({
|
|
27711
|
+
title: this.localization.get('removeConfirmationDialogTitle'),
|
|
27712
|
+
content: this.localization.get('removeConfirmationDialogContent'),
|
|
27713
|
+
actions: [{
|
|
27714
|
+
text: this.localization.get('removeConfirmationDialogConfirmText'),
|
|
27715
|
+
themeColor: 'primary',
|
|
27716
|
+
svgIcon: checkIcon,
|
|
27717
|
+
icon: 'check'
|
|
27718
|
+
}, {
|
|
27719
|
+
text: this.localization.get('removeConfirmationDialogRejectText'),
|
|
27720
|
+
svgIcon: xIcon,
|
|
27721
|
+
icon: 'x'
|
|
27722
|
+
}],
|
|
27723
|
+
});
|
|
27724
|
+
dialog.result.pipe(take(1)).subscribe((e) => this.removeConfirmationSubject.next(e.text === this.localization.get('removeConfirmationDialogConfirmText')));
|
|
27725
|
+
return this.removeConfirmationSubject;
|
|
27726
|
+
};
|
|
27508
27727
|
/**
|
|
27509
27728
|
* A function that is called to confirm if the `dataItem` will be removed.
|
|
27729
|
+
* Setting to `true` will result in displaying a default confirmation dialog.
|
|
27510
27730
|
*/
|
|
27511
|
-
removeConfirmation;
|
|
27731
|
+
removeConfirmation = false;
|
|
27512
27732
|
subscriptions = new Subscription();
|
|
27513
27733
|
defaultEditService;
|
|
27514
27734
|
userEditService;
|
|
@@ -27516,6 +27736,8 @@ class EditingDirectiveBase {
|
|
|
27516
27736
|
this.grid = grid;
|
|
27517
27737
|
this.localDataChangesService = localDataChangesService;
|
|
27518
27738
|
this.defaultEditService = this.createDefaultService();
|
|
27739
|
+
this.dialogService = inject(DialogService);
|
|
27740
|
+
this.localization = inject(LocalizationService);
|
|
27519
27741
|
}
|
|
27520
27742
|
/**
|
|
27521
27743
|
* @hidden
|
|
@@ -27536,7 +27758,7 @@ class EditingDirectiveBase {
|
|
|
27536
27758
|
createDefaultService() {
|
|
27537
27759
|
return new LocalEditService(this.grid, this.localDataChangesService);
|
|
27538
27760
|
}
|
|
27539
|
-
addHandler() {
|
|
27761
|
+
addHandler(_args) {
|
|
27540
27762
|
this.grid.addRow(this.createModel({ isNew: true }));
|
|
27541
27763
|
}
|
|
27542
27764
|
saveHandler(args) {
|
|
@@ -27561,7 +27783,8 @@ class EditingDirectiveBase {
|
|
|
27561
27783
|
}
|
|
27562
27784
|
};
|
|
27563
27785
|
if (this.removeConfirmation) {
|
|
27564
|
-
const
|
|
27786
|
+
const confirmationCallback = typeof this.removeConfirmation === 'boolean' ? this.defaultRemoveConfirmation : this.removeConfirmation;
|
|
27787
|
+
const result = confirmationCallback(dataItem);
|
|
27565
27788
|
if (result instanceof Promise) {
|
|
27566
27789
|
result.then(removeItem);
|
|
27567
27790
|
}
|
|
@@ -27842,6 +28065,495 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27842
28065
|
args: ['kendoGridInCellEditing']
|
|
27843
28066
|
}] } });
|
|
27844
28067
|
|
|
28068
|
+
/**
|
|
28069
|
+
* @hidden
|
|
28070
|
+
*/
|
|
28071
|
+
class FormFormFieldComponent {
|
|
28072
|
+
localization;
|
|
28073
|
+
cdr;
|
|
28074
|
+
control;
|
|
28075
|
+
floatingLabel;
|
|
28076
|
+
showError;
|
|
28077
|
+
input;
|
|
28078
|
+
constructor(localization, cdr) {
|
|
28079
|
+
this.localization = localization;
|
|
28080
|
+
this.cdr = cdr;
|
|
28081
|
+
}
|
|
28082
|
+
// required to avoid ExpressionChangedAfterItHasBeenCheckedError caused by
|
|
28083
|
+
// binding to the label's 'for' attribute dynamically
|
|
28084
|
+
ngAfterContentInit() {
|
|
28085
|
+
this.cdr.detectChanges();
|
|
28086
|
+
}
|
|
28087
|
+
messageFor(key, errorName, field) {
|
|
28088
|
+
return replaceMessagePlaceholder(replaceMessagePlaceholder(this.localization.get(key), 'fieldName', field), 'errorName', errorName);
|
|
28089
|
+
}
|
|
28090
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFormFieldComponent, deps: [{ token: i1$2.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
28091
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFormFieldComponent, isStandalone: true, selector: "kendo-form-formfield", inputs: { control: "control", floatingLabel: "floatingLabel", showError: "showError" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: `
|
|
28092
|
+
<kendo-formfield
|
|
28093
|
+
[orientation]="control.orientation">
|
|
28094
|
+
<kendo-floatinglabel
|
|
28095
|
+
*ngIf="control.label && floatingLabel && $any(control.dataType) !== 'boolean'"
|
|
28096
|
+
labelCssClass="k-form-label"
|
|
28097
|
+
[text]="control.label">
|
|
28098
|
+
<kendo-textbox
|
|
28099
|
+
*ngIf="$any(control.dataType) === 'text'"
|
|
28100
|
+
[formControl]="control.formControl"></kendo-textbox>
|
|
28101
|
+
<kendo-numerictextbox
|
|
28102
|
+
*ngIf="$any(control.dataType) === 'numeric'"
|
|
28103
|
+
[formControl]="control.formControl"></kendo-numerictextbox>
|
|
28104
|
+
<kendo-datepicker
|
|
28105
|
+
*ngIf="$any(control.dataType) === 'date'"
|
|
28106
|
+
[formControl]="control.formControl"></kendo-datepicker>
|
|
28107
|
+
</kendo-floatinglabel>
|
|
28108
|
+
<kendo-label [style.align-items]="'start'"
|
|
28109
|
+
*ngIf="control.label && !floatingLabel && $any(control.dataType) !== 'boolean'"
|
|
28110
|
+
labelCssClass="k-form-label"
|
|
28111
|
+
[text]="control.label"
|
|
28112
|
+
[for]="input">
|
|
28113
|
+
</kendo-label>
|
|
28114
|
+
<kendo-textbox #input
|
|
28115
|
+
*ngIf="!floatingLabel && (control.dataType) === 'text'"
|
|
28116
|
+
[formControl]="control.formControl"></kendo-textbox>
|
|
28117
|
+
<kendo-numerictextbox #input
|
|
28118
|
+
*ngIf="!floatingLabel && $any(control.dataType) === 'numeric'"
|
|
28119
|
+
[formControl]="control.formControl"></kendo-numerictextbox>
|
|
28120
|
+
<kendo-datepicker #input
|
|
28121
|
+
*ngIf="!floatingLabel && $any(control.dataType) === 'date'"
|
|
28122
|
+
[formControl]="control.formControl"></kendo-datepicker>
|
|
28123
|
+
<div
|
|
28124
|
+
*ngIf="control.label && $any(control.dataType) === 'boolean'"
|
|
28125
|
+
class="k-form-field-checkbox-wrap">
|
|
28126
|
+
<kendo-checkbox #cb [formControl]="control.formControl"></kendo-checkbox>
|
|
28127
|
+
<kendo-label
|
|
28128
|
+
*ngIf="control.label"
|
|
28129
|
+
class="k-checkbox-label"
|
|
28130
|
+
[for]="cb"
|
|
28131
|
+
[text]="control.label">
|
|
28132
|
+
</kendo-label>
|
|
28133
|
+
</div>
|
|
28134
|
+
|
|
28135
|
+
<kendo-formhint *ngIf="control?.hint">{{control.hint}}</kendo-formhint>
|
|
28136
|
+
<ng-container *ngIf="showError && control.formControl?.invalid && control.formControl.touched">
|
|
28137
|
+
<kendo-formerror *ngFor="let err of control?.formControl?.errors | keyvalue">{{control.errors ? control.errors[err.key] : messageFor('formValidationError', err.key, control.name)}}</kendo-formerror>
|
|
28138
|
+
</ng-container>
|
|
28139
|
+
</kendo-formfield>
|
|
28140
|
+
`, isInline: true, dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: i3.FloatingLabelComponent, selector: "kendo-floatinglabel", inputs: ["labelCssStyle", "labelCssClass", "id", "text", "optional"], outputs: ["positionChange"], exportAs: ["kendoFloatingLabel"] }, { kind: "component", type: i4$1.FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors"] }, { kind: "component", type: i4$1.HintComponent, selector: "kendo-formhint", inputs: ["align"] }, { kind: "component", type: i4$1.ErrorComponent, selector: "kendo-formerror", inputs: ["align"] }, { kind: "component", type: i4$1.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i4$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "component", type: i4$1.CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }, { kind: "component", type: i5$1.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }] });
|
|
28141
|
+
}
|
|
28142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFormFieldComponent, decorators: [{
|
|
28143
|
+
type: Component,
|
|
28144
|
+
args: [{
|
|
28145
|
+
selector: 'kendo-form-formfield',
|
|
28146
|
+
standalone: true,
|
|
28147
|
+
imports: [KeyValuePipe, NgFor, NgIf, ReactiveFormsModule,
|
|
28148
|
+
KENDO_LABELS, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_BUTTON, KENDO_CHECKBOX, KENDO_DATEPICKER],
|
|
28149
|
+
template: `
|
|
28150
|
+
<kendo-formfield
|
|
28151
|
+
[orientation]="control.orientation">
|
|
28152
|
+
<kendo-floatinglabel
|
|
28153
|
+
*ngIf="control.label && floatingLabel && $any(control.dataType) !== 'boolean'"
|
|
28154
|
+
labelCssClass="k-form-label"
|
|
28155
|
+
[text]="control.label">
|
|
28156
|
+
<kendo-textbox
|
|
28157
|
+
*ngIf="$any(control.dataType) === 'text'"
|
|
28158
|
+
[formControl]="control.formControl"></kendo-textbox>
|
|
28159
|
+
<kendo-numerictextbox
|
|
28160
|
+
*ngIf="$any(control.dataType) === 'numeric'"
|
|
28161
|
+
[formControl]="control.formControl"></kendo-numerictextbox>
|
|
28162
|
+
<kendo-datepicker
|
|
28163
|
+
*ngIf="$any(control.dataType) === 'date'"
|
|
28164
|
+
[formControl]="control.formControl"></kendo-datepicker>
|
|
28165
|
+
</kendo-floatinglabel>
|
|
28166
|
+
<kendo-label [style.align-items]="'start'"
|
|
28167
|
+
*ngIf="control.label && !floatingLabel && $any(control.dataType) !== 'boolean'"
|
|
28168
|
+
labelCssClass="k-form-label"
|
|
28169
|
+
[text]="control.label"
|
|
28170
|
+
[for]="input">
|
|
28171
|
+
</kendo-label>
|
|
28172
|
+
<kendo-textbox #input
|
|
28173
|
+
*ngIf="!floatingLabel && (control.dataType) === 'text'"
|
|
28174
|
+
[formControl]="control.formControl"></kendo-textbox>
|
|
28175
|
+
<kendo-numerictextbox #input
|
|
28176
|
+
*ngIf="!floatingLabel && $any(control.dataType) === 'numeric'"
|
|
28177
|
+
[formControl]="control.formControl"></kendo-numerictextbox>
|
|
28178
|
+
<kendo-datepicker #input
|
|
28179
|
+
*ngIf="!floatingLabel && $any(control.dataType) === 'date'"
|
|
28180
|
+
[formControl]="control.formControl"></kendo-datepicker>
|
|
28181
|
+
<div
|
|
28182
|
+
*ngIf="control.label && $any(control.dataType) === 'boolean'"
|
|
28183
|
+
class="k-form-field-checkbox-wrap">
|
|
28184
|
+
<kendo-checkbox #cb [formControl]="control.formControl"></kendo-checkbox>
|
|
28185
|
+
<kendo-label
|
|
28186
|
+
*ngIf="control.label"
|
|
28187
|
+
class="k-checkbox-label"
|
|
28188
|
+
[for]="cb"
|
|
28189
|
+
[text]="control.label">
|
|
28190
|
+
</kendo-label>
|
|
28191
|
+
</div>
|
|
28192
|
+
|
|
28193
|
+
<kendo-formhint *ngIf="control?.hint">{{control.hint}}</kendo-formhint>
|
|
28194
|
+
<ng-container *ngIf="showError && control.formControl?.invalid && control.formControl.touched">
|
|
28195
|
+
<kendo-formerror *ngFor="let err of control?.formControl?.errors | keyvalue">{{control.errors ? control.errors[err.key] : messageFor('formValidationError', err.key, control.name)}}</kendo-formerror>
|
|
28196
|
+
</ng-container>
|
|
28197
|
+
</kendo-formfield>
|
|
28198
|
+
`
|
|
28199
|
+
}]
|
|
28200
|
+
}], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { control: [{
|
|
28201
|
+
type: Input
|
|
28202
|
+
}], floatingLabel: [{
|
|
28203
|
+
type: Input
|
|
28204
|
+
}], showError: [{
|
|
28205
|
+
type: Input
|
|
28206
|
+
}], input: [{
|
|
28207
|
+
type: ViewChild,
|
|
28208
|
+
args: ['input']
|
|
28209
|
+
}] } });
|
|
28210
|
+
|
|
28211
|
+
let idx = 0;
|
|
28212
|
+
/**
|
|
28213
|
+
* @hidden
|
|
28214
|
+
*/
|
|
28215
|
+
class FormComponent {
|
|
28216
|
+
controls = [];
|
|
28217
|
+
set formSettings(value) {
|
|
28218
|
+
this._formSettings = { ...this._formSettings, ...value };
|
|
28219
|
+
}
|
|
28220
|
+
get formSettings() {
|
|
28221
|
+
return this._formSettings;
|
|
28222
|
+
}
|
|
28223
|
+
formGroup;
|
|
28224
|
+
set actionButtons(value) {
|
|
28225
|
+
if (typeof value === 'boolean') {
|
|
28226
|
+
this.normalizeActionButtonSettings(value);
|
|
28227
|
+
}
|
|
28228
|
+
else {
|
|
28229
|
+
this._actionButtons = value;
|
|
28230
|
+
}
|
|
28231
|
+
}
|
|
28232
|
+
get actionButtons() {
|
|
28233
|
+
return this._actionButtons;
|
|
28234
|
+
}
|
|
28235
|
+
formSubmit = new EventEmitter();
|
|
28236
|
+
get componentIndex() {
|
|
28237
|
+
return idx++;
|
|
28238
|
+
}
|
|
28239
|
+
_formSettings = {
|
|
28240
|
+
orientation: 'vertical',
|
|
28241
|
+
showErrors: true,
|
|
28242
|
+
floatingLabels: false
|
|
28243
|
+
};
|
|
28244
|
+
defaultActionButtons = [{
|
|
28245
|
+
actionType: 'submit',
|
|
28246
|
+
text: 'Submit',
|
|
28247
|
+
svgIcon: saveIcon,
|
|
28248
|
+
icon: 'save',
|
|
28249
|
+
themeColor: 'primary'
|
|
28250
|
+
}, {
|
|
28251
|
+
actionType: 'reset',
|
|
28252
|
+
svgIcon: cancelIcon,
|
|
28253
|
+
text: 'Reset',
|
|
28254
|
+
icon: 'cancel'
|
|
28255
|
+
}];
|
|
28256
|
+
_actionButtons = this.defaultActionButtons;
|
|
28257
|
+
ngOnInit() {
|
|
28258
|
+
idx++;
|
|
28259
|
+
}
|
|
28260
|
+
normalizeActionButtonSettings(value) {
|
|
28261
|
+
this._actionButtons = value ? this.defaultActionButtons : [];
|
|
28262
|
+
}
|
|
28263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28264
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormComponent, isStandalone: true, selector: "kendo-grid-external-form", inputs: { controls: "controls", formSettings: "formSettings", formGroup: "formGroup", actionButtons: "actionButtons" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: `
|
|
28265
|
+
<div role="form"
|
|
28266
|
+
class="k-form k-form-md"
|
|
28267
|
+
[class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
|
|
28268
|
+
[formGroup]="formGroup"
|
|
28269
|
+
(ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
|
|
28270
|
+
(reset)="$event.preventDefault()">
|
|
28271
|
+
<ng-container *ngFor="let control of controls; let idx = index;">
|
|
28272
|
+
<ng-container *ngIf="!control.template; else template">
|
|
28273
|
+
<kendo-form-formfield
|
|
28274
|
+
[control]="control"
|
|
28275
|
+
[showError]="formSettings.showErrors"
|
|
28276
|
+
[floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
|
|
28277
|
+
</ng-container>
|
|
28278
|
+
<ng-template #template>
|
|
28279
|
+
<ng-container
|
|
28280
|
+
[ngTemplateOutlet]="control.template"
|
|
28281
|
+
[ngTemplateOutletContext]="control.templateContext"></ng-container>
|
|
28282
|
+
</ng-template>
|
|
28283
|
+
</ng-container>
|
|
28284
|
+
<div class="k-form-buttons" *ngIf="$any(actionButtons).length">
|
|
28285
|
+
<button kendoButton *ngFor="let button of $any(actionButtons)"
|
|
28286
|
+
[class.k-form-submit]="button.actionType === 'submit'"
|
|
28287
|
+
[size]="button.size"
|
|
28288
|
+
[themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
|
|
28289
|
+
[rounded]="button.rounded"
|
|
28290
|
+
[attr.type]="button.actionType"
|
|
28291
|
+
[svgIcon]="button.svgIcon"
|
|
28292
|
+
[icon]="button.icon">
|
|
28293
|
+
{{button.text}}
|
|
28294
|
+
</button>
|
|
28295
|
+
</div>
|
|
28296
|
+
</div>
|
|
28297
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFormFieldComponent, selector: "kendo-form-formfield", inputs: ["control", "floatingLabel", "showError"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
28298
|
+
}
|
|
28299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
|
|
28300
|
+
type: Component,
|
|
28301
|
+
args: [{
|
|
28302
|
+
selector: 'kendo-grid-external-form',
|
|
28303
|
+
standalone: true,
|
|
28304
|
+
template: `
|
|
28305
|
+
<div role="form"
|
|
28306
|
+
class="k-form k-form-md"
|
|
28307
|
+
[class.k-form-horizontal]="formSettings.orientation === 'horizontal'"
|
|
28308
|
+
[formGroup]="formGroup"
|
|
28309
|
+
(ngSubmit)="formSubmit.next({originalEvent: $event, formGroup})"
|
|
28310
|
+
(reset)="$event.preventDefault()">
|
|
28311
|
+
<ng-container *ngFor="let control of controls; let idx = index;">
|
|
28312
|
+
<ng-container *ngIf="!control.template; else template">
|
|
28313
|
+
<kendo-form-formfield
|
|
28314
|
+
[control]="control"
|
|
28315
|
+
[showError]="formSettings.showErrors"
|
|
28316
|
+
[floatingLabel]="formSettings.floatingLabels"></kendo-form-formfield>
|
|
28317
|
+
</ng-container>
|
|
28318
|
+
<ng-template #template>
|
|
28319
|
+
<ng-container
|
|
28320
|
+
[ngTemplateOutlet]="control.template"
|
|
28321
|
+
[ngTemplateOutletContext]="control.templateContext"></ng-container>
|
|
28322
|
+
</ng-template>
|
|
28323
|
+
</ng-container>
|
|
28324
|
+
<div class="k-form-buttons" *ngIf="$any(actionButtons).length">
|
|
28325
|
+
<button kendoButton *ngFor="let button of $any(actionButtons)"
|
|
28326
|
+
[class.k-form-submit]="button.actionType === 'submit'"
|
|
28327
|
+
[size]="button.size"
|
|
28328
|
+
[themeColor]="button.themeColor || button.actionType === 'submit' ? 'primary' : undefined"
|
|
28329
|
+
[rounded]="button.rounded"
|
|
28330
|
+
[attr.type]="button.actionType"
|
|
28331
|
+
[svgIcon]="button.svgIcon"
|
|
28332
|
+
[icon]="button.icon">
|
|
28333
|
+
{{button.text}}
|
|
28334
|
+
</button>
|
|
28335
|
+
</div>
|
|
28336
|
+
</div>
|
|
28337
|
+
`,
|
|
28338
|
+
imports: [NgFor, NgIf, NgTemplateOutlet, ReactiveFormsModule, FormFormFieldComponent, KENDO_BUTTON],
|
|
28339
|
+
}]
|
|
28340
|
+
}], propDecorators: { controls: [{
|
|
28341
|
+
type: Input
|
|
28342
|
+
}], formSettings: [{
|
|
28343
|
+
type: Input
|
|
28344
|
+
}], formGroup: [{
|
|
28345
|
+
type: Input
|
|
28346
|
+
}], actionButtons: [{
|
|
28347
|
+
type: Input
|
|
28348
|
+
}], formSubmit: [{
|
|
28349
|
+
type: Output
|
|
28350
|
+
}] } });
|
|
28351
|
+
|
|
28352
|
+
/**
|
|
28353
|
+
* @hidden
|
|
28354
|
+
*/
|
|
28355
|
+
class DialogFormComponent extends DialogContentBase {
|
|
28356
|
+
localization;
|
|
28357
|
+
controls;
|
|
28358
|
+
formGroup;
|
|
28359
|
+
formSettings;
|
|
28360
|
+
saveIcon = saveIcon;
|
|
28361
|
+
cancelIcon = cancelIcon;
|
|
28362
|
+
constructor(dialogRef, localization) {
|
|
28363
|
+
super(dialogRef);
|
|
28364
|
+
this.localization = localization;
|
|
28365
|
+
}
|
|
28366
|
+
save() {
|
|
28367
|
+
this.dialog.close({ text: this.localization.get('externalEditingSaveText') });
|
|
28368
|
+
}
|
|
28369
|
+
cancel() {
|
|
28370
|
+
this.dialog.close({ text: this.localization.get('externalEditingCancelText') });
|
|
28371
|
+
}
|
|
28372
|
+
messageFor(key) {
|
|
28373
|
+
return this.localization.get(key);
|
|
28374
|
+
}
|
|
28375
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogFormComponent, deps: [{ token: i1$6.DialogRef }, { token: i1$2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
28376
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogFormComponent, isStandalone: true, selector: "kendo-grid-dialog-form", inputs: { controls: "controls", formGroup: "formGroup", formSettings: "formSettings" }, usesInheritance: true, ngImport: i0, template: `
|
|
28377
|
+
<kendo-grid-external-form
|
|
28378
|
+
[controls]="controls"
|
|
28379
|
+
[formGroup]="formGroup"
|
|
28380
|
+
[formSettings]="formSettings"
|
|
28381
|
+
[actionButtons]="false"></kendo-grid-external-form>
|
|
28382
|
+
<kendo-dialog-actions [layout]="this.dialog?.dialog?.instance?.actionsLayout">
|
|
28383
|
+
<button
|
|
28384
|
+
kendoButton
|
|
28385
|
+
themeColor="primary"
|
|
28386
|
+
[svgIcon]="saveIcon"
|
|
28387
|
+
[disabled]="!formGroup.valid"
|
|
28388
|
+
(click)="save()"
|
|
28389
|
+
>
|
|
28390
|
+
{{messageFor('externalEditingSaveText')}}
|
|
28391
|
+
</button>
|
|
28392
|
+
<button
|
|
28393
|
+
kendoButton
|
|
28394
|
+
[svgIcon]="cancelIcon"
|
|
28395
|
+
(click)="cancel()">
|
|
28396
|
+
{{messageFor('externalEditingCancelText')}}
|
|
28397
|
+
</button>
|
|
28398
|
+
</kendo-dialog-actions>
|
|
28399
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
28400
|
+
}
|
|
28401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogFormComponent, decorators: [{
|
|
28402
|
+
type: Component,
|
|
28403
|
+
args: [{
|
|
28404
|
+
selector: 'kendo-grid-dialog-form',
|
|
28405
|
+
standalone: true,
|
|
28406
|
+
imports: [FormComponent, DialogActionsComponent, KENDO_BUTTON],
|
|
28407
|
+
template: `
|
|
28408
|
+
<kendo-grid-external-form
|
|
28409
|
+
[controls]="controls"
|
|
28410
|
+
[formGroup]="formGroup"
|
|
28411
|
+
[formSettings]="formSettings"
|
|
28412
|
+
[actionButtons]="false"></kendo-grid-external-form>
|
|
28413
|
+
<kendo-dialog-actions [layout]="this.dialog?.dialog?.instance?.actionsLayout">
|
|
28414
|
+
<button
|
|
28415
|
+
kendoButton
|
|
28416
|
+
themeColor="primary"
|
|
28417
|
+
[svgIcon]="saveIcon"
|
|
28418
|
+
[disabled]="!formGroup.valid"
|
|
28419
|
+
(click)="save()"
|
|
28420
|
+
>
|
|
28421
|
+
{{messageFor('externalEditingSaveText')}}
|
|
28422
|
+
</button>
|
|
28423
|
+
<button
|
|
28424
|
+
kendoButton
|
|
28425
|
+
[svgIcon]="cancelIcon"
|
|
28426
|
+
(click)="cancel()">
|
|
28427
|
+
{{messageFor('externalEditingCancelText')}}
|
|
28428
|
+
</button>
|
|
28429
|
+
</kendo-dialog-actions>
|
|
28430
|
+
`
|
|
28431
|
+
}]
|
|
28432
|
+
}], ctorParameters: function () { return [{ type: i1$6.DialogRef }, { type: i1$2.LocalizationService }]; }, propDecorators: { controls: [{
|
|
28433
|
+
type: Input
|
|
28434
|
+
}], formGroup: [{
|
|
28435
|
+
type: Input
|
|
28436
|
+
}], formSettings: [{
|
|
28437
|
+
type: Input
|
|
28438
|
+
}] } });
|
|
28439
|
+
|
|
28440
|
+
/**
|
|
28441
|
+
* A directive which encapsulates the editing operations of the Grid when using the
|
|
28442
|
+
* External Form ([see example](slug:editing_directives_grid#external-editing)).
|
|
28443
|
+
*/
|
|
28444
|
+
class ExternalEditingDirective extends EditingDirectiveBase {
|
|
28445
|
+
grid;
|
|
28446
|
+
localDataChangesService;
|
|
28447
|
+
/**
|
|
28448
|
+
* The function that creates the `FormGroup` for the edited model.
|
|
28449
|
+
*/
|
|
28450
|
+
createFormGroup;
|
|
28451
|
+
/**
|
|
28452
|
+
* Allows you to customize form orientation, hints, labels and error messages.
|
|
28453
|
+
*/
|
|
28454
|
+
formSettings;
|
|
28455
|
+
/**
|
|
28456
|
+
* Allows you to customize the Dialog that contains the edit form.
|
|
28457
|
+
*/
|
|
28458
|
+
dialogSettings;
|
|
28459
|
+
constructor(grid, localDataChangesService) {
|
|
28460
|
+
super(grid, localDataChangesService);
|
|
28461
|
+
this.grid = grid;
|
|
28462
|
+
this.localDataChangesService = localDataChangesService;
|
|
28463
|
+
}
|
|
28464
|
+
ngOnInit() {
|
|
28465
|
+
super.ngOnInit();
|
|
28466
|
+
this.subscriptions
|
|
28467
|
+
.add(this.grid.edit.subscribe(this.editHandler.bind(this)));
|
|
28468
|
+
}
|
|
28469
|
+
/**
|
|
28470
|
+
* @hidden
|
|
28471
|
+
* Opens a Dialog that contains the edit form.
|
|
28472
|
+
*/
|
|
28473
|
+
openEditFormDialog(editEventArgs, formGroup, formSettings) {
|
|
28474
|
+
const settings = { content: DialogFormComponent, title: this.localization.get('externalEditingTitle'), ...this.dialogSettings };
|
|
28475
|
+
const dialog = this.dialogService.open(settings);
|
|
28476
|
+
const formControls = this.normalizeFormSettings(formGroup, editEventArgs);
|
|
28477
|
+
dialog.content.setInput('controls', formControls);
|
|
28478
|
+
formSettings && dialog.content.setInput('formSettings', formSettings);
|
|
28479
|
+
dialog.content.setInput('formGroup', formGroup);
|
|
28480
|
+
dialog.result.subscribe((r) => {
|
|
28481
|
+
const resultType = r['text'];
|
|
28482
|
+
if (resultType === this.localization.get('externalEditingSaveText')) {
|
|
28483
|
+
this.saveHandler({ ...editEventArgs, formGroup });
|
|
28484
|
+
}
|
|
28485
|
+
dialog.close();
|
|
28486
|
+
});
|
|
28487
|
+
}
|
|
28488
|
+
createModel(args) {
|
|
28489
|
+
return this.createFormGroup(args);
|
|
28490
|
+
}
|
|
28491
|
+
editHandler(args) {
|
|
28492
|
+
const formGroup = this.createModel(args);
|
|
28493
|
+
this.openEditFormDialog(args, formGroup, this.formSettings);
|
|
28494
|
+
}
|
|
28495
|
+
saveModel({ dataItem, formGroup, isNew }) {
|
|
28496
|
+
if (!formGroup.dirty && !isNew) {
|
|
28497
|
+
return;
|
|
28498
|
+
}
|
|
28499
|
+
if (formGroup.valid) {
|
|
28500
|
+
const item = dataItem || [];
|
|
28501
|
+
this.editService.assignValues(item, formGroup.value);
|
|
28502
|
+
return item;
|
|
28503
|
+
}
|
|
28504
|
+
markAllAsTouched(formGroup);
|
|
28505
|
+
}
|
|
28506
|
+
addHandler(args) {
|
|
28507
|
+
const formGroup = this.createModel(args);
|
|
28508
|
+
this.openEditFormDialog(args, formGroup, this.formSettings);
|
|
28509
|
+
}
|
|
28510
|
+
normalizeFormSettings(args, editEventArgs) {
|
|
28511
|
+
const editableColumnFields = this.grid.columns.toArray().filter(c => c.field && c.editable && isPresent$1(args.get(c.field))).map(c => c.field);
|
|
28512
|
+
const settings = editableColumnFields.map(k => {
|
|
28513
|
+
const column = this.grid.columns.toArray().find(c => c.field === k);
|
|
28514
|
+
const title = column.title || k;
|
|
28515
|
+
const template = column.editTemplateRef;
|
|
28516
|
+
const templateContext = template ? {
|
|
28517
|
+
$implicit: args,
|
|
28518
|
+
isNew: editEventArgs.isNew,
|
|
28519
|
+
column,
|
|
28520
|
+
dataItem: editEventArgs.dataItem,
|
|
28521
|
+
formGroup: args,
|
|
28522
|
+
rowIndex: editEventArgs.rowIndex
|
|
28523
|
+
} : null;
|
|
28524
|
+
const customSettings = this.formSettings?.fields?.[k];
|
|
28525
|
+
return {
|
|
28526
|
+
name: k,
|
|
28527
|
+
label: customSettings?.label || title,
|
|
28528
|
+
hint: customSettings?.hint,
|
|
28529
|
+
errors: customSettings?.errors,
|
|
28530
|
+
formControl: args.get(k),
|
|
28531
|
+
dataType: column.editor,
|
|
28532
|
+
orientation: this.formSettings?.orientation || 'vertical',
|
|
28533
|
+
template: template,
|
|
28534
|
+
templateContext: templateContext
|
|
28535
|
+
};
|
|
28536
|
+
});
|
|
28537
|
+
return settings.filter(item => isPresent$1(item));
|
|
28538
|
+
}
|
|
28539
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, deps: [{ token: GridComponent }, { token: LocalDataChangesService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28540
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ExternalEditingDirective, isStandalone: true, selector: "[kendoGridExternalEditing]", inputs: { createFormGroup: ["kendoGridExternalEditing", "createFormGroup"], formSettings: "formSettings", dialogSettings: "dialogSettings" }, usesInheritance: true, ngImport: i0 });
|
|
28541
|
+
}
|
|
28542
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExternalEditingDirective, decorators: [{
|
|
28543
|
+
type: Directive,
|
|
28544
|
+
args: [{
|
|
28545
|
+
selector: '[kendoGridExternalEditing]',
|
|
28546
|
+
standalone: true
|
|
28547
|
+
}]
|
|
28548
|
+
}], ctorParameters: function () { return [{ type: GridComponent }, { type: LocalDataChangesService }]; }, propDecorators: { createFormGroup: [{
|
|
28549
|
+
type: Input,
|
|
28550
|
+
args: ['kendoGridExternalEditing']
|
|
28551
|
+
}], formSettings: [{
|
|
28552
|
+
type: Input
|
|
28553
|
+
}], dialogSettings: [{
|
|
28554
|
+
type: Input
|
|
28555
|
+
}] } });
|
|
28556
|
+
|
|
27845
28557
|
/**
|
|
27846
28558
|
* A directive which controls the expanded state of the master detail rows. ([see example](slug:master_detail_expanded_state_grid#toc-built-in-directive))
|
|
27847
28559
|
*/
|
|
@@ -29085,6 +29797,7 @@ const KENDO_GRID_DECLARATIONS = [
|
|
|
29085
29797
|
TemplateEditingDirective,
|
|
29086
29798
|
ReactiveEditingDirective,
|
|
29087
29799
|
InCellEditingDirective,
|
|
29800
|
+
ExternalEditingDirective,
|
|
29088
29801
|
ExpandDetailsDirective,
|
|
29089
29802
|
ExpandGroupDirective,
|
|
29090
29803
|
GroupBindingDirective,
|
|
@@ -29093,7 +29806,10 @@ const KENDO_GRID_DECLARATIONS = [
|
|
|
29093
29806
|
GridToolbarFocusableDirective,
|
|
29094
29807
|
StatusBarComponent,
|
|
29095
29808
|
StatusBarTemplateDirective,
|
|
29096
|
-
GridClipboardDirective
|
|
29809
|
+
GridClipboardDirective,
|
|
29810
|
+
FormComponent,
|
|
29811
|
+
DialogFormComponent,
|
|
29812
|
+
FormFormFieldComponent
|
|
29097
29813
|
];
|
|
29098
29814
|
/**
|
|
29099
29815
|
* @hidden
|
|
@@ -29113,6 +29829,7 @@ const KENDO_GRID_EXPORTS = [
|
|
|
29113
29829
|
TemplateEditingDirective,
|
|
29114
29830
|
ReactiveEditingDirective,
|
|
29115
29831
|
InCellEditingDirective,
|
|
29832
|
+
ExternalEditingDirective,
|
|
29116
29833
|
ExpandDetailsDirective,
|
|
29117
29834
|
ExpandGroupDirective,
|
|
29118
29835
|
GridToolbarFocusableDirective,
|
|
@@ -29187,7 +29904,7 @@ const KENDO_GRID = [
|
|
|
29187
29904
|
*/
|
|
29188
29905
|
class GridModule {
|
|
29189
29906
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29190
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnMenuChooserItemCheckedDirective, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupBindingDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, TableDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, CustomMessagesComponent, GroupBindingDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent] });
|
|
29907
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridModule, imports: [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FooterComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnMenuChooserItemCheckedDirective, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupBindingDirective, GridMarqueeDirective, GridSpacerComponent, GridToolbarFocusableDirective, StatusBarComponent, StatusBarTemplateDirective, GridClipboardDirective, FormComponent, DialogFormComponent, FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, TableDirective], exports: [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, StatusBarTemplateDirective, DataBindingDirective, SelectionDirective, CustomMessagesComponent, GroupBindingDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExternalEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, i1$3.TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, LoadingComponent, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, AddCommandToolbarDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, i45.ToolBarToolComponent, i44.CustomMessagesComponent, i44.PagerFocusableDirective, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerTemplateDirective, i44.PagerComponent, i44.PagerSpacerComponent] });
|
|
29191
29908
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, providers: [
|
|
29192
29909
|
PopupService,
|
|
29193
29910
|
ResizeBatchService,
|
|
@@ -29202,7 +29919,7 @@ class GridModule {
|
|
|
29202
29919
|
MonthViewService,
|
|
29203
29920
|
YearViewService,
|
|
29204
29921
|
NavigationService$1
|
|
29205
|
-
], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, HeaderComponent, i44.CustomMessagesComponent, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent] });
|
|
29922
|
+
], imports: [GroupHeaderComponent, GroupPanelComponent, TableBodyComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, HeaderComponent, i44.CustomMessagesComponent, i44.PagerInfoComponent, i44.PagerInputComponent, i44.PagerNextButtonsComponent, i44.PagerNumericButtonsComponent, i44.PagerPageSizesComponent, i44.PagerPrevButtonsComponent, i44.PagerComponent, i44.PagerSpacerComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, FilterCellOperatorsComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridComponent, ListComponent, FormComponent, DialogFormComponent, FormFormFieldComponent, i45.ToolBarComponent, i45.ToolbarCustomMessagesComponent, i45.ToolBarButtonComponent, i45.ToolBarButtonGroupComponent, i45.ToolBarDropDownButtonComponent, i45.ToolBarSeparatorComponent, i45.ToolBarSpacerComponent, i45.ToolBarSplitButtonComponent] });
|
|
29206
29923
|
}
|
|
29207
29924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridModule, decorators: [{
|
|
29208
29925
|
type: NgModule,
|
|
@@ -29302,8 +30019,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
29302
30019
|
*/
|
|
29303
30020
|
class ExcelModule {
|
|
29304
30021
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29305
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, imports: [i1$1.IconComponent, i1$1.SVGIconComponent, ExcelComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, i5$
|
|
29306
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, providers: [IconsService], imports: [KENDO_ICONS, ExcelCommandDirective, i5$
|
|
30022
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, imports: [i1$1.IconComponent, i1$1.SVGIconComponent, ExcelComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, i5$2.ColumnComponent, i5$2.ColumnGroupComponent, i5$2.FooterTemplateDirective, i5$2.GroupFooterTemplateDirective, i5$2.GroupHeaderColumnTemplateDirective, i5$2.GroupHeaderTemplateDirective], exports: [ExcelComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, i5$2.ColumnComponent, i5$2.ColumnGroupComponent, i5$2.FooterTemplateDirective, i5$2.GroupFooterTemplateDirective, i5$2.GroupHeaderColumnTemplateDirective, i5$2.GroupHeaderTemplateDirective] });
|
|
30023
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, providers: [IconsService], imports: [KENDO_ICONS, ExcelCommandDirective, i5$2.ColumnComponent, i5$2.ColumnGroupComponent] });
|
|
29307
30024
|
}
|
|
29308
30025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExcelModule, decorators: [{
|
|
29309
30026
|
type: NgModule,
|
|
@@ -29318,5 +30035,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
29318
30035
|
* Generated bundle index. Do not edit.
|
|
29319
30036
|
*/
|
|
29320
30037
|
|
|
29321
|
-
export { AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
|
|
30038
|
+
export { AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
|
|
29322
30039
|
|