@progress/kendo-angular-grid 14.4.0-develop.13 → 14.4.0-develop.15
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/common/clipboard-types.d.ts +102 -0
- package/common/clipboard.directive.d.ts +53 -0
- package/common/clipboard.service.d.ts +28 -0
- package/common/dom-events.service.d.ts +1 -0
- package/common/error-messages.d.ts +12 -0
- package/databinding.directive.d.ts +1 -1
- package/esm2020/column-menu/column-menu-item-base.mjs +2 -1
- package/esm2020/columns/column-base.mjs +3 -2
- package/esm2020/columns/column-group.component.mjs +2 -1
- package/esm2020/columns/span-column.component.mjs +2 -1
- package/esm2020/common/clipboard-types.mjs +5 -0
- package/esm2020/common/clipboard.directive.mjs +190 -0
- package/esm2020/common/clipboard.service.mjs +191 -0
- package/esm2020/common/dom-events.service.mjs +1 -0
- package/esm2020/common/error-messages.mjs +46 -1
- package/esm2020/databinding.directive.mjs +3 -2
- package/esm2020/editing-directives/local-edit.service.mjs +2 -2
- package/esm2020/excel/excel.service.mjs +2 -1
- package/esm2020/grid.component.mjs +40 -34
- package/esm2020/grid.module.mjs +8 -4
- package/esm2020/grouping/group-scroll-binding.directive.mjs +2 -3
- package/esm2020/index.mjs +2 -0
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/pdf/pdf.component.mjs +3 -2
- package/esm2020/pdf/pdf.service.mjs +2 -1
- package/esm2020/rendering/details/detail-template.directive.mjs +2 -1
- package/esm2020/selection/selection-default.mjs +11 -5
- package/esm2020/utils.mjs +10 -0
- package/fesm2015/progress-kendo-angular-grid.mjs +498 -72
- package/fesm2020/progress-kendo-angular-grid.mjs +495 -72
- package/grid.component.d.ts +7 -1
- package/grid.module.d.ts +99 -98
- package/index.d.ts +3 -1
- package/package.json +16 -16
- package/schematics/ngAdd/index.js +3 -3
- package/selection/selection-default.d.ts +10 -4
- package/selection/types.d.ts +6 -0
- package/utils.d.ts +8 -0
|
@@ -10,7 +10,7 @@ import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip
|
|
|
10
10
|
import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, auditTime, distinctUntilChanged, tap, throttleTime, debounceTime, bufferCount } from 'rxjs/operators';
|
|
11
11
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
12
12
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
13
|
-
import { orderBy, isCompositeFilterDescriptor, process, filterBy } from '@progress/kendo-data-query';
|
|
13
|
+
import { orderBy, groupBy, isCompositeFilterDescriptor, process, filterBy } from '@progress/kendo-data-query';
|
|
14
14
|
import * as i4 from '@angular/common';
|
|
15
15
|
import { CommonModule } from '@angular/common';
|
|
16
16
|
import * as i4$2 from '@angular/forms';
|
|
@@ -166,6 +166,16 @@ const nodesToArray = (nodes) => [].slice.call(nodes);
|
|
|
166
166
|
* @hidden
|
|
167
167
|
*/
|
|
168
168
|
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
169
|
+
/**
|
|
170
|
+
* @hidden
|
|
171
|
+
*/
|
|
172
|
+
const recursiveFlatMap = (item) => isGroupResult(item) ? item.items.flatMap(recursiveFlatMap) : [item];
|
|
173
|
+
/**
|
|
174
|
+
* @hidden
|
|
175
|
+
*/
|
|
176
|
+
const isGroupResult = (obj) => {
|
|
177
|
+
return 'aggregates' in obj && 'items' in obj && 'field' in obj && 'value' in obj;
|
|
178
|
+
};
|
|
169
179
|
|
|
170
180
|
/**
|
|
171
181
|
* Represents the Kendo UI GridSpacer component for Angular.
|
|
@@ -220,6 +230,7 @@ class DomEventsService {
|
|
|
220
230
|
this.focusIn = new EventEmitter();
|
|
221
231
|
this.focusOut = new EventEmitter();
|
|
222
232
|
this.windowBlur = new EventEmitter();
|
|
233
|
+
this.paste = new EventEmitter();
|
|
223
234
|
}
|
|
224
235
|
}
|
|
225
236
|
DomEventsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DomEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -440,6 +451,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
440
451
|
}] }];
|
|
441
452
|
} });
|
|
442
453
|
|
|
454
|
+
/**
|
|
455
|
+
* @hidden
|
|
456
|
+
*/
|
|
457
|
+
const ColumnMenuErrorMessages = {
|
|
458
|
+
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
459
|
+
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns',
|
|
460
|
+
serviceInput: 'The service input of the predefined column menu components is mandatory.'
|
|
461
|
+
};
|
|
462
|
+
/**
|
|
463
|
+
* @hidden
|
|
464
|
+
*/
|
|
465
|
+
const ClipboardErrorMessages = {
|
|
466
|
+
clipboardTarget: 'The "clipboardTarget" option must be set for the ClipboardDirective to function as designed.',
|
|
467
|
+
activeCellNavigable: 'Grid must be navigable to use "activeCell" as clipboard target type.',
|
|
468
|
+
selectionStartSelectable: 'Grid must be selectable to use "selectionStart" as clipboard target type.'
|
|
469
|
+
};
|
|
470
|
+
/**
|
|
471
|
+
* @hidden
|
|
472
|
+
*/
|
|
473
|
+
const ColumnConfigurationErrorMessages = {
|
|
474
|
+
fieldName: (field) => `Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
475
|
+
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
476
|
+
Please use only valid identifier names to ensure error-free operation.`,
|
|
477
|
+
width: (value, parsedValue) => `Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`,
|
|
478
|
+
invalidColumn: (column) => `Invalid column ${column}.`,
|
|
479
|
+
requiredWidth: (columnType) => `${columnType} columns feature requires all columns to have set width.`,
|
|
480
|
+
requiredScroll: (columnType) => `${columnType} columns are only supported when scrolling is enabled.`,
|
|
481
|
+
groupColumnContent: 'ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.',
|
|
482
|
+
lockedParent: 'Locked child columns require their parent columns to be locked.',
|
|
483
|
+
columnNested: 'Columns can be nested only inside ColumnGroupComponent',
|
|
484
|
+
nestedInside: (nestedColumnNameType, parentColumnType) => `${nestedColumnNameType} cannot be nested inside ${parentColumnType}.`
|
|
485
|
+
};
|
|
486
|
+
/**
|
|
487
|
+
* @hidden
|
|
488
|
+
*/
|
|
489
|
+
const GridConfigurationErrorMessages = {
|
|
490
|
+
functionType: (propName, fn) => `${propName} must be a function, but received ${JSON.stringify(fn)}.`,
|
|
491
|
+
incompatibleFeatures: (feat1Name, feat2Name) => `'Having both ${feat1Name} and ${feat2Name} is not supported.'`,
|
|
492
|
+
nonLockedColumnPresent: 'There should be at least one non-locked column',
|
|
493
|
+
rowHeightVirtual: 'Row height and detail row height settings require virtual scrolling mode to be enabled.',
|
|
494
|
+
focusNavigable: 'The Grid should be configured as navigable to control focus',
|
|
495
|
+
expandCollapseMethods: (expandMethodName, collapseMethodName, directiveName, callbackName) => `The ${expandMethodName} and ${collapseMethodName} methods should not be called
|
|
496
|
+
when using the ${directiveName} directive or the ${callbackName} callback.
|
|
497
|
+
These methods are provided only for backwards compatibility with legacy versions.`,
|
|
498
|
+
requiredEditService: `The default edit service of the editing directives works only when binding to plain array.
|
|
499
|
+
Please provide an editService.`,
|
|
500
|
+
requiredModule: (exportedType, moduleName, componentSelector) => `Creating ${exportedType} requires including the ${moduleName} and adding the ${componentSelector} component.`,
|
|
501
|
+
groupBindingDirectives: `Using the "kendoGridGroupBinding" directive in combination with the "kendoGridExpandGroupBy" directive
|
|
502
|
+
or the "isGroupExpanded" callback is not supported. To use grouping with the "kendoGridGroupBinding" directive,
|
|
503
|
+
set the Grid "groupable" property to "true".`,
|
|
504
|
+
unsupportedMethod: (methodName, suggestedMethodName) => `Using ${methodName} in this context is not supported. Use ${suggestedMethodName} instead.`
|
|
505
|
+
};
|
|
506
|
+
|
|
443
507
|
// Incremented each time the service is instantiated.
|
|
444
508
|
let sequence = 0;
|
|
445
509
|
/**
|
|
@@ -561,7 +625,7 @@ class ColumnBase {
|
|
|
561
625
|
this.columnMenuTemplates = new QueryList();
|
|
562
626
|
this.idService = idService;
|
|
563
627
|
if (parent && idService && parent.idService.gridId() === idService.gridId() && !isColumnContainer(parent)) {
|
|
564
|
-
throw new Error(
|
|
628
|
+
throw new Error(ColumnConfigurationErrorMessages.columnNested);
|
|
565
629
|
}
|
|
566
630
|
}
|
|
567
631
|
/**
|
|
@@ -583,7 +647,7 @@ class ColumnBase {
|
|
|
583
647
|
if (typeof value === 'string') {
|
|
584
648
|
const parsedValue = this._width = parseInt(value, 10);
|
|
585
649
|
if (isDevMode()) {
|
|
586
|
-
console.warn(
|
|
650
|
+
console.warn(ColumnConfigurationErrorMessages.width(value, parsedValue));
|
|
587
651
|
}
|
|
588
652
|
}
|
|
589
653
|
else {
|
|
@@ -1181,7 +1245,7 @@ class SpanColumnComponent extends ColumnBase {
|
|
|
1181
1245
|
this.includeInChooser = false;
|
|
1182
1246
|
this._editable = true;
|
|
1183
1247
|
if (parent && parent.isSpanColumn) {
|
|
1184
|
-
throw new Error('
|
|
1248
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('SpanColumnComponent', 'SpanColumnComponent'));
|
|
1185
1249
|
}
|
|
1186
1250
|
}
|
|
1187
1251
|
/**
|
|
@@ -1396,7 +1460,7 @@ class ColumnGroupComponent extends ColumnBase {
|
|
|
1396
1460
|
*/
|
|
1397
1461
|
this.minResizableWidth = 10;
|
|
1398
1462
|
if (parent && parent.isSpanColumn) {
|
|
1399
|
-
throw new Error('ColumnGroupComponent
|
|
1463
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('ColumnGroupComponent', 'SpanColumnComponent'));
|
|
1400
1464
|
}
|
|
1401
1465
|
}
|
|
1402
1466
|
/**
|
|
@@ -4475,8 +4539,8 @@ const packageMetadata = {
|
|
|
4475
4539
|
name: '@progress/kendo-angular-grid',
|
|
4476
4540
|
productName: 'Kendo UI for Angular',
|
|
4477
4541
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4478
|
-
publishDate:
|
|
4479
|
-
version: '14.4.0-develop.
|
|
4542
|
+
publishDate: 1706010524,
|
|
4543
|
+
version: '14.4.0-develop.15',
|
|
4480
4544
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4481
4545
|
};
|
|
4482
4546
|
|
|
@@ -4508,7 +4572,7 @@ class DetailTemplateDirective {
|
|
|
4508
4572
|
*/
|
|
4509
4573
|
set showIf(fn) {
|
|
4510
4574
|
if (typeof fn !== 'function') {
|
|
4511
|
-
throw new Error(
|
|
4575
|
+
throw new Error(GridConfigurationErrorMessages.functionType('showIf', fn));
|
|
4512
4576
|
}
|
|
4513
4577
|
this._condition = fn;
|
|
4514
4578
|
}
|
|
@@ -5004,6 +5068,9 @@ class Selection {
|
|
|
5004
5068
|
this.cellSelectionState = new PairSet();
|
|
5005
5069
|
this.init();
|
|
5006
5070
|
}
|
|
5071
|
+
/**
|
|
5072
|
+
* @hidden
|
|
5073
|
+
*/
|
|
5007
5074
|
get isCellSelectionMode() {
|
|
5008
5075
|
return isPresent(this.ctx.grid.selectable) && this.ctx.grid.selectable['cell'];
|
|
5009
5076
|
}
|
|
@@ -5057,6 +5124,14 @@ class Selection {
|
|
|
5057
5124
|
}
|
|
5058
5125
|
return row.index;
|
|
5059
5126
|
}
|
|
5127
|
+
/**
|
|
5128
|
+
* @hidden
|
|
5129
|
+
*/
|
|
5130
|
+
stateToArray() {
|
|
5131
|
+
return this.isCellSelectionMode ?
|
|
5132
|
+
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5133
|
+
Array.from(this.rowSelectionState);
|
|
5134
|
+
}
|
|
5060
5135
|
getSelectionItem(row, col, colIndex) {
|
|
5061
5136
|
const itemIdentifiers = {};
|
|
5062
5137
|
itemIdentifiers.itemKey = this.getItemKey(row);
|
|
@@ -5117,11 +5192,6 @@ class Selection {
|
|
|
5117
5192
|
this.rowSelectionState = new Set(selectedKeys);
|
|
5118
5193
|
}
|
|
5119
5194
|
}
|
|
5120
|
-
stateToArray() {
|
|
5121
|
-
return this.isCellSelectionMode ?
|
|
5122
|
-
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5123
|
-
Array.from(this.rowSelectionState);
|
|
5124
|
-
}
|
|
5125
5195
|
}
|
|
5126
5196
|
Selection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Selection, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5127
5197
|
Selection.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Selection, selector: "kendo-grid-selection-base", inputs: { selectedKeys: "selectedKeys", rangeSelectionStartRow: "rangeSelectionStartRow", rangeSelectionStartColumnIndex: "rangeSelectionStartColumnIndex", selectionKey: ["kendoGridSelectBy", "selectionKey"], columnKey: "columnKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, usesOnChanges: true, ngImport: i0 });
|
|
@@ -5489,7 +5559,7 @@ class PDFService {
|
|
|
5489
5559
|
emitEvent(emitter, args) {
|
|
5490
5560
|
if (emitter.observers.length === 0) {
|
|
5491
5561
|
if (isDevMode()) {
|
|
5492
|
-
throw new Error('
|
|
5562
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('PDF', 'PDFModule', '<kendo-grid-pdf>'));
|
|
5493
5563
|
}
|
|
5494
5564
|
}
|
|
5495
5565
|
else {
|
|
@@ -5571,7 +5641,7 @@ class ExcelService {
|
|
|
5571
5641
|
save(component) {
|
|
5572
5642
|
if (this.saveToExcel.observers.length === 0) {
|
|
5573
5643
|
if (isDevMode()) {
|
|
5574
|
-
throw new Error('
|
|
5644
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('excel', 'ExcelModule', '<kendo-grid-excel>'));
|
|
5575
5645
|
}
|
|
5576
5646
|
}
|
|
5577
5647
|
else {
|
|
@@ -6794,6 +6864,189 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6794
6864
|
}]
|
|
6795
6865
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
6796
6866
|
|
|
6867
|
+
/**
|
|
6868
|
+
* @hidden
|
|
6869
|
+
*/
|
|
6870
|
+
class ClipboardService {
|
|
6871
|
+
constructor(contextService) {
|
|
6872
|
+
this.contextService = contextService;
|
|
6873
|
+
this.itemToString = (item, cols) => {
|
|
6874
|
+
if (!cols.length) {
|
|
6875
|
+
return null;
|
|
6876
|
+
}
|
|
6877
|
+
return cols.map(col => item[col.field]).join(`\t`);
|
|
6878
|
+
};
|
|
6879
|
+
}
|
|
6880
|
+
createClipboardData(data, columns, options) {
|
|
6881
|
+
var _a;
|
|
6882
|
+
let result = {
|
|
6883
|
+
gridItems: [],
|
|
6884
|
+
dataString: ''
|
|
6885
|
+
};
|
|
6886
|
+
if (options.wholeRow) {
|
|
6887
|
+
const fieldCols = columns.flatMap(c => c instanceof ColumnComponent && isPresent$1(c.field) ? [c] : []);
|
|
6888
|
+
this.targetColField = (_a = fieldCols[0]) === null || _a === void 0 ? void 0 : _a.field;
|
|
6889
|
+
this.targetRowIndex = data[0].dataRowIndex;
|
|
6890
|
+
const clipboardData = { items: [], dataStrings: [] };
|
|
6891
|
+
const colFields = fieldCols.map(c => c.field);
|
|
6892
|
+
data.forEach(item => {
|
|
6893
|
+
clipboardData.items.push({ dataItem: Object.assign({}, item.dataItem), fields: colFields });
|
|
6894
|
+
clipboardData.dataStrings.push(this.itemToString(item.dataItem, fieldCols));
|
|
6895
|
+
});
|
|
6896
|
+
result = {
|
|
6897
|
+
gridItems: options.operationType === 'cut' ? clipboardData.items.map(item => {
|
|
6898
|
+
item.fields.forEach(field => item.dataItem[field] = null);
|
|
6899
|
+
return item;
|
|
6900
|
+
}) : [...clipboardData.items],
|
|
6901
|
+
dataString: options.copyHeaders ? this.addHeaders(clipboardData.dataStrings.join(`\r\n`), fieldCols) : clipboardData.dataStrings.join(`\n`)
|
|
6902
|
+
};
|
|
6903
|
+
}
|
|
6904
|
+
else {
|
|
6905
|
+
const { tabular, groups } = this.groupSelection();
|
|
6906
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6907
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6908
|
+
if (tabular) {
|
|
6909
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6910
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6911
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6912
|
+
this.targetColField = selectedColFields[0];
|
|
6913
|
+
result.dataString = data.flatMap(item => {
|
|
6914
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6915
|
+
const existingItem = isPresent$1(itemString);
|
|
6916
|
+
if (!isPresent$1(this.targetRowIndex) && isPresent$1(itemString)) {
|
|
6917
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6918
|
+
}
|
|
6919
|
+
result.gridItems.push({
|
|
6920
|
+
dataItem: item.dataItem,
|
|
6921
|
+
fields: selectedColFields
|
|
6922
|
+
});
|
|
6923
|
+
return existingItem ? [itemString] : [];
|
|
6924
|
+
}).join(`\r\n`);
|
|
6925
|
+
if (options.copyHeaders) {
|
|
6926
|
+
result.dataString = this.addHeaders(result.dataString, selectedFieldCols);
|
|
6927
|
+
}
|
|
6928
|
+
}
|
|
6929
|
+
else { // split per row (uneven rows)
|
|
6930
|
+
const rowIdentifier = selectionDirective.selectionKey;
|
|
6931
|
+
result.dataString = data.flatMap(item => {
|
|
6932
|
+
// determine cols per item
|
|
6933
|
+
const key = rowIdentifier ?
|
|
6934
|
+
typeof rowIdentifier === 'string' ? item.dataItem[rowIdentifier] : rowIdentifier({ index: item.dataRowIndex, dataItem: item.dataItem }) :
|
|
6935
|
+
item.dataRowIndex;
|
|
6936
|
+
const selectionKeys = groups.find(gr => gr.value === key).items.map(item => item.columnKey);
|
|
6937
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6938
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6939
|
+
if (!this.targetColField) {
|
|
6940
|
+
this.targetColField = selectedColFields[0];
|
|
6941
|
+
}
|
|
6942
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6943
|
+
const existingItem = isPresent$1(itemString);
|
|
6944
|
+
if (!isPresent$1(this.targetRowIndex) && existingItem) {
|
|
6945
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6946
|
+
}
|
|
6947
|
+
if (existingItem) {
|
|
6948
|
+
result.gridItems.push({
|
|
6949
|
+
dataItem: item.dataItem,
|
|
6950
|
+
fields: selectedColFields
|
|
6951
|
+
});
|
|
6952
|
+
}
|
|
6953
|
+
return existingItem ? options.copyHeaders ? [this.addHeaders(itemString, selectedFieldCols)] : [itemString] : [];
|
|
6954
|
+
}).join(`\r\n`);
|
|
6955
|
+
}
|
|
6956
|
+
}
|
|
6957
|
+
return result;
|
|
6958
|
+
}
|
|
6959
|
+
getGridData(data, columns, targetType, targetRowIndex, options) {
|
|
6960
|
+
var _a;
|
|
6961
|
+
const separator = data.includes(`\r\n`) ? `\r\n` : data.includes(`\n`) ? `\n` : null;
|
|
6962
|
+
const dataRows = separator ? data.split(separator) : [data];
|
|
6963
|
+
this.targetRowIndex = targetRowIndex;
|
|
6964
|
+
if (targetType === 'activeCell') {
|
|
6965
|
+
if (options.wholeRow) {
|
|
6966
|
+
this.targetColField = (_a = columns.find(c => c instanceof ColumnComponent && c.field)) === null || _a === void 0 ? void 0 : _a.field;
|
|
6967
|
+
}
|
|
6968
|
+
else {
|
|
6969
|
+
const activeCellIndex = this.contextService.grid.activeCell.colIndex;
|
|
6970
|
+
for (let i = 0; i < columns.length; i++) {
|
|
6971
|
+
const col = columns[i];
|
|
6972
|
+
if (col instanceof ColumnComponent && col.field && i >= activeCellIndex) {
|
|
6973
|
+
this.targetColField = col.field;
|
|
6974
|
+
break;
|
|
6975
|
+
}
|
|
6976
|
+
}
|
|
6977
|
+
}
|
|
6978
|
+
}
|
|
6979
|
+
else {
|
|
6980
|
+
if (options.wholeRow || !options.isCellSelection) {
|
|
6981
|
+
this.targetColField = (columns.filter(c => c instanceof ColumnComponent && c.field))[0]['field'];
|
|
6982
|
+
}
|
|
6983
|
+
else {
|
|
6984
|
+
const { groups } = this.groupSelection();
|
|
6985
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6986
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6987
|
+
const visibleCols = columns.filter(c => c.isVisible);
|
|
6988
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6989
|
+
const selectedFieldCols = visibleCols.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6990
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6991
|
+
this.targetColField = selectedColFields[0];
|
|
6992
|
+
}
|
|
6993
|
+
}
|
|
6994
|
+
const items = dataRows.map(rowString => {
|
|
6995
|
+
const cells = rowString.includes(`\t`) ? rowString.split(`\t`) : [rowString];
|
|
6996
|
+
const colFields = columns.flatMap(c => (c instanceof ColumnComponent) && c.field ? [c.field] : []);
|
|
6997
|
+
const targetColFieldIndex = colFields.indexOf(this.targetColField);
|
|
6998
|
+
const affectedFields = colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length);
|
|
6999
|
+
const item = {};
|
|
7000
|
+
colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length).forEach((colField, index) => item[colField] = cells[index]);
|
|
7001
|
+
return {
|
|
7002
|
+
dataItem: item,
|
|
7003
|
+
fields: affectedFields
|
|
7004
|
+
};
|
|
7005
|
+
});
|
|
7006
|
+
return items;
|
|
7007
|
+
}
|
|
7008
|
+
groupSelection() {
|
|
7009
|
+
const selection = this.contextService.grid.selection;
|
|
7010
|
+
const groups = groupBy(selection, [{ field: 'itemKey' }])
|
|
7011
|
+
.map(gr => {
|
|
7012
|
+
gr.items.sort((a, b) => a.columnKey - b.columnKey);
|
|
7013
|
+
return gr;
|
|
7014
|
+
});
|
|
7015
|
+
for (let i = 1; i < groups.length; i++) {
|
|
7016
|
+
if (!this.areEqual(groups[i].items, groups[i - 1].items)) {
|
|
7017
|
+
return {
|
|
7018
|
+
tabular: false,
|
|
7019
|
+
groups
|
|
7020
|
+
};
|
|
7021
|
+
}
|
|
7022
|
+
}
|
|
7023
|
+
return {
|
|
7024
|
+
tabular: true,
|
|
7025
|
+
groups
|
|
7026
|
+
};
|
|
7027
|
+
}
|
|
7028
|
+
areEqual(arr1, arr2) {
|
|
7029
|
+
if (arr1.length !== arr2.length) {
|
|
7030
|
+
return false;
|
|
7031
|
+
}
|
|
7032
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
7033
|
+
if (arr1[i].columnKey !== arr2[i].columnKey) {
|
|
7034
|
+
return false;
|
|
7035
|
+
}
|
|
7036
|
+
}
|
|
7037
|
+
return true;
|
|
7038
|
+
}
|
|
7039
|
+
addHeaders(initialData, cols) {
|
|
7040
|
+
const headersRowData = cols.map(c => c.title || c.field).join(`\t`);
|
|
7041
|
+
return `${headersRowData}\r\n${initialData}`;
|
|
7042
|
+
}
|
|
7043
|
+
}
|
|
7044
|
+
ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7045
|
+
ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService });
|
|
7046
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, decorators: [{
|
|
7047
|
+
type: Injectable
|
|
7048
|
+
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
7049
|
+
|
|
6797
7050
|
/**
|
|
6798
7051
|
* @hidden
|
|
6799
7052
|
*/
|
|
@@ -11662,14 +11915,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11662
11915
|
type: Injectable
|
|
11663
11916
|
}], ctorParameters: function () { return [{ type: MenuTabbingService }]; } });
|
|
11664
11917
|
|
|
11665
|
-
/**
|
|
11666
|
-
* @hidden
|
|
11667
|
-
*/
|
|
11668
|
-
const ColumnMenuErrorMessages = {
|
|
11669
|
-
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11670
|
-
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11671
|
-
};
|
|
11672
|
-
|
|
11673
11918
|
/**
|
|
11674
11919
|
* @hidden
|
|
11675
11920
|
*/
|
|
@@ -11679,7 +11924,7 @@ class ColumnMenuItemBase {
|
|
|
11679
11924
|
}
|
|
11680
11925
|
ngOnInit() {
|
|
11681
11926
|
if (isDevMode() && !this.service) {
|
|
11682
|
-
throw new Error(
|
|
11927
|
+
throw new Error(ColumnMenuErrorMessages.serviceInput);
|
|
11683
11928
|
}
|
|
11684
11929
|
}
|
|
11685
11930
|
/**
|
|
@@ -19789,11 +20034,7 @@ const createControl = (source) => (acc, key) => {
|
|
|
19789
20034
|
const validateColumnsField = (columns) => expandColumns(columns.toArray())
|
|
19790
20035
|
.filter(isColumnComponent)
|
|
19791
20036
|
.filter(({ field }) => !isValidFieldName(field))
|
|
19792
|
-
.forEach(({ field }) => console.warn(
|
|
19793
|
-
Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
19794
|
-
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
19795
|
-
Please use only valid identifier names to ensure error-free operation.
|
|
19796
|
-
`));
|
|
20037
|
+
.forEach(({ field }) => console.warn(ColumnConfigurationErrorMessages.fieldName(field)));
|
|
19797
20038
|
const handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ group }) => isPresent(group)))
|
|
19798
20039
|
.subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
|
|
19799
20040
|
const handleExpandCollapseDetailsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))
|
|
@@ -20309,7 +20550,7 @@ class GridComponent {
|
|
|
20309
20550
|
*/
|
|
20310
20551
|
set rowClass(fn) {
|
|
20311
20552
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20312
|
-
throw new Error(
|
|
20553
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowClass', fn));
|
|
20313
20554
|
}
|
|
20314
20555
|
this._rowClass = fn;
|
|
20315
20556
|
}
|
|
@@ -20322,7 +20563,7 @@ class GridComponent {
|
|
|
20322
20563
|
*/
|
|
20323
20564
|
set rowSticky(fn) {
|
|
20324
20565
|
if (isDevMode() && isPresent(fn) && typeof fn !== 'function') {
|
|
20325
|
-
throw new Error(
|
|
20566
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSticky', fn));
|
|
20326
20567
|
}
|
|
20327
20568
|
if (isPresent(fn)) {
|
|
20328
20569
|
this._rowSticky = fn;
|
|
@@ -20338,7 +20579,7 @@ class GridComponent {
|
|
|
20338
20579
|
*/
|
|
20339
20580
|
set rowSelected(fn) {
|
|
20340
20581
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20341
|
-
throw new Error(
|
|
20582
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSelected', fn));
|
|
20342
20583
|
}
|
|
20343
20584
|
this._rowSelected = fn;
|
|
20344
20585
|
}
|
|
@@ -20355,7 +20596,7 @@ class GridComponent {
|
|
|
20355
20596
|
*/
|
|
20356
20597
|
set cellSelected(fn) {
|
|
20357
20598
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20358
|
-
throw new Error(
|
|
20599
|
+
throw new Error(GridConfigurationErrorMessages.functionType('cellSelected', fn));
|
|
20359
20600
|
}
|
|
20360
20601
|
this._cellSelected = fn;
|
|
20361
20602
|
}
|
|
@@ -20374,6 +20615,16 @@ class GridComponent {
|
|
|
20374
20615
|
get activeRow() {
|
|
20375
20616
|
return this.navigationService.activeRow;
|
|
20376
20617
|
}
|
|
20618
|
+
/**
|
|
20619
|
+
* Returns the current Grid selection.
|
|
20620
|
+
*
|
|
20621
|
+
* @hidden
|
|
20622
|
+
*/
|
|
20623
|
+
get selection() {
|
|
20624
|
+
return (this.selectable || this.selectionDirective) ?
|
|
20625
|
+
this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
|
|
20626
|
+
[];
|
|
20627
|
+
}
|
|
20377
20628
|
/**
|
|
20378
20629
|
* Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
|
|
20379
20630
|
*
|
|
@@ -21291,7 +21542,7 @@ class GridComponent {
|
|
|
21291
21542
|
instance = column;
|
|
21292
21543
|
}
|
|
21293
21544
|
if (!instance && isDevMode()) {
|
|
21294
|
-
throw new Error(
|
|
21545
|
+
throw new Error(ColumnConfigurationErrorMessages.invalidColumn(column));
|
|
21295
21546
|
}
|
|
21296
21547
|
return instance;
|
|
21297
21548
|
}
|
|
@@ -21300,43 +21551,43 @@ class GridComponent {
|
|
|
21300
21551
|
const locked = this.lockedLeafColumns.length || (this.columnMenu && this.columnMenu.lock);
|
|
21301
21552
|
const stickyColumns = this.stickyColumns.length || (this.columnMenu && this.columnMenu.stick);
|
|
21302
21553
|
if (locked && this.detailTemplate) {
|
|
21303
|
-
throw new Error('
|
|
21554
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'locked columns'));
|
|
21304
21555
|
}
|
|
21305
21556
|
if (stickyColumns && this.detailTemplate) {
|
|
21306
|
-
throw new Error('
|
|
21557
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'sticky columns'));
|
|
21307
21558
|
}
|
|
21308
21559
|
if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {
|
|
21309
|
-
throw new Error(
|
|
21560
|
+
throw new Error(GridConfigurationErrorMessages.nonLockedColumnPresent);
|
|
21310
21561
|
}
|
|
21311
21562
|
if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21312
|
-
throw new Error((locked ? 'Locked' : 'Virtual')
|
|
21563
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth(locked ? 'Locked' : 'Virtual'));
|
|
21313
21564
|
}
|
|
21314
21565
|
if (locked && !this.isScrollable) {
|
|
21315
|
-
throw new Error('Locked
|
|
21566
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Locked'));
|
|
21567
|
+
}
|
|
21568
|
+
if (stickyColumns && !this.isScrollable) {
|
|
21569
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Sticky'));
|
|
21316
21570
|
}
|
|
21317
21571
|
if (this.columnList.filter(isColumnGroupComponent).filter((x) => !x.hasChildren).length) {
|
|
21318
|
-
throw new Error(
|
|
21572
|
+
throw new Error(ColumnConfigurationErrorMessages.groupColumnContent);
|
|
21319
21573
|
}
|
|
21320
21574
|
if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {
|
|
21321
|
-
throw new Error(
|
|
21575
|
+
throw new Error(ColumnConfigurationErrorMessages.lockedParent);
|
|
21322
21576
|
}
|
|
21323
21577
|
if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {
|
|
21324
|
-
throw new Error(
|
|
21578
|
+
throw new Error(GridConfigurationErrorMessages.rowHeightVirtual);
|
|
21325
21579
|
}
|
|
21326
21580
|
if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21327
|
-
throw new Error('Sticky
|
|
21328
|
-
}
|
|
21329
|
-
if (stickyColumns && !this.isScrollable) {
|
|
21330
|
-
throw new Error('Sticky columns are only supported when scrolling is enabled.');
|
|
21581
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth('Sticky'));
|
|
21331
21582
|
}
|
|
21332
21583
|
if (stickyColumns && this.virtualColumns) {
|
|
21333
|
-
throw new Error('
|
|
21584
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky columns', 'column virtualization'));
|
|
21334
21585
|
}
|
|
21335
21586
|
if (this.rowSticky && this.scrollable === 'virtual') {
|
|
21336
|
-
throw new Error('
|
|
21587
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'row virtualization (scrollable="virtual")'));
|
|
21337
21588
|
}
|
|
21338
21589
|
if (this.rowSticky && this.groupable) {
|
|
21339
|
-
throw new Error('
|
|
21590
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
|
|
21340
21591
|
}
|
|
21341
21592
|
validateColumnsField(this.columnList);
|
|
21342
21593
|
}
|
|
@@ -21535,7 +21786,7 @@ class GridComponent {
|
|
|
21535
21786
|
}
|
|
21536
21787
|
assertNavigable() {
|
|
21537
21788
|
if (isDevMode() && !this.navigationService.enabled) {
|
|
21538
|
-
throw new Error(
|
|
21789
|
+
throw new Error(GridConfigurationErrorMessages.focusNavigable);
|
|
21539
21790
|
}
|
|
21540
21791
|
}
|
|
21541
21792
|
navigationMetadata() {
|
|
@@ -21607,9 +21858,7 @@ class GridComponent {
|
|
|
21607
21858
|
toggleDetailRowLegacy(index, expand) {
|
|
21608
21859
|
const hasCallback = typeof this.isDetailExpanded === 'function';
|
|
21609
21860
|
if (isDevMode() && hasCallback) {
|
|
21610
|
-
throw new Error('
|
|
21611
|
-
'kendoGridDetailsExpandBy directive or the isDetailExpanded callback. ' +
|
|
21612
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21861
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandRow', 'collapseRow', 'kendoGridDetailsExpandBy', 'isDetailExpanded'));
|
|
21613
21862
|
}
|
|
21614
21863
|
if (!isDevMode() && hasCallback) {
|
|
21615
21864
|
return;
|
|
@@ -21621,9 +21870,7 @@ class GridComponent {
|
|
|
21621
21870
|
toggleGroupRowLegacy(index, expand) {
|
|
21622
21871
|
const hasCallback = typeof this.isGroupExpanded === 'function';
|
|
21623
21872
|
if (isDevMode() && hasCallback) {
|
|
21624
|
-
throw new Error('
|
|
21625
|
-
'kendoGridExpandGroupBy directive or the isGroupExpanded callback. ' +
|
|
21626
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21873
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandGroup', 'collapseGroup', 'kendoGridExpandGroupBy', 'isGroupExpanded'));
|
|
21627
21874
|
}
|
|
21628
21875
|
if (!isDevMode() && hasCallback) {
|
|
21629
21876
|
return;
|
|
@@ -21698,7 +21945,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
21698
21945
|
SortService,
|
|
21699
21946
|
ContextService,
|
|
21700
21947
|
SizingOptionsService,
|
|
21701
|
-
RowReorderService
|
|
21948
|
+
RowReorderService,
|
|
21949
|
+
ClipboardService
|
|
21702
21950
|
], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
|
|
21703
21951
|
<ng-container kendoGridLocalizedMessages
|
|
21704
21952
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
@@ -22326,7 +22574,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
22326
22574
|
SortService,
|
|
22327
22575
|
ContextService,
|
|
22328
22576
|
SizingOptionsService,
|
|
22329
|
-
RowReorderService
|
|
22577
|
+
RowReorderService,
|
|
22578
|
+
ClipboardService
|
|
22330
22579
|
],
|
|
22331
22580
|
selector: 'kendo-grid',
|
|
22332
22581
|
template: `
|
|
@@ -23256,11 +23505,12 @@ class DataBindingDirective {
|
|
|
23256
23505
|
}
|
|
23257
23506
|
}
|
|
23258
23507
|
DataBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, deps: [{ token: GridComponent }, { token: i0.ChangeDetectorRef }, { token: LocalDataChangesService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23259
|
-
DataBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DataBindingDirective, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, usesOnChanges: true, ngImport: i0 });
|
|
23508
|
+
DataBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DataBindingDirective, selector: "[kendoGridBinding]", inputs: { skip: "skip", sort: "sort", filter: "filter", pageSize: "pageSize", group: "group", data: ["kendoGridBinding", "data"] }, exportAs: ["kendoGridBinding"], usesOnChanges: true, ngImport: i0 });
|
|
23260
23509
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
|
|
23261
23510
|
type: Directive,
|
|
23262
23511
|
args: [{
|
|
23263
|
-
selector: '[kendoGridBinding]'
|
|
23512
|
+
selector: '[kendoGridBinding]',
|
|
23513
|
+
exportAs: 'kendoGridBinding'
|
|
23264
23514
|
}]
|
|
23265
23515
|
}], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
|
|
23266
23516
|
type: Input
|
|
@@ -25795,8 +26045,7 @@ class LocalEditService {
|
|
|
25795
26045
|
return data;
|
|
25796
26046
|
}
|
|
25797
26047
|
if (isDevMode()) {
|
|
25798
|
-
throw new Error(
|
|
25799
|
-
'Please provide an editService.');
|
|
26048
|
+
throw new Error(GridConfigurationErrorMessages.requiredEditService);
|
|
25800
26049
|
}
|
|
25801
26050
|
return [];
|
|
25802
26051
|
}
|
|
@@ -26303,9 +26552,7 @@ class GroupBindingDirective extends DataBindingDirective {
|
|
|
26303
26552
|
}
|
|
26304
26553
|
ngAfterContentInit() {
|
|
26305
26554
|
if (isDevMode() && this.grid.isGroupExpanded) {
|
|
26306
|
-
throw new Error(
|
|
26307
|
-
'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +
|
|
26308
|
-
'set the Grid `groupable` property to `true`.');
|
|
26555
|
+
throw new Error(GridConfigurationErrorMessages.groupBindingDirectives);
|
|
26309
26556
|
}
|
|
26310
26557
|
}
|
|
26311
26558
|
groupExpand({ groupIndex }) {
|
|
@@ -26439,6 +26686,182 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
26439
26686
|
}]
|
|
26440
26687
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ContextService }]; } });
|
|
26441
26688
|
|
|
26689
|
+
/**
|
|
26690
|
+
* The directive that enables the Grid built-in clipboard support. Allows copy, cut, and paste interactions
|
|
26691
|
+
* with the Grid.
|
|
26692
|
+
*/
|
|
26693
|
+
class GridClipboardDirective {
|
|
26694
|
+
constructor(host, clipboardService, renderer, zone) {
|
|
26695
|
+
this.host = host;
|
|
26696
|
+
this.clipboardService = clipboardService;
|
|
26697
|
+
this.renderer = renderer;
|
|
26698
|
+
this.zone = zone;
|
|
26699
|
+
/**
|
|
26700
|
+
* Fires when the user performs `cut`, `copy` or `paste` action within the Grid content area.
|
|
26701
|
+
*/
|
|
26702
|
+
this.clipboard = new EventEmitter();
|
|
26703
|
+
this._clipboardSettings = {
|
|
26704
|
+
wholeRow: false,
|
|
26705
|
+
copyHeaders: false,
|
|
26706
|
+
copy: true,
|
|
26707
|
+
cut: true,
|
|
26708
|
+
paste: true
|
|
26709
|
+
};
|
|
26710
|
+
this.subs = new Subscription();
|
|
26711
|
+
this.onClipboard = (operationType, args) => {
|
|
26712
|
+
var _a, _b;
|
|
26713
|
+
if (!this.inGrid(args) || !this.clipboardSettings[operationType]) {
|
|
26714
|
+
return;
|
|
26715
|
+
}
|
|
26716
|
+
const gridData = Array.isArray(this.host.data) ? this.host.data : this.host.data.data;
|
|
26717
|
+
const gridDataItems = gridData.flatMap(recursiveFlatMap);
|
|
26718
|
+
const selection = this.host.selection;
|
|
26719
|
+
const selectionDirective = this.host.selectionDirective;
|
|
26720
|
+
const targetType = this.clipboardTarget;
|
|
26721
|
+
const isCellSelection = (((_a = this.host.selectable) === null || _a === void 0 ? void 0 : _a.cell) || selectionDirective.isCellSelectionMode);
|
|
26722
|
+
let clipboardData = [];
|
|
26723
|
+
switch (targetType) {
|
|
26724
|
+
case 'activeCell':
|
|
26725
|
+
{
|
|
26726
|
+
const targetCell = Object.assign({}, this.host.activeCell);
|
|
26727
|
+
clipboardData = targetCell && [{ dataItem: targetCell.dataItem, dataRowIndex: targetCell.dataRowIndex }];
|
|
26728
|
+
}
|
|
26729
|
+
break;
|
|
26730
|
+
case 'selectionStart':
|
|
26731
|
+
{
|
|
26732
|
+
const identifier = selectionDirective.selectionKey;
|
|
26733
|
+
clipboardData = gridDataItems.flatMap((item, index) => {
|
|
26734
|
+
if (identifier) {
|
|
26735
|
+
const key = typeof identifier === 'string' ? item[identifier] : identifier({ index: index + this.host.skip, dataItem: item });
|
|
26736
|
+
return isCellSelection ?
|
|
26737
|
+
selection.some(s => s.itemKey === key) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26738
|
+
selection.indexOf(key) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26739
|
+
}
|
|
26740
|
+
return isCellSelection ?
|
|
26741
|
+
selection.some(s => s.itemKey === index + this.host.skip) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26742
|
+
selection.indexOf(index + this.host.skip) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26743
|
+
});
|
|
26744
|
+
}
|
|
26745
|
+
break;
|
|
26746
|
+
}
|
|
26747
|
+
const isPaste = operationType === 'paste';
|
|
26748
|
+
const pastedData = args.clipboardData.getData('text').trim();
|
|
26749
|
+
const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
|
|
26750
|
+
const data = isPaste ?
|
|
26751
|
+
{
|
|
26752
|
+
dataString: pastedData,
|
|
26753
|
+
gridItems: this.clipboardService.getGridData(pastedData, visibleCols, this.clipboardTarget, clipboardData[0].dataRowIndex, {
|
|
26754
|
+
wholeRow: this.clipboardSettings.wholeRow,
|
|
26755
|
+
isCellSelection
|
|
26756
|
+
})
|
|
26757
|
+
} :
|
|
26758
|
+
this.clipboardService.createClipboardData(clipboardData || [], visibleCols, {
|
|
26759
|
+
wholeRow: this.clipboardSettings.wholeRow || !isCellSelection,
|
|
26760
|
+
copyHeaders: this.clipboardSettings.copyHeaders,
|
|
26761
|
+
operationType
|
|
26762
|
+
});
|
|
26763
|
+
!isPaste && navigator.clipboard.writeText(data.dataString);
|
|
26764
|
+
if (hasObservers(this.clipboard)) {
|
|
26765
|
+
this.clipboard.emit({
|
|
26766
|
+
type: operationType,
|
|
26767
|
+
originalEvent: args,
|
|
26768
|
+
clipboardData: data.dataString,
|
|
26769
|
+
gridData: data.gridItems,
|
|
26770
|
+
target: {
|
|
26771
|
+
dataRowIndex: this.clipboardService.targetRowIndex,
|
|
26772
|
+
colField: this.clipboardService.targetColField,
|
|
26773
|
+
dataItem: (_b = clipboardData.find(item => item.dataRowIndex === this.clipboardService.targetRowIndex)) === null || _b === void 0 ? void 0 : _b.dataItem
|
|
26774
|
+
}
|
|
26775
|
+
});
|
|
26776
|
+
}
|
|
26777
|
+
this.clipboardService.targetColField = this.clipboardService.targetRowIndex = null;
|
|
26778
|
+
};
|
|
26779
|
+
this.inGrid = (args) => {
|
|
26780
|
+
const target = document.activeElement.matches('.k-table-td') ? document.activeElement : args.target;
|
|
26781
|
+
const inContentArea = closest(target, node => { var _a; return (_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.classList.contains('k-grid-container'); });
|
|
26782
|
+
const inHost = contains$2(this.host.wrapper.nativeElement, target);
|
|
26783
|
+
return target && inHost && inContentArea;
|
|
26784
|
+
};
|
|
26785
|
+
}
|
|
26786
|
+
/**
|
|
26787
|
+
* Determines the target of the clipboard operation. The possible options are:
|
|
26788
|
+
* - `activeCell`—Only the content of the current active cell or the row it is in will be copied to the clipboard.
|
|
26789
|
+
* When pasting, the active cell will be the pivotal point for pasted content.
|
|
26790
|
+
* - `selectionStart`—The content of all selected cells or rows from the current page will be copied to the clipboard.
|
|
26791
|
+
* When pasting the first selected cell will be the pivotal point for pasted content.
|
|
26792
|
+
*
|
|
26793
|
+
* This option must be set, and the Grid keyboard navigation and/or selection functionalities must be enabled
|
|
26794
|
+
* for the Clipboard directive to function as designed.
|
|
26795
|
+
*/
|
|
26796
|
+
set clipboardTarget(value) {
|
|
26797
|
+
if (isDevMode()) {
|
|
26798
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
26799
|
+
if (value === 'activeCell' && !(this.host.navigable.length)) {
|
|
26800
|
+
console.warn(ClipboardErrorMessages.clipboardTarget.activeCellNavigable);
|
|
26801
|
+
}
|
|
26802
|
+
else if (value === 'selectionStart' && !(this.host.selectable || this.host.selectionDirective)) {
|
|
26803
|
+
console.warn(ClipboardErrorMessages.selectionStartSelectable);
|
|
26804
|
+
}
|
|
26805
|
+
else if (!isPresent(value)) {
|
|
26806
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26807
|
+
}
|
|
26808
|
+
});
|
|
26809
|
+
}
|
|
26810
|
+
this._target = value;
|
|
26811
|
+
}
|
|
26812
|
+
get clipboardTarget() {
|
|
26813
|
+
return this._target;
|
|
26814
|
+
}
|
|
26815
|
+
/**
|
|
26816
|
+
* The `GridClipboardDirective` settings.
|
|
26817
|
+
*
|
|
26818
|
+
* @default { wholeRow: false, copyHeaders: false copy: true, cut: true, paste: true }
|
|
26819
|
+
*/
|
|
26820
|
+
set clipboardSettings(value) {
|
|
26821
|
+
this._clipboardSettings = Object.assign({}, this._clipboardSettings, value);
|
|
26822
|
+
}
|
|
26823
|
+
get clipboardSettings() {
|
|
26824
|
+
return this._clipboardSettings;
|
|
26825
|
+
}
|
|
26826
|
+
ngAfterViewInit() {
|
|
26827
|
+
if (!isDocumentAvailable()) {
|
|
26828
|
+
return;
|
|
26829
|
+
}
|
|
26830
|
+
if (isDevMode() && !isPresent(this.clipboardTarget)) {
|
|
26831
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26832
|
+
}
|
|
26833
|
+
// needed due to the following issue in Chrome
|
|
26834
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1156117&q=focus%20programmatically%20paste&can=2
|
|
26835
|
+
this.subs.add(this.renderer.listen(document, 'copy', (args) => this.onClipboard('copy', args)));
|
|
26836
|
+
this.subs.add(this.renderer.listen(document, 'cut', (args) => this.onClipboard('cut', args)));
|
|
26837
|
+
this.subs.add(this.renderer.listen(document, 'paste', (args) => this.onClipboard('paste', args)));
|
|
26838
|
+
}
|
|
26839
|
+
ngOnChanges(changes) {
|
|
26840
|
+
if (changes['clipboardTarget'] && isDevMode() && !isPresent(changes['clipboardTarget'].currentValue)) {
|
|
26841
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26842
|
+
}
|
|
26843
|
+
}
|
|
26844
|
+
ngOnDestroy() {
|
|
26845
|
+
this.subs.unsubscribe();
|
|
26846
|
+
}
|
|
26847
|
+
}
|
|
26848
|
+
GridClipboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, deps: [{ token: GridComponent }, { token: ClipboardService }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26849
|
+
GridClipboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridClipboardDirective, selector: "[kendoGridClipboard]", inputs: { clipboardTarget: "clipboardTarget", clipboardSettings: "clipboardSettings" }, outputs: { clipboard: "clipboard" }, providers: [ClipboardService], exportAs: ["kendoGridClipboard"], usesOnChanges: true, ngImport: i0 });
|
|
26850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, decorators: [{
|
|
26851
|
+
type: Directive,
|
|
26852
|
+
args: [{
|
|
26853
|
+
selector: '[kendoGridClipboard]',
|
|
26854
|
+
exportAs: 'kendoGridClipboard',
|
|
26855
|
+
providers: [ClipboardService]
|
|
26856
|
+
}]
|
|
26857
|
+
}], ctorParameters: function () { return [{ type: GridComponent }, { type: ClipboardService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { clipboardTarget: [{
|
|
26858
|
+
type: Input
|
|
26859
|
+
}], clipboardSettings: [{
|
|
26860
|
+
type: Input
|
|
26861
|
+
}], clipboard: [{
|
|
26862
|
+
type: Output
|
|
26863
|
+
}] } });
|
|
26864
|
+
|
|
26442
26865
|
const exportedModules$1 = [
|
|
26443
26866
|
GridComponent,
|
|
26444
26867
|
ToolbarTemplateDirective,
|
|
@@ -26463,7 +26886,8 @@ const exportedModules$1 = [
|
|
|
26463
26886
|
...PagerModule.exports(),
|
|
26464
26887
|
...RowFilterModule.exports(),
|
|
26465
26888
|
...FilterMenuModule.exports(),
|
|
26466
|
-
...ColumnMenuModule.exports()
|
|
26889
|
+
...ColumnMenuModule.exports(),
|
|
26890
|
+
GridClipboardDirective
|
|
26467
26891
|
];
|
|
26468
26892
|
const declarations$2 = [
|
|
26469
26893
|
GridComponent,
|
|
@@ -26484,7 +26908,8 @@ const declarations$2 = [
|
|
|
26484
26908
|
GridSpacerComponent,
|
|
26485
26909
|
GridToolbarFocusableDirective,
|
|
26486
26910
|
StatusBarComponent,
|
|
26487
|
-
StatusBarTemplateDirective
|
|
26911
|
+
StatusBarTemplateDirective,
|
|
26912
|
+
GridClipboardDirective
|
|
26488
26913
|
];
|
|
26489
26914
|
/**
|
|
26490
26915
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
@@ -26528,7 +26953,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26528
26953
|
GridSpacerComponent,
|
|
26529
26954
|
GridToolbarFocusableDirective,
|
|
26530
26955
|
StatusBarComponent,
|
|
26531
|
-
StatusBarTemplateDirective
|
|
26956
|
+
StatusBarTemplateDirective,
|
|
26957
|
+
GridClipboardDirective], imports: [CommonModule,
|
|
26532
26958
|
GroupModule,
|
|
26533
26959
|
SharedModule,
|
|
26534
26960
|
BodyModule,
|
|
@@ -26554,7 +26980,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26554
26980
|
InCellEditingDirective,
|
|
26555
26981
|
ExpandDetailsDirective,
|
|
26556
26982
|
ExpandGroupDirective,
|
|
26557
|
-
GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent] });
|
|
26983
|
+
GridToolbarFocusableDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, GridTableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, RowReorderColumnComponent, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective] });
|
|
26558
26984
|
GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
|
|
26559
26985
|
CommonModule,
|
|
26560
26986
|
GroupModule,
|
|
@@ -26853,13 +27279,13 @@ class PDFComponent extends PDFExportComponent {
|
|
|
26853
27279
|
* @hidden
|
|
26854
27280
|
*/
|
|
26855
27281
|
saveAs(_) {
|
|
26856
|
-
throw new Error('
|
|
27282
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
|
|
26857
27283
|
}
|
|
26858
27284
|
/**
|
|
26859
27285
|
* @hidden
|
|
26860
27286
|
*/
|
|
26861
27287
|
export() {
|
|
26862
|
-
throw new Error('
|
|
27288
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('export', 'GridComponent.drawPDF'));
|
|
26863
27289
|
}
|
|
26864
27290
|
savePDF(component) {
|
|
26865
27291
|
this.createPDF(component, this.draw);
|
|
@@ -27457,5 +27883,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
27457
27883
|
* Generated bundle index. Do not edit.
|
|
27458
27884
|
*/
|
|
27459
27885
|
|
|
27460
|
-
export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, 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, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
|
|
27886
|
+
export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, 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, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
|
|
27461
27887
|
|