@progress/kendo-angular-grid 14.4.0-develop.14 → 14.4.0-develop.16
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/NOTICE.txt +146 -593
- 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 });
|
|
@@ -2239,6 +2250,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2239
2250
|
type: Optional
|
|
2240
2251
|
}] }]; } });
|
|
2241
2252
|
|
|
2253
|
+
/**
|
|
2254
|
+
* @hidden
|
|
2255
|
+
*/
|
|
2256
|
+
const ColumnMenuErrorMessages = {
|
|
2257
|
+
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
2258
|
+
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns',
|
|
2259
|
+
serviceInput: 'The service input of the predefined column menu components is mandatory.'
|
|
2260
|
+
};
|
|
2261
|
+
/**
|
|
2262
|
+
* @hidden
|
|
2263
|
+
*/
|
|
2264
|
+
const ClipboardErrorMessages = {
|
|
2265
|
+
clipboardTarget: 'The "clipboardTarget" option must be set for the ClipboardDirective to function as designed.',
|
|
2266
|
+
activeCellNavigable: 'Grid must be navigable to use "activeCell" as clipboard target type.',
|
|
2267
|
+
selectionStartSelectable: 'Grid must be selectable to use "selectionStart" as clipboard target type.'
|
|
2268
|
+
};
|
|
2269
|
+
/**
|
|
2270
|
+
* @hidden
|
|
2271
|
+
*/
|
|
2272
|
+
const ColumnConfigurationErrorMessages = {
|
|
2273
|
+
fieldName: (field) => `Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
2274
|
+
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
2275
|
+
Please use only valid identifier names to ensure error-free operation.`,
|
|
2276
|
+
width: (value, parsedValue) => `Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`,
|
|
2277
|
+
invalidColumn: (column) => `Invalid column ${column}.`,
|
|
2278
|
+
requiredWidth: (columnType) => `${columnType} columns feature requires all columns to have set width.`,
|
|
2279
|
+
requiredScroll: (columnType) => `${columnType} columns are only supported when scrolling is enabled.`,
|
|
2280
|
+
groupColumnContent: 'ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.',
|
|
2281
|
+
lockedParent: 'Locked child columns require their parent columns to be locked.',
|
|
2282
|
+
columnNested: 'Columns can be nested only inside ColumnGroupComponent',
|
|
2283
|
+
nestedInside: (nestedColumnNameType, parentColumnType) => `${nestedColumnNameType} cannot be nested inside ${parentColumnType}.`
|
|
2284
|
+
};
|
|
2285
|
+
/**
|
|
2286
|
+
* @hidden
|
|
2287
|
+
*/
|
|
2288
|
+
const GridConfigurationErrorMessages = {
|
|
2289
|
+
functionType: (propName, fn) => `${propName} must be a function, but received ${JSON.stringify(fn)}.`,
|
|
2290
|
+
incompatibleFeatures: (feat1Name, feat2Name) => `'Having both ${feat1Name} and ${feat2Name} is not supported.'`,
|
|
2291
|
+
nonLockedColumnPresent: 'There should be at least one non-locked column',
|
|
2292
|
+
rowHeightVirtual: 'Row height and detail row height settings require virtual scrolling mode to be enabled.',
|
|
2293
|
+
focusNavigable: 'The Grid should be configured as navigable to control focus',
|
|
2294
|
+
expandCollapseMethods: (expandMethodName, collapseMethodName, directiveName, callbackName) => `The ${expandMethodName} and ${collapseMethodName} methods should not be called
|
|
2295
|
+
when using the ${directiveName} directive or the ${callbackName} callback.
|
|
2296
|
+
These methods are provided only for backwards compatibility with legacy versions.`,
|
|
2297
|
+
requiredEditService: `The default edit service of the editing directives works only when binding to plain array.
|
|
2298
|
+
Please provide an editService.`,
|
|
2299
|
+
requiredModule: (exportedType, moduleName, componentSelector) => `Creating ${exportedType} requires including the ${moduleName} and adding the ${componentSelector} component.`,
|
|
2300
|
+
groupBindingDirectives: `Using the "kendoGridGroupBinding" directive in combination with the "kendoGridExpandGroupBy" directive
|
|
2301
|
+
or the "isGroupExpanded" callback is not supported. To use grouping with the "kendoGridGroupBinding" directive,
|
|
2302
|
+
set the Grid "groupable" property to "true".`,
|
|
2303
|
+
unsupportedMethod: (methodName, suggestedMethodName) => `Using ${methodName} in this context is not supported. Use ${suggestedMethodName} instead.`
|
|
2304
|
+
};
|
|
2305
|
+
|
|
2242
2306
|
/**
|
|
2243
2307
|
* @hidden
|
|
2244
2308
|
*/
|
|
@@ -2332,7 +2396,7 @@ class ColumnBase {
|
|
|
2332
2396
|
this.columnMenuTemplates = new QueryList();
|
|
2333
2397
|
this.idService = idService;
|
|
2334
2398
|
if (parent && idService && parent.idService.gridId() === idService.gridId() && !isColumnContainer(parent)) {
|
|
2335
|
-
throw new Error(
|
|
2399
|
+
throw new Error(ColumnConfigurationErrorMessages.columnNested);
|
|
2336
2400
|
}
|
|
2337
2401
|
}
|
|
2338
2402
|
/**
|
|
@@ -2354,7 +2418,7 @@ class ColumnBase {
|
|
|
2354
2418
|
if (typeof value === 'string') {
|
|
2355
2419
|
const parsedValue = this._width = parseInt(value, 10);
|
|
2356
2420
|
if (isDevMode()) {
|
|
2357
|
-
console.warn(
|
|
2421
|
+
console.warn(ColumnConfigurationErrorMessages.width(value, parsedValue));
|
|
2358
2422
|
}
|
|
2359
2423
|
}
|
|
2360
2424
|
else {
|
|
@@ -2936,7 +3000,7 @@ class SpanColumnComponent extends ColumnBase {
|
|
|
2936
3000
|
this.includeInChooser = false;
|
|
2937
3001
|
this._editable = true;
|
|
2938
3002
|
if (parent && parent.isSpanColumn) {
|
|
2939
|
-
throw new Error('
|
|
3003
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('SpanColumnComponent', 'SpanColumnComponent'));
|
|
2940
3004
|
}
|
|
2941
3005
|
}
|
|
2942
3006
|
/**
|
|
@@ -3149,7 +3213,7 @@ class ColumnGroupComponent extends ColumnBase {
|
|
|
3149
3213
|
*/
|
|
3150
3214
|
this.minResizableWidth = 10;
|
|
3151
3215
|
if (parent && parent.isSpanColumn) {
|
|
3152
|
-
throw new Error('ColumnGroupComponent
|
|
3216
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('ColumnGroupComponent', 'SpanColumnComponent'));
|
|
3153
3217
|
}
|
|
3154
3218
|
}
|
|
3155
3219
|
/**
|
|
@@ -4443,8 +4507,8 @@ const packageMetadata = {
|
|
|
4443
4507
|
name: '@progress/kendo-angular-grid',
|
|
4444
4508
|
productName: 'Kendo UI for Angular',
|
|
4445
4509
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4446
|
-
publishDate:
|
|
4447
|
-
version: '14.4.0-develop.
|
|
4510
|
+
publishDate: 1706186543,
|
|
4511
|
+
version: '14.4.0-develop.16',
|
|
4448
4512
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4449
4513
|
};
|
|
4450
4514
|
|
|
@@ -4476,7 +4540,7 @@ class DetailTemplateDirective {
|
|
|
4476
4540
|
*/
|
|
4477
4541
|
set showIf(fn) {
|
|
4478
4542
|
if (typeof fn !== 'function') {
|
|
4479
|
-
throw new Error(
|
|
4543
|
+
throw new Error(GridConfigurationErrorMessages.functionType('showIf', fn));
|
|
4480
4544
|
}
|
|
4481
4545
|
this._condition = fn;
|
|
4482
4546
|
}
|
|
@@ -4970,6 +5034,9 @@ class Selection {
|
|
|
4970
5034
|
this.cellSelectionState = new PairSet();
|
|
4971
5035
|
this.init();
|
|
4972
5036
|
}
|
|
5037
|
+
/**
|
|
5038
|
+
* @hidden
|
|
5039
|
+
*/
|
|
4973
5040
|
get isCellSelectionMode() {
|
|
4974
5041
|
return isPresent(this.ctx.grid.selectable) && this.ctx.grid.selectable['cell'];
|
|
4975
5042
|
}
|
|
@@ -5023,6 +5090,14 @@ class Selection {
|
|
|
5023
5090
|
}
|
|
5024
5091
|
return row.index;
|
|
5025
5092
|
}
|
|
5093
|
+
/**
|
|
5094
|
+
* @hidden
|
|
5095
|
+
*/
|
|
5096
|
+
stateToArray() {
|
|
5097
|
+
return this.isCellSelectionMode ?
|
|
5098
|
+
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5099
|
+
Array.from(this.rowSelectionState);
|
|
5100
|
+
}
|
|
5026
5101
|
getSelectionItem(row, col, colIndex) {
|
|
5027
5102
|
const itemIdentifiers = {};
|
|
5028
5103
|
itemIdentifiers.itemKey = this.getItemKey(row);
|
|
@@ -5083,11 +5158,6 @@ class Selection {
|
|
|
5083
5158
|
this.rowSelectionState = new Set(selectedKeys);
|
|
5084
5159
|
}
|
|
5085
5160
|
}
|
|
5086
|
-
stateToArray() {
|
|
5087
|
-
return this.isCellSelectionMode ?
|
|
5088
|
-
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5089
|
-
Array.from(this.rowSelectionState);
|
|
5090
|
-
}
|
|
5091
5161
|
}
|
|
5092
5162
|
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 });
|
|
5093
5163
|
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 });
|
|
@@ -5449,7 +5519,7 @@ class PDFService {
|
|
|
5449
5519
|
emitEvent(emitter, args) {
|
|
5450
5520
|
if (emitter.observers.length === 0) {
|
|
5451
5521
|
if (isDevMode()) {
|
|
5452
|
-
throw new Error('
|
|
5522
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('PDF', 'PDFModule', '<kendo-grid-pdf>'));
|
|
5453
5523
|
}
|
|
5454
5524
|
}
|
|
5455
5525
|
else {
|
|
@@ -5531,7 +5601,7 @@ class ExcelService {
|
|
|
5531
5601
|
save(component) {
|
|
5532
5602
|
if (this.saveToExcel.observers.length === 0) {
|
|
5533
5603
|
if (isDevMode()) {
|
|
5534
|
-
throw new Error('
|
|
5604
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('excel', 'ExcelModule', '<kendo-grid-excel>'));
|
|
5535
5605
|
}
|
|
5536
5606
|
}
|
|
5537
5607
|
else {
|
|
@@ -6748,6 +6818,187 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6748
6818
|
}]
|
|
6749
6819
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
6750
6820
|
|
|
6821
|
+
/**
|
|
6822
|
+
* @hidden
|
|
6823
|
+
*/
|
|
6824
|
+
class ClipboardService {
|
|
6825
|
+
constructor(contextService) {
|
|
6826
|
+
this.contextService = contextService;
|
|
6827
|
+
this.itemToString = (item, cols) => {
|
|
6828
|
+
if (!cols.length) {
|
|
6829
|
+
return null;
|
|
6830
|
+
}
|
|
6831
|
+
return cols.map(col => item[col.field]).join(`\t`);
|
|
6832
|
+
};
|
|
6833
|
+
}
|
|
6834
|
+
createClipboardData(data, columns, options) {
|
|
6835
|
+
let result = {
|
|
6836
|
+
gridItems: [],
|
|
6837
|
+
dataString: ''
|
|
6838
|
+
};
|
|
6839
|
+
if (options.wholeRow) {
|
|
6840
|
+
const fieldCols = columns.flatMap(c => c instanceof ColumnComponent && isPresent$1(c.field) ? [c] : []);
|
|
6841
|
+
this.targetColField = fieldCols[0]?.field;
|
|
6842
|
+
this.targetRowIndex = data[0].dataRowIndex;
|
|
6843
|
+
const clipboardData = { items: [], dataStrings: [] };
|
|
6844
|
+
const colFields = fieldCols.map(c => c.field);
|
|
6845
|
+
data.forEach(item => {
|
|
6846
|
+
clipboardData.items.push({ dataItem: { ...item.dataItem }, fields: colFields });
|
|
6847
|
+
clipboardData.dataStrings.push(this.itemToString(item.dataItem, fieldCols));
|
|
6848
|
+
});
|
|
6849
|
+
result = {
|
|
6850
|
+
gridItems: options.operationType === 'cut' ? clipboardData.items.map(item => {
|
|
6851
|
+
item.fields.forEach(field => item.dataItem[field] = null);
|
|
6852
|
+
return item;
|
|
6853
|
+
}) : [...clipboardData.items],
|
|
6854
|
+
dataString: options.copyHeaders ? this.addHeaders(clipboardData.dataStrings.join(`\r\n`), fieldCols) : clipboardData.dataStrings.join(`\n`)
|
|
6855
|
+
};
|
|
6856
|
+
}
|
|
6857
|
+
else {
|
|
6858
|
+
const { tabular, groups } = this.groupSelection();
|
|
6859
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6860
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6861
|
+
if (tabular) {
|
|
6862
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6863
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6864
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6865
|
+
this.targetColField = selectedColFields[0];
|
|
6866
|
+
result.dataString = data.flatMap(item => {
|
|
6867
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6868
|
+
const existingItem = isPresent$1(itemString);
|
|
6869
|
+
if (!isPresent$1(this.targetRowIndex) && isPresent$1(itemString)) {
|
|
6870
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6871
|
+
}
|
|
6872
|
+
result.gridItems.push({
|
|
6873
|
+
dataItem: item.dataItem,
|
|
6874
|
+
fields: selectedColFields
|
|
6875
|
+
});
|
|
6876
|
+
return existingItem ? [itemString] : [];
|
|
6877
|
+
}).join(`\r\n`);
|
|
6878
|
+
if (options.copyHeaders) {
|
|
6879
|
+
result.dataString = this.addHeaders(result.dataString, selectedFieldCols);
|
|
6880
|
+
}
|
|
6881
|
+
}
|
|
6882
|
+
else { // split per row (uneven rows)
|
|
6883
|
+
const rowIdentifier = selectionDirective.selectionKey;
|
|
6884
|
+
result.dataString = data.flatMap(item => {
|
|
6885
|
+
// determine cols per item
|
|
6886
|
+
const key = rowIdentifier ?
|
|
6887
|
+
typeof rowIdentifier === 'string' ? item.dataItem[rowIdentifier] : rowIdentifier({ index: item.dataRowIndex, dataItem: item.dataItem }) :
|
|
6888
|
+
item.dataRowIndex;
|
|
6889
|
+
const selectionKeys = groups.find(gr => gr.value === key).items.map(item => item.columnKey);
|
|
6890
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6891
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6892
|
+
if (!this.targetColField) {
|
|
6893
|
+
this.targetColField = selectedColFields[0];
|
|
6894
|
+
}
|
|
6895
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6896
|
+
const existingItem = isPresent$1(itemString);
|
|
6897
|
+
if (!isPresent$1(this.targetRowIndex) && existingItem) {
|
|
6898
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6899
|
+
}
|
|
6900
|
+
if (existingItem) {
|
|
6901
|
+
result.gridItems.push({
|
|
6902
|
+
dataItem: item.dataItem,
|
|
6903
|
+
fields: selectedColFields
|
|
6904
|
+
});
|
|
6905
|
+
}
|
|
6906
|
+
return existingItem ? options.copyHeaders ? [this.addHeaders(itemString, selectedFieldCols)] : [itemString] : [];
|
|
6907
|
+
}).join(`\r\n`);
|
|
6908
|
+
}
|
|
6909
|
+
}
|
|
6910
|
+
return result;
|
|
6911
|
+
}
|
|
6912
|
+
getGridData(data, columns, targetType, targetRowIndex, options) {
|
|
6913
|
+
const separator = data.includes(`\r\n`) ? `\r\n` : data.includes(`\n`) ? `\n` : null;
|
|
6914
|
+
const dataRows = separator ? data.split(separator) : [data];
|
|
6915
|
+
this.targetRowIndex = targetRowIndex;
|
|
6916
|
+
if (targetType === 'activeCell') {
|
|
6917
|
+
if (options.wholeRow) {
|
|
6918
|
+
this.targetColField = columns.find(c => c instanceof ColumnComponent && c.field)?.field;
|
|
6919
|
+
}
|
|
6920
|
+
else {
|
|
6921
|
+
const activeCellIndex = this.contextService.grid.activeCell.colIndex;
|
|
6922
|
+
for (let i = 0; i < columns.length; i++) {
|
|
6923
|
+
const col = columns[i];
|
|
6924
|
+
if (col instanceof ColumnComponent && col.field && i >= activeCellIndex) {
|
|
6925
|
+
this.targetColField = col.field;
|
|
6926
|
+
break;
|
|
6927
|
+
}
|
|
6928
|
+
}
|
|
6929
|
+
}
|
|
6930
|
+
}
|
|
6931
|
+
else {
|
|
6932
|
+
if (options.wholeRow || !options.isCellSelection) {
|
|
6933
|
+
this.targetColField = (columns.filter(c => c instanceof ColumnComponent && c.field))[0]['field'];
|
|
6934
|
+
}
|
|
6935
|
+
else {
|
|
6936
|
+
const { groups } = this.groupSelection();
|
|
6937
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6938
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6939
|
+
const visibleCols = columns.filter(c => c.isVisible);
|
|
6940
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6941
|
+
const selectedFieldCols = visibleCols.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6942
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6943
|
+
this.targetColField = selectedColFields[0];
|
|
6944
|
+
}
|
|
6945
|
+
}
|
|
6946
|
+
const items = dataRows.map(rowString => {
|
|
6947
|
+
const cells = rowString.includes(`\t`) ? rowString.split(`\t`) : [rowString];
|
|
6948
|
+
const colFields = columns.flatMap(c => (c instanceof ColumnComponent) && c.field ? [c.field] : []);
|
|
6949
|
+
const targetColFieldIndex = colFields.indexOf(this.targetColField);
|
|
6950
|
+
const affectedFields = colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length);
|
|
6951
|
+
const item = {};
|
|
6952
|
+
colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length).forEach((colField, index) => item[colField] = cells[index]);
|
|
6953
|
+
return {
|
|
6954
|
+
dataItem: item,
|
|
6955
|
+
fields: affectedFields
|
|
6956
|
+
};
|
|
6957
|
+
});
|
|
6958
|
+
return items;
|
|
6959
|
+
}
|
|
6960
|
+
groupSelection() {
|
|
6961
|
+
const selection = this.contextService.grid.selection;
|
|
6962
|
+
const groups = groupBy(selection, [{ field: 'itemKey' }])
|
|
6963
|
+
.map(gr => {
|
|
6964
|
+
gr.items.sort((a, b) => a.columnKey - b.columnKey);
|
|
6965
|
+
return gr;
|
|
6966
|
+
});
|
|
6967
|
+
for (let i = 1; i < groups.length; i++) {
|
|
6968
|
+
if (!this.areEqual(groups[i].items, groups[i - 1].items)) {
|
|
6969
|
+
return {
|
|
6970
|
+
tabular: false,
|
|
6971
|
+
groups
|
|
6972
|
+
};
|
|
6973
|
+
}
|
|
6974
|
+
}
|
|
6975
|
+
return {
|
|
6976
|
+
tabular: true,
|
|
6977
|
+
groups
|
|
6978
|
+
};
|
|
6979
|
+
}
|
|
6980
|
+
areEqual(arr1, arr2) {
|
|
6981
|
+
if (arr1.length !== arr2.length) {
|
|
6982
|
+
return false;
|
|
6983
|
+
}
|
|
6984
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
6985
|
+
if (arr1[i].columnKey !== arr2[i].columnKey) {
|
|
6986
|
+
return false;
|
|
6987
|
+
}
|
|
6988
|
+
}
|
|
6989
|
+
return true;
|
|
6990
|
+
}
|
|
6991
|
+
addHeaders(initialData, cols) {
|
|
6992
|
+
const headersRowData = cols.map(c => c.title || c.field).join(`\t`);
|
|
6993
|
+
return `${headersRowData}\r\n${initialData}`;
|
|
6994
|
+
}
|
|
6995
|
+
}
|
|
6996
|
+
ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6997
|
+
ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService });
|
|
6998
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, decorators: [{
|
|
6999
|
+
type: Injectable
|
|
7000
|
+
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
7001
|
+
|
|
6751
7002
|
/**
|
|
6752
7003
|
* @hidden
|
|
6753
7004
|
*/
|
|
@@ -11599,14 +11850,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11599
11850
|
type: Injectable
|
|
11600
11851
|
}], ctorParameters: function () { return [{ type: MenuTabbingService }]; } });
|
|
11601
11852
|
|
|
11602
|
-
/**
|
|
11603
|
-
* @hidden
|
|
11604
|
-
*/
|
|
11605
|
-
const ColumnMenuErrorMessages = {
|
|
11606
|
-
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11607
|
-
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11608
|
-
};
|
|
11609
|
-
|
|
11610
11853
|
/**
|
|
11611
11854
|
* @hidden
|
|
11612
11855
|
*/
|
|
@@ -11616,7 +11859,7 @@ class ColumnMenuItemBase {
|
|
|
11616
11859
|
}
|
|
11617
11860
|
ngOnInit() {
|
|
11618
11861
|
if (isDevMode() && !this.service) {
|
|
11619
|
-
throw new Error(
|
|
11862
|
+
throw new Error(ColumnMenuErrorMessages.serviceInput);
|
|
11620
11863
|
}
|
|
11621
11864
|
}
|
|
11622
11865
|
/**
|
|
@@ -19705,11 +19948,7 @@ const createControl = (source) => (acc, key) => {
|
|
|
19705
19948
|
const validateColumnsField = (columns) => expandColumns(columns.toArray())
|
|
19706
19949
|
.filter(isColumnComponent)
|
|
19707
19950
|
.filter(({ field }) => !isValidFieldName(field))
|
|
19708
|
-
.forEach(({ field }) => console.warn(
|
|
19709
|
-
Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
19710
|
-
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
19711
|
-
Please use only valid identifier names to ensure error-free operation.
|
|
19712
|
-
`));
|
|
19951
|
+
.forEach(({ field }) => console.warn(ColumnConfigurationErrorMessages.fieldName(field)));
|
|
19713
19952
|
const handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ group }) => isPresent(group)))
|
|
19714
19953
|
.subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
|
|
19715
19954
|
const handleExpandCollapseDetailsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))
|
|
@@ -20224,7 +20463,7 @@ class GridComponent {
|
|
|
20224
20463
|
*/
|
|
20225
20464
|
set rowClass(fn) {
|
|
20226
20465
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20227
|
-
throw new Error(
|
|
20466
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowClass', fn));
|
|
20228
20467
|
}
|
|
20229
20468
|
this._rowClass = fn;
|
|
20230
20469
|
}
|
|
@@ -20237,7 +20476,7 @@ class GridComponent {
|
|
|
20237
20476
|
*/
|
|
20238
20477
|
set rowSticky(fn) {
|
|
20239
20478
|
if (isDevMode() && isPresent(fn) && typeof fn !== 'function') {
|
|
20240
|
-
throw new Error(
|
|
20479
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSticky', fn));
|
|
20241
20480
|
}
|
|
20242
20481
|
if (isPresent(fn)) {
|
|
20243
20482
|
this._rowSticky = fn;
|
|
@@ -20253,7 +20492,7 @@ class GridComponent {
|
|
|
20253
20492
|
*/
|
|
20254
20493
|
set rowSelected(fn) {
|
|
20255
20494
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20256
|
-
throw new Error(
|
|
20495
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSelected', fn));
|
|
20257
20496
|
}
|
|
20258
20497
|
this._rowSelected = fn;
|
|
20259
20498
|
}
|
|
@@ -20270,7 +20509,7 @@ class GridComponent {
|
|
|
20270
20509
|
*/
|
|
20271
20510
|
set cellSelected(fn) {
|
|
20272
20511
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20273
|
-
throw new Error(
|
|
20512
|
+
throw new Error(GridConfigurationErrorMessages.functionType('cellSelected', fn));
|
|
20274
20513
|
}
|
|
20275
20514
|
this._cellSelected = fn;
|
|
20276
20515
|
}
|
|
@@ -20289,6 +20528,16 @@ class GridComponent {
|
|
|
20289
20528
|
get activeRow() {
|
|
20290
20529
|
return this.navigationService.activeRow;
|
|
20291
20530
|
}
|
|
20531
|
+
/**
|
|
20532
|
+
* Returns the current Grid selection.
|
|
20533
|
+
*
|
|
20534
|
+
* @hidden
|
|
20535
|
+
*/
|
|
20536
|
+
get selection() {
|
|
20537
|
+
return (this.selectable || this.selectionDirective) ?
|
|
20538
|
+
this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
|
|
20539
|
+
[];
|
|
20540
|
+
}
|
|
20292
20541
|
/**
|
|
20293
20542
|
* Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
|
|
20294
20543
|
*
|
|
@@ -21205,7 +21454,7 @@ class GridComponent {
|
|
|
21205
21454
|
instance = column;
|
|
21206
21455
|
}
|
|
21207
21456
|
if (!instance && isDevMode()) {
|
|
21208
|
-
throw new Error(
|
|
21457
|
+
throw new Error(ColumnConfigurationErrorMessages.invalidColumn(column));
|
|
21209
21458
|
}
|
|
21210
21459
|
return instance;
|
|
21211
21460
|
}
|
|
@@ -21214,43 +21463,43 @@ class GridComponent {
|
|
|
21214
21463
|
const locked = this.lockedLeafColumns.length || (this.columnMenu && this.columnMenu.lock);
|
|
21215
21464
|
const stickyColumns = this.stickyColumns.length || (this.columnMenu && this.columnMenu.stick);
|
|
21216
21465
|
if (locked && this.detailTemplate) {
|
|
21217
|
-
throw new Error('
|
|
21466
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'locked columns'));
|
|
21218
21467
|
}
|
|
21219
21468
|
if (stickyColumns && this.detailTemplate) {
|
|
21220
|
-
throw new Error('
|
|
21469
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'sticky columns'));
|
|
21221
21470
|
}
|
|
21222
21471
|
if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {
|
|
21223
|
-
throw new Error(
|
|
21472
|
+
throw new Error(GridConfigurationErrorMessages.nonLockedColumnPresent);
|
|
21224
21473
|
}
|
|
21225
21474
|
if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21226
|
-
throw new Error((locked ? 'Locked' : 'Virtual')
|
|
21475
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth(locked ? 'Locked' : 'Virtual'));
|
|
21227
21476
|
}
|
|
21228
21477
|
if (locked && !this.isScrollable) {
|
|
21229
|
-
throw new Error('Locked
|
|
21478
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Locked'));
|
|
21479
|
+
}
|
|
21480
|
+
if (stickyColumns && !this.isScrollable) {
|
|
21481
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Sticky'));
|
|
21230
21482
|
}
|
|
21231
21483
|
if (this.columnList.filter(isColumnGroupComponent).filter((x) => !x.hasChildren).length) {
|
|
21232
|
-
throw new Error(
|
|
21484
|
+
throw new Error(ColumnConfigurationErrorMessages.groupColumnContent);
|
|
21233
21485
|
}
|
|
21234
21486
|
if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {
|
|
21235
|
-
throw new Error(
|
|
21487
|
+
throw new Error(ColumnConfigurationErrorMessages.lockedParent);
|
|
21236
21488
|
}
|
|
21237
21489
|
if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {
|
|
21238
|
-
throw new Error(
|
|
21490
|
+
throw new Error(GridConfigurationErrorMessages.rowHeightVirtual);
|
|
21239
21491
|
}
|
|
21240
21492
|
if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21241
|
-
throw new Error('Sticky
|
|
21242
|
-
}
|
|
21243
|
-
if (stickyColumns && !this.isScrollable) {
|
|
21244
|
-
throw new Error('Sticky columns are only supported when scrolling is enabled.');
|
|
21493
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth('Sticky'));
|
|
21245
21494
|
}
|
|
21246
21495
|
if (stickyColumns && this.virtualColumns) {
|
|
21247
|
-
throw new Error('
|
|
21496
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky columns', 'column virtualization'));
|
|
21248
21497
|
}
|
|
21249
21498
|
if (this.rowSticky && this.scrollable === 'virtual') {
|
|
21250
|
-
throw new Error('
|
|
21499
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'row virtualization (scrollable="virtual")'));
|
|
21251
21500
|
}
|
|
21252
21501
|
if (this.rowSticky && this.groupable) {
|
|
21253
|
-
throw new Error('
|
|
21502
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
|
|
21254
21503
|
}
|
|
21255
21504
|
validateColumnsField(this.columnList);
|
|
21256
21505
|
}
|
|
@@ -21449,7 +21698,7 @@ class GridComponent {
|
|
|
21449
21698
|
}
|
|
21450
21699
|
assertNavigable() {
|
|
21451
21700
|
if (isDevMode() && !this.navigationService.enabled) {
|
|
21452
|
-
throw new Error(
|
|
21701
|
+
throw new Error(GridConfigurationErrorMessages.focusNavigable);
|
|
21453
21702
|
}
|
|
21454
21703
|
}
|
|
21455
21704
|
navigationMetadata() {
|
|
@@ -21521,9 +21770,7 @@ class GridComponent {
|
|
|
21521
21770
|
toggleDetailRowLegacy(index, expand) {
|
|
21522
21771
|
const hasCallback = typeof this.isDetailExpanded === 'function';
|
|
21523
21772
|
if (isDevMode() && hasCallback) {
|
|
21524
|
-
throw new Error('
|
|
21525
|
-
'kendoGridDetailsExpandBy directive or the isDetailExpanded callback. ' +
|
|
21526
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21773
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandRow', 'collapseRow', 'kendoGridDetailsExpandBy', 'isDetailExpanded'));
|
|
21527
21774
|
}
|
|
21528
21775
|
if (!isDevMode() && hasCallback) {
|
|
21529
21776
|
return;
|
|
@@ -21535,9 +21782,7 @@ class GridComponent {
|
|
|
21535
21782
|
toggleGroupRowLegacy(index, expand) {
|
|
21536
21783
|
const hasCallback = typeof this.isGroupExpanded === 'function';
|
|
21537
21784
|
if (isDevMode() && hasCallback) {
|
|
21538
|
-
throw new Error('
|
|
21539
|
-
'kendoGridExpandGroupBy directive or the isGroupExpanded callback. ' +
|
|
21540
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21785
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandGroup', 'collapseGroup', 'kendoGridExpandGroupBy', 'isGroupExpanded'));
|
|
21541
21786
|
}
|
|
21542
21787
|
if (!isDevMode() && hasCallback) {
|
|
21543
21788
|
return;
|
|
@@ -21611,7 +21856,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
21611
21856
|
SortService,
|
|
21612
21857
|
ContextService,
|
|
21613
21858
|
SizingOptionsService,
|
|
21614
|
-
RowReorderService
|
|
21859
|
+
RowReorderService,
|
|
21860
|
+
ClipboardService
|
|
21615
21861
|
], 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: `
|
|
21616
21862
|
<ng-container kendoGridLocalizedMessages
|
|
21617
21863
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
@@ -22239,7 +22485,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
22239
22485
|
SortService,
|
|
22240
22486
|
ContextService,
|
|
22241
22487
|
SizingOptionsService,
|
|
22242
|
-
RowReorderService
|
|
22488
|
+
RowReorderService,
|
|
22489
|
+
ClipboardService
|
|
22243
22490
|
],
|
|
22244
22491
|
selector: 'kendo-grid',
|
|
22245
22492
|
template: `
|
|
@@ -23169,11 +23416,12 @@ class DataBindingDirective {
|
|
|
23169
23416
|
}
|
|
23170
23417
|
}
|
|
23171
23418
|
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 });
|
|
23172
|
-
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 });
|
|
23419
|
+
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 });
|
|
23173
23420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
|
|
23174
23421
|
type: Directive,
|
|
23175
23422
|
args: [{
|
|
23176
|
-
selector: '[kendoGridBinding]'
|
|
23423
|
+
selector: '[kendoGridBinding]',
|
|
23424
|
+
exportAs: 'kendoGridBinding'
|
|
23177
23425
|
}]
|
|
23178
23426
|
}], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
|
|
23179
23427
|
type: Input
|
|
@@ -25694,8 +25942,7 @@ class LocalEditService {
|
|
|
25694
25942
|
return data;
|
|
25695
25943
|
}
|
|
25696
25944
|
if (isDevMode()) {
|
|
25697
|
-
throw new Error(
|
|
25698
|
-
'Please provide an editService.');
|
|
25945
|
+
throw new Error(GridConfigurationErrorMessages.requiredEditService);
|
|
25699
25946
|
}
|
|
25700
25947
|
return [];
|
|
25701
25948
|
}
|
|
@@ -26202,9 +26449,7 @@ class GroupBindingDirective extends DataBindingDirective {
|
|
|
26202
26449
|
}
|
|
26203
26450
|
ngAfterContentInit() {
|
|
26204
26451
|
if (isDevMode() && this.grid.isGroupExpanded) {
|
|
26205
|
-
throw new Error(
|
|
26206
|
-
'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +
|
|
26207
|
-
'set the Grid `groupable` property to `true`.');
|
|
26452
|
+
throw new Error(GridConfigurationErrorMessages.groupBindingDirectives);
|
|
26208
26453
|
}
|
|
26209
26454
|
}
|
|
26210
26455
|
groupExpand({ groupIndex }) {
|
|
@@ -26336,6 +26581,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
26336
26581
|
}]
|
|
26337
26582
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ContextService }]; } });
|
|
26338
26583
|
|
|
26584
|
+
/**
|
|
26585
|
+
* The directive that enables the Grid built-in clipboard support. Allows copy, cut, and paste interactions
|
|
26586
|
+
* with the Grid.
|
|
26587
|
+
*/
|
|
26588
|
+
class GridClipboardDirective {
|
|
26589
|
+
constructor(host, clipboardService, renderer, zone) {
|
|
26590
|
+
this.host = host;
|
|
26591
|
+
this.clipboardService = clipboardService;
|
|
26592
|
+
this.renderer = renderer;
|
|
26593
|
+
this.zone = zone;
|
|
26594
|
+
/**
|
|
26595
|
+
* Fires when the user performs `cut`, `copy` or `paste` action within the Grid content area.
|
|
26596
|
+
*/
|
|
26597
|
+
this.clipboard = new EventEmitter();
|
|
26598
|
+
this._clipboardSettings = {
|
|
26599
|
+
wholeRow: false,
|
|
26600
|
+
copyHeaders: false,
|
|
26601
|
+
copy: true,
|
|
26602
|
+
cut: true,
|
|
26603
|
+
paste: true
|
|
26604
|
+
};
|
|
26605
|
+
this.subs = new Subscription();
|
|
26606
|
+
this.onClipboard = (operationType, args) => {
|
|
26607
|
+
if (!this.inGrid(args) || !this.clipboardSettings[operationType]) {
|
|
26608
|
+
return;
|
|
26609
|
+
}
|
|
26610
|
+
const gridData = Array.isArray(this.host.data) ? this.host.data : this.host.data.data;
|
|
26611
|
+
const gridDataItems = gridData.flatMap(recursiveFlatMap);
|
|
26612
|
+
const selection = this.host.selection;
|
|
26613
|
+
const selectionDirective = this.host.selectionDirective;
|
|
26614
|
+
const targetType = this.clipboardTarget;
|
|
26615
|
+
const isCellSelection = (this.host.selectable?.cell || selectionDirective.isCellSelectionMode);
|
|
26616
|
+
let clipboardData = [];
|
|
26617
|
+
switch (targetType) {
|
|
26618
|
+
case 'activeCell':
|
|
26619
|
+
{
|
|
26620
|
+
const targetCell = { ...this.host.activeCell };
|
|
26621
|
+
clipboardData = targetCell && [{ dataItem: targetCell.dataItem, dataRowIndex: targetCell.dataRowIndex }];
|
|
26622
|
+
}
|
|
26623
|
+
break;
|
|
26624
|
+
case 'selectionStart':
|
|
26625
|
+
{
|
|
26626
|
+
const identifier = selectionDirective.selectionKey;
|
|
26627
|
+
clipboardData = gridDataItems.flatMap((item, index) => {
|
|
26628
|
+
if (identifier) {
|
|
26629
|
+
const key = typeof identifier === 'string' ? item[identifier] : identifier({ index: index + this.host.skip, dataItem: item });
|
|
26630
|
+
return isCellSelection ?
|
|
26631
|
+
selection.some(s => s.itemKey === key) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26632
|
+
selection.indexOf(key) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26633
|
+
}
|
|
26634
|
+
return isCellSelection ?
|
|
26635
|
+
selection.some(s => s.itemKey === index + this.host.skip) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26636
|
+
selection.indexOf(index + this.host.skip) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26637
|
+
});
|
|
26638
|
+
}
|
|
26639
|
+
break;
|
|
26640
|
+
}
|
|
26641
|
+
const isPaste = operationType === 'paste';
|
|
26642
|
+
const pastedData = args.clipboardData.getData('text').trim();
|
|
26643
|
+
const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
|
|
26644
|
+
const data = isPaste ?
|
|
26645
|
+
{
|
|
26646
|
+
dataString: pastedData,
|
|
26647
|
+
gridItems: this.clipboardService.getGridData(pastedData, visibleCols, this.clipboardTarget, clipboardData[0].dataRowIndex, {
|
|
26648
|
+
wholeRow: this.clipboardSettings.wholeRow,
|
|
26649
|
+
isCellSelection
|
|
26650
|
+
})
|
|
26651
|
+
} :
|
|
26652
|
+
this.clipboardService.createClipboardData(clipboardData || [], visibleCols, {
|
|
26653
|
+
wholeRow: this.clipboardSettings.wholeRow || !isCellSelection,
|
|
26654
|
+
copyHeaders: this.clipboardSettings.copyHeaders,
|
|
26655
|
+
operationType
|
|
26656
|
+
});
|
|
26657
|
+
!isPaste && navigator.clipboard.writeText(data.dataString);
|
|
26658
|
+
if (hasObservers(this.clipboard)) {
|
|
26659
|
+
this.clipboard.emit({
|
|
26660
|
+
type: operationType,
|
|
26661
|
+
originalEvent: args,
|
|
26662
|
+
clipboardData: data.dataString,
|
|
26663
|
+
gridData: data.gridItems,
|
|
26664
|
+
target: {
|
|
26665
|
+
dataRowIndex: this.clipboardService.targetRowIndex,
|
|
26666
|
+
colField: this.clipboardService.targetColField,
|
|
26667
|
+
dataItem: clipboardData.find(item => item.dataRowIndex === this.clipboardService.targetRowIndex)?.dataItem
|
|
26668
|
+
}
|
|
26669
|
+
});
|
|
26670
|
+
}
|
|
26671
|
+
this.clipboardService.targetColField = this.clipboardService.targetRowIndex = null;
|
|
26672
|
+
};
|
|
26673
|
+
this.inGrid = (args) => {
|
|
26674
|
+
const target = document.activeElement.matches('.k-table-td') ? document.activeElement : args.target;
|
|
26675
|
+
const inContentArea = closest(target, node => node.parentElement?.classList.contains('k-grid-container'));
|
|
26676
|
+
const inHost = contains$2(this.host.wrapper.nativeElement, target);
|
|
26677
|
+
return target && inHost && inContentArea;
|
|
26678
|
+
};
|
|
26679
|
+
}
|
|
26680
|
+
/**
|
|
26681
|
+
* Determines the target of the clipboard operation. The possible options are:
|
|
26682
|
+
* - `activeCell`—Only the content of the current active cell or the row it is in will be copied to the clipboard.
|
|
26683
|
+
* When pasting, the active cell will be the pivotal point for pasted content.
|
|
26684
|
+
* - `selectionStart`—The content of all selected cells or rows from the current page will be copied to the clipboard.
|
|
26685
|
+
* When pasting the first selected cell will be the pivotal point for pasted content.
|
|
26686
|
+
*
|
|
26687
|
+
* This option must be set, and the Grid keyboard navigation and/or selection functionalities must be enabled
|
|
26688
|
+
* for the Clipboard directive to function as designed.
|
|
26689
|
+
*/
|
|
26690
|
+
set clipboardTarget(value) {
|
|
26691
|
+
if (isDevMode()) {
|
|
26692
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
26693
|
+
if (value === 'activeCell' && !(this.host.navigable.length)) {
|
|
26694
|
+
console.warn(ClipboardErrorMessages.clipboardTarget.activeCellNavigable);
|
|
26695
|
+
}
|
|
26696
|
+
else if (value === 'selectionStart' && !(this.host.selectable || this.host.selectionDirective)) {
|
|
26697
|
+
console.warn(ClipboardErrorMessages.selectionStartSelectable);
|
|
26698
|
+
}
|
|
26699
|
+
else if (!isPresent(value)) {
|
|
26700
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26701
|
+
}
|
|
26702
|
+
});
|
|
26703
|
+
}
|
|
26704
|
+
this._target = value;
|
|
26705
|
+
}
|
|
26706
|
+
get clipboardTarget() {
|
|
26707
|
+
return this._target;
|
|
26708
|
+
}
|
|
26709
|
+
/**
|
|
26710
|
+
* The `GridClipboardDirective` settings.
|
|
26711
|
+
*
|
|
26712
|
+
* @default { wholeRow: false, copyHeaders: false copy: true, cut: true, paste: true }
|
|
26713
|
+
*/
|
|
26714
|
+
set clipboardSettings(value) {
|
|
26715
|
+
this._clipboardSettings = Object.assign({}, this._clipboardSettings, value);
|
|
26716
|
+
}
|
|
26717
|
+
get clipboardSettings() {
|
|
26718
|
+
return this._clipboardSettings;
|
|
26719
|
+
}
|
|
26720
|
+
ngAfterViewInit() {
|
|
26721
|
+
if (!isDocumentAvailable()) {
|
|
26722
|
+
return;
|
|
26723
|
+
}
|
|
26724
|
+
if (isDevMode() && !isPresent(this.clipboardTarget)) {
|
|
26725
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26726
|
+
}
|
|
26727
|
+
// needed due to the following issue in Chrome
|
|
26728
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1156117&q=focus%20programmatically%20paste&can=2
|
|
26729
|
+
this.subs.add(this.renderer.listen(document, 'copy', (args) => this.onClipboard('copy', args)));
|
|
26730
|
+
this.subs.add(this.renderer.listen(document, 'cut', (args) => this.onClipboard('cut', args)));
|
|
26731
|
+
this.subs.add(this.renderer.listen(document, 'paste', (args) => this.onClipboard('paste', args)));
|
|
26732
|
+
}
|
|
26733
|
+
ngOnChanges(changes) {
|
|
26734
|
+
if (changes['clipboardTarget'] && isDevMode() && !isPresent(changes['clipboardTarget'].currentValue)) {
|
|
26735
|
+
console.warn(ClipboardErrorMessages.clipboardTarget);
|
|
26736
|
+
}
|
|
26737
|
+
}
|
|
26738
|
+
ngOnDestroy() {
|
|
26739
|
+
this.subs.unsubscribe();
|
|
26740
|
+
}
|
|
26741
|
+
}
|
|
26742
|
+
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 });
|
|
26743
|
+
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 });
|
|
26744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, decorators: [{
|
|
26745
|
+
type: Directive,
|
|
26746
|
+
args: [{
|
|
26747
|
+
selector: '[kendoGridClipboard]',
|
|
26748
|
+
exportAs: 'kendoGridClipboard',
|
|
26749
|
+
providers: [ClipboardService]
|
|
26750
|
+
}]
|
|
26751
|
+
}], ctorParameters: function () { return [{ type: GridComponent }, { type: ClipboardService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { clipboardTarget: [{
|
|
26752
|
+
type: Input
|
|
26753
|
+
}], clipboardSettings: [{
|
|
26754
|
+
type: Input
|
|
26755
|
+
}], clipboard: [{
|
|
26756
|
+
type: Output
|
|
26757
|
+
}] } });
|
|
26758
|
+
|
|
26339
26759
|
const exportedModules$1 = [
|
|
26340
26760
|
GridComponent,
|
|
26341
26761
|
ToolbarTemplateDirective,
|
|
@@ -26360,7 +26780,8 @@ const exportedModules$1 = [
|
|
|
26360
26780
|
...PagerModule.exports(),
|
|
26361
26781
|
...RowFilterModule.exports(),
|
|
26362
26782
|
...FilterMenuModule.exports(),
|
|
26363
|
-
...ColumnMenuModule.exports()
|
|
26783
|
+
...ColumnMenuModule.exports(),
|
|
26784
|
+
GridClipboardDirective
|
|
26364
26785
|
];
|
|
26365
26786
|
const declarations$2 = [
|
|
26366
26787
|
GridComponent,
|
|
@@ -26381,7 +26802,8 @@ const declarations$2 = [
|
|
|
26381
26802
|
GridSpacerComponent,
|
|
26382
26803
|
GridToolbarFocusableDirective,
|
|
26383
26804
|
StatusBarComponent,
|
|
26384
|
-
StatusBarTemplateDirective
|
|
26805
|
+
StatusBarTemplateDirective,
|
|
26806
|
+
GridClipboardDirective
|
|
26385
26807
|
];
|
|
26386
26808
|
/**
|
|
26387
26809
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
@@ -26425,7 +26847,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26425
26847
|
GridSpacerComponent,
|
|
26426
26848
|
GridToolbarFocusableDirective,
|
|
26427
26849
|
StatusBarComponent,
|
|
26428
|
-
StatusBarTemplateDirective
|
|
26850
|
+
StatusBarTemplateDirective,
|
|
26851
|
+
GridClipboardDirective], imports: [CommonModule,
|
|
26429
26852
|
GroupModule,
|
|
26430
26853
|
SharedModule,
|
|
26431
26854
|
BodyModule,
|
|
@@ -26451,7 +26874,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26451
26874
|
InCellEditingDirective,
|
|
26452
26875
|
ExpandDetailsDirective,
|
|
26453
26876
|
ExpandGroupDirective,
|
|
26454
|
-
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] });
|
|
26877
|
+
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] });
|
|
26455
26878
|
GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
|
|
26456
26879
|
CommonModule,
|
|
26457
26880
|
GroupModule,
|
|
@@ -26748,13 +27171,13 @@ class PDFComponent extends PDFExportComponent {
|
|
|
26748
27171
|
* @hidden
|
|
26749
27172
|
*/
|
|
26750
27173
|
saveAs(_) {
|
|
26751
|
-
throw new Error('
|
|
27174
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
|
|
26752
27175
|
}
|
|
26753
27176
|
/**
|
|
26754
27177
|
* @hidden
|
|
26755
27178
|
*/
|
|
26756
27179
|
export() {
|
|
26757
|
-
throw new Error('
|
|
27180
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('export', 'GridComponent.drawPDF'));
|
|
26758
27181
|
}
|
|
26759
27182
|
savePDF(component) {
|
|
26760
27183
|
this.createPDF(component, this.draw);
|
|
@@ -27349,5 +27772,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
27349
27772
|
* Generated bundle index. Do not edit.
|
|
27350
27773
|
*/
|
|
27351
27774
|
|
|
27352
|
-
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 };
|
|
27775
|
+
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 };
|
|
27353
27776
|
|