@progress/kendo-angular-grid 14.4.0-develop.8 → 15.0.0-develop.1
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 +49 -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/column-menu/column-menu.component.mjs +8 -5
- 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 +185 -0
- package/esm2020/common/clipboard.service.mjs +218 -0
- package/esm2020/common/dom-events.service.mjs +1 -0
- package/esm2020/common/error-messages.mjs +45 -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/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu-container.component.mjs +2 -2
- package/esm2020/filtering/menu/numeric-filter-menu-input.component.mjs +1 -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/pager/pager-input.component.mjs +1 -1
- package/esm2020/pager/pager.component.mjs +1 -5
- package/esm2020/pdf/pdf.component.mjs +3 -2
- package/esm2020/pdf/pdf.service.mjs +2 -1
- package/esm2020/rendering/cell.component.mjs +33 -25
- package/esm2020/rendering/details/detail-template.directive.mjs +2 -1
- package/esm2020/rendering/header/header.component.mjs +16 -12
- package/esm2020/rendering/table-body.component.mjs +4 -4
- package/esm2020/selection/marquee.directive.mjs +11 -17
- package/esm2020/selection/selection-default.mjs +11 -5
- package/esm2020/utils.mjs +10 -0
- package/fesm2015/progress-kendo-angular-grid.mjs +598 -145
- package/fesm2020/progress-kendo-angular-grid.mjs +594 -145
- 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/pager/pager.component.d.ts +0 -1
- package/schematics/ngAdd/index.js +3 -3
- package/selection/marquee.directive.d.ts +4 -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,58 @@ 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
|
+
activeCellNavigable: 'Grid must be navigable to use "activeCell" as clipboard target type.',
|
|
2266
|
+
selectionSelectable: 'Grid must be selectable to use "selection" as clipboard target type.'
|
|
2267
|
+
};
|
|
2268
|
+
/**
|
|
2269
|
+
* @hidden
|
|
2270
|
+
*/
|
|
2271
|
+
const ColumnConfigurationErrorMessages = {
|
|
2272
|
+
fieldName: (field) => `Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
2273
|
+
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
2274
|
+
Please use only valid identifier names to ensure error-free operation.`,
|
|
2275
|
+
width: (value, parsedValue) => `Expected numeric value for column width, but got a string "${value}". Treating as ${parsedValue}px.`,
|
|
2276
|
+
invalidColumn: (column) => `Invalid column ${column}.`,
|
|
2277
|
+
requiredWidth: (columnType) => `${columnType} columns feature requires all columns to have set width.`,
|
|
2278
|
+
requiredScroll: (columnType) => `${columnType} columns are only supported when scrolling is enabled.`,
|
|
2279
|
+
groupColumnContent: 'ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.',
|
|
2280
|
+
lockedParent: 'Locked child columns require their parent columns to be locked.',
|
|
2281
|
+
columnNested: 'Columns can be nested only inside ColumnGroupComponent',
|
|
2282
|
+
nestedInside: (nestedColumnNameType, parentColumnType) => `${nestedColumnNameType} cannot be nested inside ${parentColumnType}.`
|
|
2283
|
+
};
|
|
2284
|
+
/**
|
|
2285
|
+
* @hidden
|
|
2286
|
+
*/
|
|
2287
|
+
const GridConfigurationErrorMessages = {
|
|
2288
|
+
functionType: (propName, fn) => `${propName} must be a function, but received ${JSON.stringify(fn)}.`,
|
|
2289
|
+
incompatibleFeatures: (feat1Name, feat2Name) => `'Having both ${feat1Name} and ${feat2Name} is not supported.'`,
|
|
2290
|
+
nonLockedColumnPresent: 'There should be at least one non-locked column',
|
|
2291
|
+
rowHeightVirtual: 'Row height and detail row height settings require virtual scrolling mode to be enabled.',
|
|
2292
|
+
focusNavigable: 'The Grid should be configured as navigable to control focus',
|
|
2293
|
+
expandCollapseMethods: (expandMethodName, collapseMethodName, directiveName, callbackName) => `The ${expandMethodName} and ${collapseMethodName} methods should not be called
|
|
2294
|
+
when using the ${directiveName} directive or the ${callbackName} callback.
|
|
2295
|
+
These methods are provided only for backwards compatibility with legacy versions.`,
|
|
2296
|
+
requiredEditService: `The default edit service of the editing directives works only when binding to plain array.
|
|
2297
|
+
Please provide an editService.`,
|
|
2298
|
+
requiredModule: (exportedType, moduleName, componentSelector) => `Creating ${exportedType} requires including the ${moduleName} and adding the ${componentSelector} component.`,
|
|
2299
|
+
groupBindingDirectives: `Using the "kendoGridGroupBinding" directive in combination with the "kendoGridExpandGroupBy" directive
|
|
2300
|
+
or the "isGroupExpanded" callback is not supported. To use grouping with the "kendoGridGroupBinding" directive,
|
|
2301
|
+
set the Grid "groupable" property to "true".`,
|
|
2302
|
+
unsupportedMethod: (methodName, suggestedMethodName) => `Using ${methodName} in this context is not supported. Use ${suggestedMethodName} instead.`
|
|
2303
|
+
};
|
|
2304
|
+
|
|
2242
2305
|
/**
|
|
2243
2306
|
* @hidden
|
|
2244
2307
|
*/
|
|
@@ -2332,7 +2395,7 @@ class ColumnBase {
|
|
|
2332
2395
|
this.columnMenuTemplates = new QueryList();
|
|
2333
2396
|
this.idService = idService;
|
|
2334
2397
|
if (parent && idService && parent.idService.gridId() === idService.gridId() && !isColumnContainer(parent)) {
|
|
2335
|
-
throw new Error(
|
|
2398
|
+
throw new Error(ColumnConfigurationErrorMessages.columnNested);
|
|
2336
2399
|
}
|
|
2337
2400
|
}
|
|
2338
2401
|
/**
|
|
@@ -2354,7 +2417,7 @@ class ColumnBase {
|
|
|
2354
2417
|
if (typeof value === 'string') {
|
|
2355
2418
|
const parsedValue = this._width = parseInt(value, 10);
|
|
2356
2419
|
if (isDevMode()) {
|
|
2357
|
-
console.warn(
|
|
2420
|
+
console.warn(ColumnConfigurationErrorMessages.width(value, parsedValue));
|
|
2358
2421
|
}
|
|
2359
2422
|
}
|
|
2360
2423
|
else {
|
|
@@ -2936,7 +2999,7 @@ class SpanColumnComponent extends ColumnBase {
|
|
|
2936
2999
|
this.includeInChooser = false;
|
|
2937
3000
|
this._editable = true;
|
|
2938
3001
|
if (parent && parent.isSpanColumn) {
|
|
2939
|
-
throw new Error('
|
|
3002
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('SpanColumnComponent', 'SpanColumnComponent'));
|
|
2940
3003
|
}
|
|
2941
3004
|
}
|
|
2942
3005
|
/**
|
|
@@ -3149,7 +3212,7 @@ class ColumnGroupComponent extends ColumnBase {
|
|
|
3149
3212
|
*/
|
|
3150
3213
|
this.minResizableWidth = 10;
|
|
3151
3214
|
if (parent && parent.isSpanColumn) {
|
|
3152
|
-
throw new Error('ColumnGroupComponent
|
|
3215
|
+
throw new Error(ColumnConfigurationErrorMessages.nestedInside('ColumnGroupComponent', 'SpanColumnComponent'));
|
|
3153
3216
|
}
|
|
3154
3217
|
}
|
|
3155
3218
|
/**
|
|
@@ -4264,19 +4327,15 @@ const offsets = {
|
|
|
4264
4327
|
* @hidden
|
|
4265
4328
|
*/
|
|
4266
4329
|
class GridMarqueeDirective {
|
|
4267
|
-
constructor(draggable, selection, cellSelection, domEvents) {
|
|
4330
|
+
constructor(draggable, selection, cellSelection, domEvents, host, renderer) {
|
|
4268
4331
|
this.draggable = draggable;
|
|
4269
4332
|
this.selection = selection;
|
|
4270
4333
|
this.cellSelection = cellSelection;
|
|
4271
4334
|
this.domEvents = domEvents;
|
|
4335
|
+
this.host = host;
|
|
4336
|
+
this.renderer = renderer;
|
|
4272
4337
|
this.selectionStarted = false;
|
|
4273
4338
|
}
|
|
4274
|
-
get webkitUserSelection() {
|
|
4275
|
-
return (this.cellSelection.enableMarquee || this.selection.enableMarquee) ? 'none' : null;
|
|
4276
|
-
}
|
|
4277
|
-
get userSelection() {
|
|
4278
|
-
return (this.cellSelection.enableMarquee || this.selection.enableMarquee);
|
|
4279
|
-
}
|
|
4280
4339
|
ngOnInit() {
|
|
4281
4340
|
this.subscriptions = (this.draggable.kendoPress.subscribe(this.start.bind(this)));
|
|
4282
4341
|
this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));
|
|
@@ -4307,6 +4366,8 @@ class GridMarqueeDirective {
|
|
|
4307
4366
|
const distance = Math.sqrt((args.pageX - press.pageX) ** 2 + (args.pageY - press.pageY) ** 2);
|
|
4308
4367
|
if (distance > MINIMAL_DRAG_DISTANCE) {
|
|
4309
4368
|
this.selectionStarted = true;
|
|
4369
|
+
this.renderer.addClass(this.host.nativeElement, 'user-select-none');
|
|
4370
|
+
this.renderer.setStyle(this.host.nativeElement, 'user-select', 'none');
|
|
4310
4371
|
this.dragEndSubscription = merge(this.domEvents.cellMouseup.pipe(take(1)), this.draggable.kendoRelease.pipe(delay(1), take(1)))
|
|
4311
4372
|
.subscribe(this.endSelection.bind(this));
|
|
4312
4373
|
}
|
|
@@ -4351,6 +4412,8 @@ class GridMarqueeDirective {
|
|
|
4351
4412
|
if (this.dragEndSubscription) {
|
|
4352
4413
|
this.dragEndSubscription.unsubscribe();
|
|
4353
4414
|
}
|
|
4415
|
+
this.renderer.removeClass(this.host.nativeElement, 'user-select-none');
|
|
4416
|
+
this.renderer.removeStyle(this.host.nativeElement, 'user-select');
|
|
4354
4417
|
this.dragEndSubscription = null;
|
|
4355
4418
|
this.pressTarget = null;
|
|
4356
4419
|
this.pressArgs = null;
|
|
@@ -4387,20 +4450,14 @@ class GridMarqueeDirective {
|
|
|
4387
4450
|
return null;
|
|
4388
4451
|
}
|
|
4389
4452
|
}
|
|
4390
|
-
GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1$1.DraggableDirective }, { token: SelectionService }, { token: CellSelectionService }, { token: DomEventsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4391
|
-
GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]",
|
|
4453
|
+
GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1$1.DraggableDirective }, { token: SelectionService }, { token: CellSelectionService }, { token: DomEventsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4454
|
+
GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]", ngImport: i0 });
|
|
4392
4455
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, decorators: [{
|
|
4393
4456
|
type: Directive,
|
|
4394
4457
|
args: [{
|
|
4395
4458
|
selector: '[kendoGridSelectionMarquee]'
|
|
4396
4459
|
}]
|
|
4397
|
-
}], ctorParameters: function () { return [{ type: i1$1.DraggableDirective }, { type: SelectionService }, { type: CellSelectionService }, { type: DomEventsService }
|
|
4398
|
-
type: HostBinding,
|
|
4399
|
-
args: ['style.-webkit-user-select']
|
|
4400
|
-
}], userSelection: [{
|
|
4401
|
-
type: HostBinding,
|
|
4402
|
-
args: ['class.user-select-none']
|
|
4403
|
-
}] } });
|
|
4460
|
+
}], ctorParameters: function () { return [{ type: i1$1.DraggableDirective }, { type: SelectionService }, { type: CellSelectionService }, { type: DomEventsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
4404
4461
|
|
|
4405
4462
|
/**
|
|
4406
4463
|
* @hidden
|
|
@@ -4443,8 +4500,8 @@ const packageMetadata = {
|
|
|
4443
4500
|
name: '@progress/kendo-angular-grid',
|
|
4444
4501
|
productName: 'Kendo UI for Angular',
|
|
4445
4502
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4446
|
-
publishDate:
|
|
4447
|
-
version: '
|
|
4503
|
+
publishDate: 1706544074,
|
|
4504
|
+
version: '15.0.0-develop.1',
|
|
4448
4505
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4449
4506
|
};
|
|
4450
4507
|
|
|
@@ -4476,7 +4533,7 @@ class DetailTemplateDirective {
|
|
|
4476
4533
|
*/
|
|
4477
4534
|
set showIf(fn) {
|
|
4478
4535
|
if (typeof fn !== 'function') {
|
|
4479
|
-
throw new Error(
|
|
4536
|
+
throw new Error(GridConfigurationErrorMessages.functionType('showIf', fn));
|
|
4480
4537
|
}
|
|
4481
4538
|
this._condition = fn;
|
|
4482
4539
|
}
|
|
@@ -4970,6 +5027,9 @@ class Selection {
|
|
|
4970
5027
|
this.cellSelectionState = new PairSet();
|
|
4971
5028
|
this.init();
|
|
4972
5029
|
}
|
|
5030
|
+
/**
|
|
5031
|
+
* @hidden
|
|
5032
|
+
*/
|
|
4973
5033
|
get isCellSelectionMode() {
|
|
4974
5034
|
return isPresent(this.ctx.grid.selectable) && this.ctx.grid.selectable['cell'];
|
|
4975
5035
|
}
|
|
@@ -5023,6 +5083,14 @@ class Selection {
|
|
|
5023
5083
|
}
|
|
5024
5084
|
return row.index;
|
|
5025
5085
|
}
|
|
5086
|
+
/**
|
|
5087
|
+
* @hidden
|
|
5088
|
+
*/
|
|
5089
|
+
stateToArray() {
|
|
5090
|
+
return this.isCellSelectionMode ?
|
|
5091
|
+
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5092
|
+
Array.from(this.rowSelectionState);
|
|
5093
|
+
}
|
|
5026
5094
|
getSelectionItem(row, col, colIndex) {
|
|
5027
5095
|
const itemIdentifiers = {};
|
|
5028
5096
|
itemIdentifiers.itemKey = this.getItemKey(row);
|
|
@@ -5083,11 +5151,6 @@ class Selection {
|
|
|
5083
5151
|
this.rowSelectionState = new Set(selectedKeys);
|
|
5084
5152
|
}
|
|
5085
5153
|
}
|
|
5086
|
-
stateToArray() {
|
|
5087
|
-
return this.isCellSelectionMode ?
|
|
5088
|
-
this.cellSelectionState.toArray('itemKey', 'columnKey') :
|
|
5089
|
-
Array.from(this.rowSelectionState);
|
|
5090
|
-
}
|
|
5091
5154
|
}
|
|
5092
5155
|
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
5156
|
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 +5512,7 @@ class PDFService {
|
|
|
5449
5512
|
emitEvent(emitter, args) {
|
|
5450
5513
|
if (emitter.observers.length === 0) {
|
|
5451
5514
|
if (isDevMode()) {
|
|
5452
|
-
throw new Error('
|
|
5515
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('PDF', 'PDFModule', '<kendo-grid-pdf>'));
|
|
5453
5516
|
}
|
|
5454
5517
|
}
|
|
5455
5518
|
else {
|
|
@@ -5531,7 +5594,7 @@ class ExcelService {
|
|
|
5531
5594
|
save(component) {
|
|
5532
5595
|
if (this.saveToExcel.observers.length === 0) {
|
|
5533
5596
|
if (isDevMode()) {
|
|
5534
|
-
throw new Error('
|
|
5597
|
+
throw new Error(GridConfigurationErrorMessages.requiredModule('excel', 'ExcelModule', '<kendo-grid-excel>'));
|
|
5535
5598
|
}
|
|
5536
5599
|
}
|
|
5537
5600
|
else {
|
|
@@ -6748,6 +6811,214 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6748
6811
|
}]
|
|
6749
6812
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
6750
6813
|
|
|
6814
|
+
/**
|
|
6815
|
+
* @hidden
|
|
6816
|
+
*/
|
|
6817
|
+
class ClipboardService {
|
|
6818
|
+
constructor(contextService) {
|
|
6819
|
+
this.contextService = contextService;
|
|
6820
|
+
this.itemToString = (item, cols) => {
|
|
6821
|
+
if (!cols.length) {
|
|
6822
|
+
return null;
|
|
6823
|
+
}
|
|
6824
|
+
return cols.map(col => item[col.field]).join(`\t`);
|
|
6825
|
+
};
|
|
6826
|
+
}
|
|
6827
|
+
createClipboardData(data, columns, options) {
|
|
6828
|
+
let result = {
|
|
6829
|
+
gridItems: [],
|
|
6830
|
+
dataString: ''
|
|
6831
|
+
};
|
|
6832
|
+
const fieldCols = columns.flatMap(c => c instanceof ColumnComponent && isPresent$1(c.field) ? [c] : []);
|
|
6833
|
+
const clipboardData = { items: [], dataStrings: [] };
|
|
6834
|
+
const colFields = fieldCols.map(c => c.field);
|
|
6835
|
+
if (options.wholeRow) {
|
|
6836
|
+
this.targetColField = fieldCols[0]?.field;
|
|
6837
|
+
this.targetRowIndex = data[0].dataRowIndex;
|
|
6838
|
+
data.forEach(item => {
|
|
6839
|
+
clipboardData.items.push({ dataItem: { ...item.dataItem }, fields: colFields });
|
|
6840
|
+
clipboardData.dataStrings.push(this.itemToString(item.dataItem, fieldCols));
|
|
6841
|
+
});
|
|
6842
|
+
result = {
|
|
6843
|
+
gridItems: options.operationType === 'cut' ? clipboardData.items.map(item => {
|
|
6844
|
+
item.fields.forEach(field => item.dataItem[field] = null);
|
|
6845
|
+
return item;
|
|
6846
|
+
}) : [...clipboardData.items],
|
|
6847
|
+
dataString: options.copyHeaders ? this.addHeaders(clipboardData.dataStrings.join(`\r\n`), fieldCols) : clipboardData.dataStrings.join(`\n`)
|
|
6848
|
+
};
|
|
6849
|
+
}
|
|
6850
|
+
else {
|
|
6851
|
+
if (options.target === 'selection') {
|
|
6852
|
+
const { tabular, groups } = this.groupSelection();
|
|
6853
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6854
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6855
|
+
if (tabular) {
|
|
6856
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6857
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6858
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6859
|
+
this.targetColField = selectedColFields[0];
|
|
6860
|
+
result.dataString = data.flatMap(item => {
|
|
6861
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6862
|
+
const existingItem = isPresent$1(itemString);
|
|
6863
|
+
if (!isPresent$1(this.targetRowIndex) && isPresent$1(itemString)) {
|
|
6864
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6865
|
+
}
|
|
6866
|
+
if (options.operationType === 'cut') {
|
|
6867
|
+
selectedColFields.forEach(f => item.dataItem[f] = null);
|
|
6868
|
+
}
|
|
6869
|
+
result.gridItems.push({
|
|
6870
|
+
dataItem: item.dataItem,
|
|
6871
|
+
fields: selectedColFields
|
|
6872
|
+
});
|
|
6873
|
+
return existingItem ? [itemString] : [];
|
|
6874
|
+
}).join(`\r\n`);
|
|
6875
|
+
if (options.copyHeaders) {
|
|
6876
|
+
result.dataString = this.addHeaders(result.dataString, selectedFieldCols);
|
|
6877
|
+
}
|
|
6878
|
+
}
|
|
6879
|
+
else { // split per row (uneven rows)
|
|
6880
|
+
const rowIdentifier = selectionDirective.selectionKey;
|
|
6881
|
+
result.dataString = data.flatMap(item => {
|
|
6882
|
+
// determine cols per item
|
|
6883
|
+
const key = rowIdentifier ?
|
|
6884
|
+
typeof rowIdentifier === 'string' ? item.dataItem[rowIdentifier] : rowIdentifier({ index: item.dataRowIndex, dataItem: item.dataItem }) :
|
|
6885
|
+
item.dataRowIndex;
|
|
6886
|
+
const selectionKeys = groups.find(gr => gr.value === key).items.map(item => item.columnKey);
|
|
6887
|
+
const selectedFieldCols = columns.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6888
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6889
|
+
if (!this.targetColField) {
|
|
6890
|
+
this.targetColField = selectedColFields[0];
|
|
6891
|
+
}
|
|
6892
|
+
const itemString = this.itemToString(item.dataItem, selectedFieldCols);
|
|
6893
|
+
const existingItem = isPresent$1(itemString);
|
|
6894
|
+
if (!isPresent$1(this.targetRowIndex) && existingItem) {
|
|
6895
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6896
|
+
}
|
|
6897
|
+
if (existingItem) {
|
|
6898
|
+
if (options.operationType === 'cut') {
|
|
6899
|
+
selectedColFields.forEach(f => item.dataItem[f] = null);
|
|
6900
|
+
}
|
|
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
|
+
else {
|
|
6911
|
+
const item = data[0];
|
|
6912
|
+
const col = columns[item.colIndex];
|
|
6913
|
+
const colField = col.field;
|
|
6914
|
+
const title = col.title;
|
|
6915
|
+
const copiedData = item.dataItem[colField];
|
|
6916
|
+
this.targetRowIndex = item.dataRowIndex;
|
|
6917
|
+
this.targetColField = colField;
|
|
6918
|
+
if (options.operationType === 'cut' && colField) {
|
|
6919
|
+
item.dataItem[colField] = null;
|
|
6920
|
+
}
|
|
6921
|
+
result = {
|
|
6922
|
+
gridItems: [{
|
|
6923
|
+
dataItem: item.dataItem,
|
|
6924
|
+
fields: colField ? [colField] : []
|
|
6925
|
+
}],
|
|
6926
|
+
dataString: options.copyHeaders ? [title || colField, copiedData].join(`\r\n`) : colField ? copiedData : ``
|
|
6927
|
+
};
|
|
6928
|
+
}
|
|
6929
|
+
}
|
|
6930
|
+
return result;
|
|
6931
|
+
}
|
|
6932
|
+
getGridData(data, columns, targetType, targetRowIndex, options) {
|
|
6933
|
+
const separator = data.includes(`\r\n`) ? `\r\n` : data.includes(`\n`) ? `\n` : null;
|
|
6934
|
+
const dataRows = separator ? data.split(separator) : [data];
|
|
6935
|
+
this.targetRowIndex = targetRowIndex;
|
|
6936
|
+
if (targetType === 'activeCell') {
|
|
6937
|
+
if (options.wholeRow) {
|
|
6938
|
+
this.targetColField = columns.find(c => c instanceof ColumnComponent && c.field)?.field;
|
|
6939
|
+
}
|
|
6940
|
+
else {
|
|
6941
|
+
const activeCellIndex = this.contextService.grid.activeCell.colIndex;
|
|
6942
|
+
for (let i = 0; i < columns.length; i++) {
|
|
6943
|
+
const col = columns[i];
|
|
6944
|
+
if (col instanceof ColumnComponent && col.field && i >= activeCellIndex) {
|
|
6945
|
+
this.targetColField = col.field;
|
|
6946
|
+
break;
|
|
6947
|
+
}
|
|
6948
|
+
}
|
|
6949
|
+
}
|
|
6950
|
+
}
|
|
6951
|
+
else {
|
|
6952
|
+
if (options.wholeRow || !options.isCellSelection) {
|
|
6953
|
+
this.targetColField = (columns.filter(c => c instanceof ColumnComponent && c.field))[0]['field'];
|
|
6954
|
+
}
|
|
6955
|
+
else {
|
|
6956
|
+
const { groups } = this.groupSelection();
|
|
6957
|
+
const selectionDirective = this.contextService.grid.selectionDirective;
|
|
6958
|
+
const colIdentifier = selectionDirective.columnKey;
|
|
6959
|
+
const visibleCols = columns.filter(c => c.isVisible);
|
|
6960
|
+
const selectionKeys = groups[0].items.map(item => item.columnKey);
|
|
6961
|
+
const selectedFieldCols = visibleCols.flatMap((c, i) => (c instanceof ColumnComponent && c.field) && selectionKeys.find(k => typeof colIdentifier === 'function' ? k === colIdentifier(c, i) : k === i) ? [c] : []);
|
|
6962
|
+
const selectedColFields = selectedFieldCols.map(c => c.field);
|
|
6963
|
+
this.targetColField = selectedColFields[0];
|
|
6964
|
+
}
|
|
6965
|
+
}
|
|
6966
|
+
const items = dataRows.map(rowString => {
|
|
6967
|
+
const cells = rowString.includes(`\t`) ? rowString.split(`\t`) : [rowString];
|
|
6968
|
+
const colFields = columns.flatMap(c => (c instanceof ColumnComponent) && c.field ? [c.field] : []);
|
|
6969
|
+
const targetColFieldIndex = colFields.indexOf(this.targetColField);
|
|
6970
|
+
const affectedFields = colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length);
|
|
6971
|
+
const item = {};
|
|
6972
|
+
colFields.slice(targetColFieldIndex, targetColFieldIndex + cells.length).forEach((colField, index) => item[colField] = cells[index]);
|
|
6973
|
+
return {
|
|
6974
|
+
dataItem: item,
|
|
6975
|
+
fields: affectedFields
|
|
6976
|
+
};
|
|
6977
|
+
});
|
|
6978
|
+
return items;
|
|
6979
|
+
}
|
|
6980
|
+
groupSelection() {
|
|
6981
|
+
const selection = this.contextService.grid.selection;
|
|
6982
|
+
const groups = groupBy(selection, [{ field: 'itemKey' }])
|
|
6983
|
+
.map(gr => {
|
|
6984
|
+
gr.items.sort((a, b) => a.columnKey - b.columnKey);
|
|
6985
|
+
return gr;
|
|
6986
|
+
});
|
|
6987
|
+
for (let i = 1; i < groups.length; i++) {
|
|
6988
|
+
if (!this.areEqual(groups[i].items, groups[i - 1].items)) {
|
|
6989
|
+
return {
|
|
6990
|
+
tabular: false,
|
|
6991
|
+
groups
|
|
6992
|
+
};
|
|
6993
|
+
}
|
|
6994
|
+
}
|
|
6995
|
+
return {
|
|
6996
|
+
tabular: true,
|
|
6997
|
+
groups
|
|
6998
|
+
};
|
|
6999
|
+
}
|
|
7000
|
+
areEqual(arr1, arr2) {
|
|
7001
|
+
if (arr1.length !== arr2.length) {
|
|
7002
|
+
return false;
|
|
7003
|
+
}
|
|
7004
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
7005
|
+
if (arr1[i].columnKey !== arr2[i].columnKey) {
|
|
7006
|
+
return false;
|
|
7007
|
+
}
|
|
7008
|
+
}
|
|
7009
|
+
return true;
|
|
7010
|
+
}
|
|
7011
|
+
addHeaders(initialData, cols) {
|
|
7012
|
+
const headersRowData = cols.map(c => c.title || c.field).join(`\t`);
|
|
7013
|
+
return `${headersRowData}\r\n${initialData}`;
|
|
7014
|
+
}
|
|
7015
|
+
}
|
|
7016
|
+
ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7017
|
+
ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService });
|
|
7018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ClipboardService, decorators: [{
|
|
7019
|
+
type: Injectable
|
|
7020
|
+
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
7021
|
+
|
|
6751
7022
|
/**
|
|
6752
7023
|
* @hidden
|
|
6753
7024
|
*/
|
|
@@ -7730,7 +8001,7 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
7730
8001
|
</kendo-numerictextbox>
|
|
7731
8002
|
{{textFor('pagerOf')}} {{totalPages}}
|
|
7732
8003
|
</span>
|
|
7733
|
-
`, isInline: true, components: [{ type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i1$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
8004
|
+
`, isInline: true, components: [{ type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i1$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
7734
8005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInputComponent, decorators: [{
|
|
7735
8006
|
type: Component,
|
|
7736
8007
|
args: [{
|
|
@@ -7881,7 +8152,6 @@ class PagerComponent {
|
|
|
7881
8152
|
this.total = 0;
|
|
7882
8153
|
this.skip = 1;
|
|
7883
8154
|
this.pageChange = new EventEmitter();
|
|
7884
|
-
this.pagerWrapClass = true;
|
|
7885
8155
|
this.gridPagerClass = true;
|
|
7886
8156
|
this.settings = normalize$1({});
|
|
7887
8157
|
this.subscriptions = new Subscription();
|
|
@@ -8107,7 +8377,7 @@ class PagerComponent {
|
|
|
8107
8377
|
}
|
|
8108
8378
|
}
|
|
8109
8379
|
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: ContextService }, { token: CELL_CONTEXT, optional: true }, { token: FocusRoot }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
|
|
8110
|
-
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-
|
|
8380
|
+
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
|
|
8111
8381
|
provide: FOCUS_ROOT_ACTIVE,
|
|
8112
8382
|
useValue: true
|
|
8113
8383
|
}, {
|
|
@@ -8243,9 +8513,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8243
8513
|
type: Input
|
|
8244
8514
|
}], pageChange: [{
|
|
8245
8515
|
type: Output
|
|
8246
|
-
}], pagerWrapClass: [{
|
|
8247
|
-
type: HostBinding,
|
|
8248
|
-
args: ['class.k-pager-wrap']
|
|
8249
8516
|
}], gridPagerClass: [{
|
|
8250
8517
|
type: HostBinding,
|
|
8251
8518
|
args: ['class.k-grid-pager']
|
|
@@ -10174,7 +10441,7 @@ NumericFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
10174
10441
|
</kendo-numerictextbox-messages>
|
|
10175
10442
|
</kendo-numerictextbox>
|
|
10176
10443
|
</kendo-grid-filter-menu-input-wrapper>
|
|
10177
|
-
`, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
10444
|
+
`, isInline: true, components: [{ type: FilterMenuInputWrapperComponent, selector: "kendo-grid-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
10178
10445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuInputComponent, decorators: [{
|
|
10179
10446
|
type: Component,
|
|
10180
10447
|
args: [{
|
|
@@ -11303,7 +11570,7 @@ FilterMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
11303
11570
|
MenuTabbingService
|
|
11304
11571
|
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "filterButton", first: true, predicate: ["filterButton"], descendants: true }], ngImport: i0, template: `
|
|
11305
11572
|
<form (submit)="submit()" (reset)="reset()"
|
|
11306
|
-
class="k-filter-menu
|
|
11573
|
+
class="k-filter-menu">
|
|
11307
11574
|
<div class="k-filter-menu-container">
|
|
11308
11575
|
<ng-container [ngSwitch]="hasTemplate">
|
|
11309
11576
|
<ng-container *ngSwitchCase="false">
|
|
@@ -11349,7 +11616,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11349
11616
|
selector: 'kendo-grid-filter-menu-container',
|
|
11350
11617
|
template: `
|
|
11351
11618
|
<form (submit)="submit()" (reset)="reset()"
|
|
11352
|
-
class="k-filter-menu
|
|
11619
|
+
class="k-filter-menu">
|
|
11353
11620
|
<div class="k-filter-menu-container">
|
|
11354
11621
|
<ng-container [ngSwitch]="hasTemplate">
|
|
11355
11622
|
<ng-container *ngSwitchCase="false">
|
|
@@ -11603,14 +11870,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11603
11870
|
type: Injectable
|
|
11604
11871
|
}], ctorParameters: function () { return [{ type: MenuTabbingService }]; } });
|
|
11605
11872
|
|
|
11606
|
-
/**
|
|
11607
|
-
* @hidden
|
|
11608
|
-
*/
|
|
11609
|
-
const ColumnMenuErrorMessages = {
|
|
11610
|
-
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11611
|
-
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11612
|
-
};
|
|
11613
|
-
|
|
11614
11873
|
/**
|
|
11615
11874
|
* @hidden
|
|
11616
11875
|
*/
|
|
@@ -11620,7 +11879,7 @@ class ColumnMenuItemBase {
|
|
|
11620
11879
|
}
|
|
11621
11880
|
ngOnInit() {
|
|
11622
11881
|
if (isDevMode() && !this.service) {
|
|
11623
|
-
throw new Error(
|
|
11882
|
+
throw new Error(ColumnMenuErrorMessages.serviceInput);
|
|
11624
11883
|
}
|
|
11625
11884
|
}
|
|
11626
11885
|
/**
|
|
@@ -13223,7 +13482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13223
13482
|
}]
|
|
13224
13483
|
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
13225
13484
|
|
|
13226
|
-
const
|
|
13485
|
+
const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
|
|
13227
13486
|
let id$2 = 0;
|
|
13228
13487
|
const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
|
|
13229
13488
|
/**
|
|
@@ -13416,7 +13675,7 @@ class ColumnMenuComponent {
|
|
|
13416
13675
|
this.expandedFilter = this.getExpandedState(this.settings.filter);
|
|
13417
13676
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
13418
13677
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
13419
|
-
this.popupRef = this.popupService.open(anchor, template, this.popupRef,
|
|
13678
|
+
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);
|
|
13420
13679
|
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
13421
13680
|
// automatically when the Popup is closed by clicking outside the anchor
|
|
13422
13681
|
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
@@ -13437,7 +13696,8 @@ class ColumnMenuComponent {
|
|
|
13437
13696
|
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
13438
13697
|
}
|
|
13439
13698
|
if (this.settings.view === 'tabbed') {
|
|
13440
|
-
this.renderer.addClass(
|
|
13699
|
+
this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
|
|
13700
|
+
this.renderer.addClass(popupAriaElement, 'k-column-menu');
|
|
13441
13701
|
this.cdr.detectChanges();
|
|
13442
13702
|
this.tabStrip?.selectTab(0);
|
|
13443
13703
|
}
|
|
@@ -13563,7 +13823,8 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13563
13823
|
</kendo-grid-columnmenu-container>
|
|
13564
13824
|
</ng-template>
|
|
13565
13825
|
<ng-template #tabbedInterfaceTemplate>
|
|
13566
|
-
<kendo-tabstrip #tabstrip
|
|
13826
|
+
<kendo-tabstrip #tabstrip
|
|
13827
|
+
(keydown.escape)="close(true)">
|
|
13567
13828
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13568
13829
|
<ng-template kendoTabTitle>
|
|
13569
13830
|
<kendo-icon-wrapper
|
|
@@ -13738,7 +13999,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13738
13999
|
</kendo-grid-columnmenu-container>
|
|
13739
14000
|
</ng-template>
|
|
13740
14001
|
<ng-template #tabbedInterfaceTemplate>
|
|
13741
|
-
<kendo-tabstrip #tabstrip
|
|
14002
|
+
<kendo-tabstrip #tabstrip
|
|
14003
|
+
(keydown.escape)="close(true)">
|
|
13742
14004
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13743
14005
|
<ng-template kendoTabTitle>
|
|
13744
14006
|
<kendo-icon-wrapper
|
|
@@ -14303,7 +14565,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
14303
14565
|
</kendo-numerictextbox-messages>
|
|
14304
14566
|
</kendo-numerictextbox>
|
|
14305
14567
|
</kendo-grid-filter-wrapper-cell>
|
|
14306
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
14568
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i3$1.NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
14307
14569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
|
|
14308
14570
|
type: Component,
|
|
14309
14571
|
args: [{
|
|
@@ -15979,12 +16241,14 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
15979
16241
|
</ng-container>
|
|
15980
16242
|
|
|
15981
16243
|
<ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
|
|
15982
|
-
<
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
16244
|
+
<span class="k-checkbox-wrap">
|
|
16245
|
+
<input
|
|
16246
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
16247
|
+
[attr.id]="selectAllCheckboxId()"
|
|
16248
|
+
[attr.aria-label]="selectAllCheckboxLabel"
|
|
16249
|
+
kendoGridSelectAllCheckbox
|
|
16250
|
+
kendoGridFocusable>
|
|
16251
|
+
</span>
|
|
15988
16252
|
</ng-container>
|
|
15989
16253
|
<span kendoGridColumnHandle
|
|
15990
16254
|
kendoDraggable
|
|
@@ -16203,12 +16467,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
16203
16467
|
</ng-container>
|
|
16204
16468
|
|
|
16205
16469
|
<ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
|
|
16206
|
-
<
|
|
16207
|
-
|
|
16208
|
-
|
|
16209
|
-
|
|
16210
|
-
|
|
16211
|
-
|
|
16470
|
+
<span class="k-checkbox-wrap">
|
|
16471
|
+
<input
|
|
16472
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
16473
|
+
[attr.id]="selectAllCheckboxId()"
|
|
16474
|
+
[attr.aria-label]="selectAllCheckboxLabel"
|
|
16475
|
+
kendoGridSelectAllCheckbox
|
|
16476
|
+
kendoGridFocusable>
|
|
16477
|
+
</span>
|
|
16212
16478
|
</ng-container>
|
|
16213
16479
|
<span kendoGridColumnHandle
|
|
16214
16480
|
kendoDraggable
|
|
@@ -16855,11 +17121,13 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16855
17121
|
</ng-container>
|
|
16856
17122
|
<ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
|
|
16857
17123
|
<ng-container *ngIf="isCheckboxColumn && !isNew">
|
|
16858
|
-
<
|
|
16859
|
-
|
|
16860
|
-
|
|
16861
|
-
|
|
16862
|
-
|
|
17124
|
+
<span class="k-checkbox-wrap">
|
|
17125
|
+
<input
|
|
17126
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
17127
|
+
[kendoGridSelectionCheckbox]="rowIndex"
|
|
17128
|
+
[attr.id]="selectionCheckboxId"
|
|
17129
|
+
[attr.aria-label]="selectionCheckboxLabel" />
|
|
17130
|
+
</span>
|
|
16863
17131
|
</ng-container>
|
|
16864
17132
|
<ng-container *ngIf="isRowReorderColumn && !isNew">
|
|
16865
17133
|
<kendo-icon-wrapper
|
|
@@ -16898,13 +17166,15 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16898
17166
|
kendoGridFocusable
|
|
16899
17167
|
></kendo-datepicker>
|
|
16900
17168
|
|
|
16901
|
-
<
|
|
16902
|
-
|
|
16903
|
-
|
|
16904
|
-
|
|
16905
|
-
|
|
16906
|
-
|
|
16907
|
-
|
|
17169
|
+
<span class="k-checkbox-wrap">
|
|
17170
|
+
<input
|
|
17171
|
+
*ngSwitchCase="'boolean'"
|
|
17172
|
+
type="checkbox"
|
|
17173
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
17174
|
+
[formControl]="$any(formGroup.get(column.field))"
|
|
17175
|
+
kendoGridFocusable
|
|
17176
|
+
/>
|
|
17177
|
+
</span>
|
|
16908
17178
|
|
|
16909
17179
|
<input
|
|
16910
17180
|
*ngSwitchDefault
|
|
@@ -16916,7 +17186,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16916
17186
|
</ng-container>
|
|
16917
17187
|
</ng-container>
|
|
16918
17188
|
</ng-container>
|
|
16919
|
-
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
|
|
17189
|
+
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i3$1.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i4$3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i4$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": FieldAccessorPipe } });
|
|
16920
17190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
|
|
16921
17191
|
type: Component,
|
|
16922
17192
|
args: [{
|
|
@@ -16936,11 +17206,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
16936
17206
|
</ng-container>
|
|
16937
17207
|
<ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
|
|
16938
17208
|
<ng-container *ngIf="isCheckboxColumn && !isNew">
|
|
16939
|
-
<
|
|
16940
|
-
|
|
16941
|
-
|
|
16942
|
-
|
|
16943
|
-
|
|
17209
|
+
<span class="k-checkbox-wrap">
|
|
17210
|
+
<input
|
|
17211
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
17212
|
+
[kendoGridSelectionCheckbox]="rowIndex"
|
|
17213
|
+
[attr.id]="selectionCheckboxId"
|
|
17214
|
+
[attr.aria-label]="selectionCheckboxLabel" />
|
|
17215
|
+
</span>
|
|
16944
17216
|
</ng-container>
|
|
16945
17217
|
<ng-container *ngIf="isRowReorderColumn && !isNew">
|
|
16946
17218
|
<kendo-icon-wrapper
|
|
@@ -16979,13 +17251,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
16979
17251
|
kendoGridFocusable
|
|
16980
17252
|
></kendo-datepicker>
|
|
16981
17253
|
|
|
16982
|
-
<
|
|
16983
|
-
|
|
16984
|
-
|
|
16985
|
-
|
|
16986
|
-
|
|
16987
|
-
|
|
16988
|
-
|
|
17254
|
+
<span class="k-checkbox-wrap">
|
|
17255
|
+
<input
|
|
17256
|
+
*ngSwitchCase="'boolean'"
|
|
17257
|
+
type="checkbox"
|
|
17258
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
17259
|
+
[formControl]="$any(formGroup.get(column.field))"
|
|
17260
|
+
kendoGridFocusable
|
|
17261
|
+
/>
|
|
17262
|
+
</span>
|
|
16989
17263
|
|
|
16990
17264
|
<input
|
|
16991
17265
|
*ngSwitchDefault
|
|
@@ -17745,7 +18019,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
17745
18019
|
[attr.data-kendo-grid-item-index]="$any(item).index"
|
|
17746
18020
|
[class.k-selected]="isSelectable() && isRowSelected(item)">
|
|
17747
18021
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
17748
|
-
<td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
|
|
18022
|
+
<td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
|
|
17749
18023
|
</ng-container>
|
|
17750
18024
|
<td class="k-hierarchy-cell k-table-td"
|
|
17751
18025
|
*ngIf="detailTemplate?.templateRef"
|
|
@@ -17847,7 +18121,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
17847
18121
|
[logicalCellsCount]="columns.length"
|
|
17848
18122
|
[logicalSlaveCellsCount]="unlockedColumnsCount(item)">
|
|
17849
18123
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
17850
|
-
<td class="k-group-cell" *ngFor="let g of groups"></td>
|
|
18124
|
+
<td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
|
|
17851
18125
|
</ng-container>
|
|
17852
18126
|
<td class="k-hierarchy-cell k-table-td"
|
|
17853
18127
|
*ngIf="detailTemplate?.templateRef"
|
|
@@ -17975,7 +18249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
17975
18249
|
[attr.data-kendo-grid-item-index]="$any(item).index"
|
|
17976
18250
|
[class.k-selected]="isSelectable() && isRowSelected(item)">
|
|
17977
18251
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
17978
|
-
<td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
|
|
18252
|
+
<td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
|
|
17979
18253
|
</ng-container>
|
|
17980
18254
|
<td class="k-hierarchy-cell k-table-td"
|
|
17981
18255
|
*ngIf="detailTemplate?.templateRef"
|
|
@@ -18077,7 +18351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
18077
18351
|
[logicalCellsCount]="columns.length"
|
|
18078
18352
|
[logicalSlaveCellsCount]="unlockedColumnsCount(item)">
|
|
18079
18353
|
<ng-container *ngIf="!skipGroupDecoration">
|
|
18080
|
-
<td class="k-group-cell" *ngFor="let g of groups"></td>
|
|
18354
|
+
<td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
|
|
18081
18355
|
</ng-container>
|
|
18082
18356
|
<td class="k-hierarchy-cell k-table-td"
|
|
18083
18357
|
*ngIf="detailTemplate?.templateRef"
|
|
@@ -19694,11 +19968,7 @@ const createControl = (source) => (acc, key) => {
|
|
|
19694
19968
|
const validateColumnsField = (columns) => expandColumns(columns.toArray())
|
|
19695
19969
|
.filter(isColumnComponent)
|
|
19696
19970
|
.filter(({ field }) => !isValidFieldName(field))
|
|
19697
|
-
.forEach(({ field }) => console.warn(
|
|
19698
|
-
Grid column field name '${field}' does not look like a valid JavaScript identifier.
|
|
19699
|
-
Identifiers can contain only alphanumeric characters (including "$" or "_"), and may not start with a digit.
|
|
19700
|
-
Please use only valid identifier names to ensure error-free operation.
|
|
19701
|
-
`));
|
|
19971
|
+
.forEach(({ field }) => console.warn(ColumnConfigurationErrorMessages.fieldName(field)));
|
|
19702
19972
|
const handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ group }) => isPresent(group)))
|
|
19703
19973
|
.subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
|
|
19704
19974
|
const handleExpandCollapseDetailsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))
|
|
@@ -20213,7 +20483,7 @@ class GridComponent {
|
|
|
20213
20483
|
*/
|
|
20214
20484
|
set rowClass(fn) {
|
|
20215
20485
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20216
|
-
throw new Error(
|
|
20486
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowClass', fn));
|
|
20217
20487
|
}
|
|
20218
20488
|
this._rowClass = fn;
|
|
20219
20489
|
}
|
|
@@ -20226,7 +20496,7 @@ class GridComponent {
|
|
|
20226
20496
|
*/
|
|
20227
20497
|
set rowSticky(fn) {
|
|
20228
20498
|
if (isDevMode() && isPresent(fn) && typeof fn !== 'function') {
|
|
20229
|
-
throw new Error(
|
|
20499
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSticky', fn));
|
|
20230
20500
|
}
|
|
20231
20501
|
if (isPresent(fn)) {
|
|
20232
20502
|
this._rowSticky = fn;
|
|
@@ -20242,7 +20512,7 @@ class GridComponent {
|
|
|
20242
20512
|
*/
|
|
20243
20513
|
set rowSelected(fn) {
|
|
20244
20514
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20245
|
-
throw new Error(
|
|
20515
|
+
throw new Error(GridConfigurationErrorMessages.functionType('rowSelected', fn));
|
|
20246
20516
|
}
|
|
20247
20517
|
this._rowSelected = fn;
|
|
20248
20518
|
}
|
|
@@ -20259,7 +20529,7 @@ class GridComponent {
|
|
|
20259
20529
|
*/
|
|
20260
20530
|
set cellSelected(fn) {
|
|
20261
20531
|
if (isDevMode() && typeof fn !== 'function') {
|
|
20262
|
-
throw new Error(
|
|
20532
|
+
throw new Error(GridConfigurationErrorMessages.functionType('cellSelected', fn));
|
|
20263
20533
|
}
|
|
20264
20534
|
this._cellSelected = fn;
|
|
20265
20535
|
}
|
|
@@ -20278,6 +20548,16 @@ class GridComponent {
|
|
|
20278
20548
|
get activeRow() {
|
|
20279
20549
|
return this.navigationService.activeRow;
|
|
20280
20550
|
}
|
|
20551
|
+
/**
|
|
20552
|
+
* Returns the current Grid selection.
|
|
20553
|
+
*
|
|
20554
|
+
* @hidden
|
|
20555
|
+
*/
|
|
20556
|
+
get selection() {
|
|
20557
|
+
return (this.selectable || this.selectionDirective) ?
|
|
20558
|
+
this.defaultSelection ? this.defaultSelection.stateToArray() : this.selectionDirective.stateToArray() :
|
|
20559
|
+
[];
|
|
20560
|
+
}
|
|
20281
20561
|
/**
|
|
20282
20562
|
* Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug binding_grid %})).
|
|
20283
20563
|
*
|
|
@@ -21194,7 +21474,7 @@ class GridComponent {
|
|
|
21194
21474
|
instance = column;
|
|
21195
21475
|
}
|
|
21196
21476
|
if (!instance && isDevMode()) {
|
|
21197
|
-
throw new Error(
|
|
21477
|
+
throw new Error(ColumnConfigurationErrorMessages.invalidColumn(column));
|
|
21198
21478
|
}
|
|
21199
21479
|
return instance;
|
|
21200
21480
|
}
|
|
@@ -21203,43 +21483,43 @@ class GridComponent {
|
|
|
21203
21483
|
const locked = this.lockedLeafColumns.length || (this.columnMenu && this.columnMenu.lock);
|
|
21204
21484
|
const stickyColumns = this.stickyColumns.length || (this.columnMenu && this.columnMenu.stick);
|
|
21205
21485
|
if (locked && this.detailTemplate) {
|
|
21206
|
-
throw new Error('
|
|
21486
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'locked columns'));
|
|
21207
21487
|
}
|
|
21208
21488
|
if (stickyColumns && this.detailTemplate) {
|
|
21209
|
-
throw new Error('
|
|
21489
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('detail template', 'sticky columns'));
|
|
21210
21490
|
}
|
|
21211
21491
|
if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {
|
|
21212
|
-
throw new Error(
|
|
21492
|
+
throw new Error(GridConfigurationErrorMessages.nonLockedColumnPresent);
|
|
21213
21493
|
}
|
|
21214
21494
|
if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21215
|
-
throw new Error((locked ? 'Locked' : 'Virtual')
|
|
21495
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth(locked ? 'Locked' : 'Virtual'));
|
|
21216
21496
|
}
|
|
21217
21497
|
if (locked && !this.isScrollable) {
|
|
21218
|
-
throw new Error('Locked
|
|
21498
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Locked'));
|
|
21499
|
+
}
|
|
21500
|
+
if (stickyColumns && !this.isScrollable) {
|
|
21501
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredScroll('Sticky'));
|
|
21219
21502
|
}
|
|
21220
21503
|
if (this.columnList.filter(isColumnGroupComponent).filter((x) => !x.hasChildren).length) {
|
|
21221
|
-
throw new Error(
|
|
21504
|
+
throw new Error(ColumnConfigurationErrorMessages.groupColumnContent);
|
|
21222
21505
|
}
|
|
21223
21506
|
if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {
|
|
21224
|
-
throw new Error(
|
|
21507
|
+
throw new Error(ColumnConfigurationErrorMessages.lockedParent);
|
|
21225
21508
|
}
|
|
21226
21509
|
if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {
|
|
21227
|
-
throw new Error(
|
|
21510
|
+
throw new Error(GridConfigurationErrorMessages.rowHeightVirtual);
|
|
21228
21511
|
}
|
|
21229
21512
|
if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
21230
|
-
throw new Error('Sticky
|
|
21231
|
-
}
|
|
21232
|
-
if (stickyColumns && !this.isScrollable) {
|
|
21233
|
-
throw new Error('Sticky columns are only supported when scrolling is enabled.');
|
|
21513
|
+
throw new Error(ColumnConfigurationErrorMessages.requiredWidth('Sticky'));
|
|
21234
21514
|
}
|
|
21235
21515
|
if (stickyColumns && this.virtualColumns) {
|
|
21236
|
-
throw new Error('
|
|
21516
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky columns', 'column virtualization'));
|
|
21237
21517
|
}
|
|
21238
21518
|
if (this.rowSticky && this.scrollable === 'virtual') {
|
|
21239
|
-
throw new Error('
|
|
21519
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'row virtualization (scrollable="virtual")'));
|
|
21240
21520
|
}
|
|
21241
21521
|
if (this.rowSticky && this.groupable) {
|
|
21242
|
-
throw new Error('
|
|
21522
|
+
throw new Error(GridConfigurationErrorMessages.incompatibleFeatures('sticky rows', 'grouping'));
|
|
21243
21523
|
}
|
|
21244
21524
|
validateColumnsField(this.columnList);
|
|
21245
21525
|
}
|
|
@@ -21438,7 +21718,7 @@ class GridComponent {
|
|
|
21438
21718
|
}
|
|
21439
21719
|
assertNavigable() {
|
|
21440
21720
|
if (isDevMode() && !this.navigationService.enabled) {
|
|
21441
|
-
throw new Error(
|
|
21721
|
+
throw new Error(GridConfigurationErrorMessages.focusNavigable);
|
|
21442
21722
|
}
|
|
21443
21723
|
}
|
|
21444
21724
|
navigationMetadata() {
|
|
@@ -21510,9 +21790,7 @@ class GridComponent {
|
|
|
21510
21790
|
toggleDetailRowLegacy(index, expand) {
|
|
21511
21791
|
const hasCallback = typeof this.isDetailExpanded === 'function';
|
|
21512
21792
|
if (isDevMode() && hasCallback) {
|
|
21513
|
-
throw new Error('
|
|
21514
|
-
'kendoGridDetailsExpandBy directive or the isDetailExpanded callback. ' +
|
|
21515
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21793
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandRow', 'collapseRow', 'kendoGridDetailsExpandBy', 'isDetailExpanded'));
|
|
21516
21794
|
}
|
|
21517
21795
|
if (!isDevMode() && hasCallback) {
|
|
21518
21796
|
return;
|
|
@@ -21524,9 +21802,7 @@ class GridComponent {
|
|
|
21524
21802
|
toggleGroupRowLegacy(index, expand) {
|
|
21525
21803
|
const hasCallback = typeof this.isGroupExpanded === 'function';
|
|
21526
21804
|
if (isDevMode() && hasCallback) {
|
|
21527
|
-
throw new Error('
|
|
21528
|
-
'kendoGridExpandGroupBy directive or the isGroupExpanded callback. ' +
|
|
21529
|
-
'These methods are provided only for backwards compatibility with legacy versions.');
|
|
21805
|
+
throw new Error(GridConfigurationErrorMessages.expandCollapseMethods('expandGroup', 'collapseGroup', 'kendoGridExpandGroupBy', 'isGroupExpanded'));
|
|
21530
21806
|
}
|
|
21531
21807
|
if (!isDevMode() && hasCallback) {
|
|
21532
21808
|
return;
|
|
@@ -21600,7 +21876,8 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
21600
21876
|
SortService,
|
|
21601
21877
|
ContextService,
|
|
21602
21878
|
SizingOptionsService,
|
|
21603
|
-
RowReorderService
|
|
21879
|
+
RowReorderService,
|
|
21880
|
+
ClipboardService
|
|
21604
21881
|
], 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: `
|
|
21605
21882
|
<ng-container kendoGridLocalizedMessages
|
|
21606
21883
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
@@ -22228,7 +22505,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
22228
22505
|
SortService,
|
|
22229
22506
|
ContextService,
|
|
22230
22507
|
SizingOptionsService,
|
|
22231
|
-
RowReorderService
|
|
22508
|
+
RowReorderService,
|
|
22509
|
+
ClipboardService
|
|
22232
22510
|
],
|
|
22233
22511
|
selector: 'kendo-grid',
|
|
22234
22512
|
template: `
|
|
@@ -23158,11 +23436,12 @@ class DataBindingDirective {
|
|
|
23158
23436
|
}
|
|
23159
23437
|
}
|
|
23160
23438
|
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 });
|
|
23161
|
-
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 });
|
|
23439
|
+
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 });
|
|
23162
23440
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataBindingDirective, decorators: [{
|
|
23163
23441
|
type: Directive,
|
|
23164
23442
|
args: [{
|
|
23165
|
-
selector: '[kendoGridBinding]'
|
|
23443
|
+
selector: '[kendoGridBinding]',
|
|
23444
|
+
exportAs: 'kendoGridBinding'
|
|
23166
23445
|
}]
|
|
23167
23446
|
}], ctorParameters: function () { return [{ type: GridComponent }, { type: i0.ChangeDetectorRef }, { type: LocalDataChangesService }, { type: RowReorderService }]; }, propDecorators: { skip: [{
|
|
23168
23447
|
type: Input
|
|
@@ -23539,7 +23818,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
23539
23818
|
[value]="currentFilter?.value">
|
|
23540
23819
|
</kendo-autocomplete>
|
|
23541
23820
|
</kendo-grid-filter-wrapper-cell>
|
|
23542
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
23821
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
23543
23822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
|
|
23544
23823
|
type: Component,
|
|
23545
23824
|
args: [{
|
|
@@ -25683,8 +25962,7 @@ class LocalEditService {
|
|
|
25683
25962
|
return data;
|
|
25684
25963
|
}
|
|
25685
25964
|
if (isDevMode()) {
|
|
25686
|
-
throw new Error(
|
|
25687
|
-
'Please provide an editService.');
|
|
25965
|
+
throw new Error(GridConfigurationErrorMessages.requiredEditService);
|
|
25688
25966
|
}
|
|
25689
25967
|
return [];
|
|
25690
25968
|
}
|
|
@@ -26191,9 +26469,7 @@ class GroupBindingDirective extends DataBindingDirective {
|
|
|
26191
26469
|
}
|
|
26192
26470
|
ngAfterContentInit() {
|
|
26193
26471
|
if (isDevMode() && this.grid.isGroupExpanded) {
|
|
26194
|
-
throw new Error(
|
|
26195
|
-
'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +
|
|
26196
|
-
'set the Grid `groupable` property to `true`.');
|
|
26472
|
+
throw new Error(GridConfigurationErrorMessages.groupBindingDirectives);
|
|
26197
26473
|
}
|
|
26198
26474
|
}
|
|
26199
26475
|
groupExpand({ groupIndex }) {
|
|
@@ -26325,6 +26601,176 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
26325
26601
|
}]
|
|
26326
26602
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ContextService }]; } });
|
|
26327
26603
|
|
|
26604
|
+
/**
|
|
26605
|
+
* The directive that enables the Grid built-in clipboard support. Allows copy, cut, and paste interactions
|
|
26606
|
+
* with the Grid.
|
|
26607
|
+
*/
|
|
26608
|
+
class GridClipboardDirective {
|
|
26609
|
+
constructor(host, clipboardService, renderer, zone) {
|
|
26610
|
+
this.host = host;
|
|
26611
|
+
this.clipboardService = clipboardService;
|
|
26612
|
+
this.renderer = renderer;
|
|
26613
|
+
this.zone = zone;
|
|
26614
|
+
/**
|
|
26615
|
+
* Fires when the user performs `cut`, `copy` or `paste` action within the Grid content area.
|
|
26616
|
+
*/
|
|
26617
|
+
this.clipboard = new EventEmitter();
|
|
26618
|
+
this._target = 'selection';
|
|
26619
|
+
this._clipboardSettings = {
|
|
26620
|
+
wholeRow: false,
|
|
26621
|
+
copyHeaders: false,
|
|
26622
|
+
copy: true,
|
|
26623
|
+
cut: true,
|
|
26624
|
+
paste: true
|
|
26625
|
+
};
|
|
26626
|
+
this.subs = new Subscription();
|
|
26627
|
+
this.onClipboard = (operationType, args) => {
|
|
26628
|
+
if (!this.clipboardSettings[operationType] || !this.inGrid(args)) {
|
|
26629
|
+
return;
|
|
26630
|
+
}
|
|
26631
|
+
const gridData = Array.isArray(this.host.data) ? this.host.data : this.host.data.data;
|
|
26632
|
+
const gridDataItems = gridData.flatMap(recursiveFlatMap);
|
|
26633
|
+
const selection = this.host.selection;
|
|
26634
|
+
const selectionDirective = this.host.selectionDirective;
|
|
26635
|
+
const targetType = this.clipboardTarget;
|
|
26636
|
+
const isCellSelection = (this.host.selectable?.cell || selectionDirective.isCellSelectionMode);
|
|
26637
|
+
let clipboardData = [];
|
|
26638
|
+
switch (targetType) {
|
|
26639
|
+
case 'activeCell':
|
|
26640
|
+
{
|
|
26641
|
+
const targetCell = { ...this.host.activeCell };
|
|
26642
|
+
clipboardData = targetCell && [{ dataItem: targetCell.dataItem, dataRowIndex: targetCell.dataRowIndex, colIndex: targetCell.colIndex }];
|
|
26643
|
+
}
|
|
26644
|
+
break;
|
|
26645
|
+
case 'selection':
|
|
26646
|
+
{
|
|
26647
|
+
const identifier = selectionDirective.selectionKey;
|
|
26648
|
+
clipboardData = gridDataItems.flatMap((item, index) => {
|
|
26649
|
+
if (identifier) {
|
|
26650
|
+
const key = typeof identifier === 'string' ? item[identifier] : identifier({ index: index + this.host.skip, dataItem: item });
|
|
26651
|
+
return isCellSelection ?
|
|
26652
|
+
selection.some(s => s.itemKey === key) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26653
|
+
selection.indexOf(key) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26654
|
+
}
|
|
26655
|
+
return isCellSelection ?
|
|
26656
|
+
selection.some(s => s.itemKey === index + this.host.skip) ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [] :
|
|
26657
|
+
selection.indexOf(index + this.host.skip) > -1 ? [{ dataItem: item, dataRowIndex: index + this.host.skip }] : [];
|
|
26658
|
+
});
|
|
26659
|
+
}
|
|
26660
|
+
break;
|
|
26661
|
+
}
|
|
26662
|
+
const isPaste = operationType === 'paste';
|
|
26663
|
+
const pastedData = args.clipboardData.getData('text').trim();
|
|
26664
|
+
const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
|
|
26665
|
+
const data = isPaste ?
|
|
26666
|
+
{
|
|
26667
|
+
dataString: pastedData,
|
|
26668
|
+
gridItems: this.clipboardService.getGridData(pastedData, visibleCols, this.clipboardTarget, clipboardData[0]?.dataRowIndex, {
|
|
26669
|
+
wholeRow: this.clipboardSettings.wholeRow,
|
|
26670
|
+
isCellSelection
|
|
26671
|
+
})
|
|
26672
|
+
} :
|
|
26673
|
+
this.clipboardService.createClipboardData(clipboardData || [], visibleCols, {
|
|
26674
|
+
wholeRow: this.clipboardSettings.wholeRow || (this.clipboardTarget === 'selection' && !isCellSelection),
|
|
26675
|
+
target: this.clipboardTarget,
|
|
26676
|
+
copyHeaders: this.clipboardSettings.copyHeaders,
|
|
26677
|
+
operationType
|
|
26678
|
+
});
|
|
26679
|
+
!isPaste && navigator.clipboard.writeText(data.dataString);
|
|
26680
|
+
if (hasObservers(this.clipboard)) {
|
|
26681
|
+
this.zone.run(() => {
|
|
26682
|
+
this.clipboard.emit({
|
|
26683
|
+
type: operationType,
|
|
26684
|
+
originalEvent: args,
|
|
26685
|
+
clipboardData: data.dataString,
|
|
26686
|
+
gridData: data.gridItems,
|
|
26687
|
+
target: {
|
|
26688
|
+
dataRowIndex: this.clipboardService.targetRowIndex,
|
|
26689
|
+
colField: this.clipboardService.targetColField,
|
|
26690
|
+
dataItem: clipboardData.find(item => item.dataRowIndex === this.clipboardService.targetRowIndex)?.dataItem
|
|
26691
|
+
}
|
|
26692
|
+
});
|
|
26693
|
+
});
|
|
26694
|
+
}
|
|
26695
|
+
this.clipboardService.targetColField = this.clipboardService.targetRowIndex = null;
|
|
26696
|
+
};
|
|
26697
|
+
this.inGrid = (args) => {
|
|
26698
|
+
const target = document.activeElement.matches('.k-table-td') ? document.activeElement : args.target;
|
|
26699
|
+
const inContentArea = closest(target, node => node.parentElement?.classList.contains('k-grid-container'));
|
|
26700
|
+
const inHost = contains$2(this.host.wrapper.nativeElement, target);
|
|
26701
|
+
return target && inHost && inContentArea;
|
|
26702
|
+
};
|
|
26703
|
+
}
|
|
26704
|
+
/**
|
|
26705
|
+
* Determines the target of the clipboard operation ([see example]({% slug clipboard_grid %}#toc-clipboard-target)). The possible options are:
|
|
26706
|
+
* - `activeCell`
|
|
26707
|
+
* - `selection`
|
|
26708
|
+
*
|
|
26709
|
+
* @default 'selection'
|
|
26710
|
+
*/
|
|
26711
|
+
set clipboardTarget(value) {
|
|
26712
|
+
if (isDevMode()) {
|
|
26713
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
26714
|
+
if (value === 'activeCell' && !(this.host.navigable.length)) {
|
|
26715
|
+
console.warn(ClipboardErrorMessages.clipboardTarget.activeCellNavigable);
|
|
26716
|
+
}
|
|
26717
|
+
else if (value === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
|
|
26718
|
+
console.warn(ClipboardErrorMessages.selectionSelectable);
|
|
26719
|
+
}
|
|
26720
|
+
});
|
|
26721
|
+
}
|
|
26722
|
+
this._target = value;
|
|
26723
|
+
}
|
|
26724
|
+
get clipboardTarget() {
|
|
26725
|
+
return this._target;
|
|
26726
|
+
}
|
|
26727
|
+
/**
|
|
26728
|
+
* The `GridClipboardDirective` settings.
|
|
26729
|
+
*
|
|
26730
|
+
* @default { wholeRow: false, copyHeaders: false copy: true, cut: true, paste: true }
|
|
26731
|
+
*/
|
|
26732
|
+
set clipboardSettings(value) {
|
|
26733
|
+
this._clipboardSettings = Object.assign({}, this._clipboardSettings, value);
|
|
26734
|
+
}
|
|
26735
|
+
get clipboardSettings() {
|
|
26736
|
+
return this._clipboardSettings;
|
|
26737
|
+
}
|
|
26738
|
+
ngAfterViewInit() {
|
|
26739
|
+
if (!isDocumentAvailable()) {
|
|
26740
|
+
return;
|
|
26741
|
+
}
|
|
26742
|
+
if (this.clipboardTarget === 'selection' && !(this.host.selectable || this.host.selectionDirective)) {
|
|
26743
|
+
console.warn(ClipboardErrorMessages.selectionSelectable);
|
|
26744
|
+
}
|
|
26745
|
+
// needed due to the following issue in Chrome
|
|
26746
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1156117&q=focus%20programmatically%20paste&can=2
|
|
26747
|
+
this.zone.runOutsideAngular(() => {
|
|
26748
|
+
this.subs.add(this.renderer.listen(document, 'copy', (args) => this.onClipboard('copy', args)));
|
|
26749
|
+
this.subs.add(this.renderer.listen(document, 'cut', (args) => this.onClipboard('cut', args)));
|
|
26750
|
+
this.subs.add(this.renderer.listen(document, 'paste', (args) => this.onClipboard('paste', args)));
|
|
26751
|
+
});
|
|
26752
|
+
}
|
|
26753
|
+
ngOnDestroy() {
|
|
26754
|
+
this.subs.unsubscribe();
|
|
26755
|
+
}
|
|
26756
|
+
}
|
|
26757
|
+
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 });
|
|
26758
|
+
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"], ngImport: i0 });
|
|
26759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridClipboardDirective, decorators: [{
|
|
26760
|
+
type: Directive,
|
|
26761
|
+
args: [{
|
|
26762
|
+
selector: '[kendoGridClipboard]',
|
|
26763
|
+
exportAs: 'kendoGridClipboard',
|
|
26764
|
+
providers: [ClipboardService]
|
|
26765
|
+
}]
|
|
26766
|
+
}], ctorParameters: function () { return [{ type: GridComponent }, { type: ClipboardService }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { clipboardTarget: [{
|
|
26767
|
+
type: Input
|
|
26768
|
+
}], clipboardSettings: [{
|
|
26769
|
+
type: Input
|
|
26770
|
+
}], clipboard: [{
|
|
26771
|
+
type: Output
|
|
26772
|
+
}] } });
|
|
26773
|
+
|
|
26328
26774
|
const exportedModules$1 = [
|
|
26329
26775
|
GridComponent,
|
|
26330
26776
|
ToolbarTemplateDirective,
|
|
@@ -26349,7 +26795,8 @@ const exportedModules$1 = [
|
|
|
26349
26795
|
...PagerModule.exports(),
|
|
26350
26796
|
...RowFilterModule.exports(),
|
|
26351
26797
|
...FilterMenuModule.exports(),
|
|
26352
|
-
...ColumnMenuModule.exports()
|
|
26798
|
+
...ColumnMenuModule.exports(),
|
|
26799
|
+
GridClipboardDirective
|
|
26353
26800
|
];
|
|
26354
26801
|
const declarations$2 = [
|
|
26355
26802
|
GridComponent,
|
|
@@ -26370,7 +26817,8 @@ const declarations$2 = [
|
|
|
26370
26817
|
GridSpacerComponent,
|
|
26371
26818
|
GridToolbarFocusableDirective,
|
|
26372
26819
|
StatusBarComponent,
|
|
26373
|
-
StatusBarTemplateDirective
|
|
26820
|
+
StatusBarTemplateDirective,
|
|
26821
|
+
GridClipboardDirective
|
|
26374
26822
|
];
|
|
26375
26823
|
/**
|
|
26376
26824
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
@@ -26414,7 +26862,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26414
26862
|
GridSpacerComponent,
|
|
26415
26863
|
GridToolbarFocusableDirective,
|
|
26416
26864
|
StatusBarComponent,
|
|
26417
|
-
StatusBarTemplateDirective
|
|
26865
|
+
StatusBarTemplateDirective,
|
|
26866
|
+
GridClipboardDirective], imports: [CommonModule,
|
|
26418
26867
|
GroupModule,
|
|
26419
26868
|
SharedModule,
|
|
26420
26869
|
BodyModule,
|
|
@@ -26440,7 +26889,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
|
|
|
26440
26889
|
InCellEditingDirective,
|
|
26441
26890
|
ExpandDetailsDirective,
|
|
26442
26891
|
ExpandGroupDirective,
|
|
26443
|
-
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] });
|
|
26892
|
+
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] });
|
|
26444
26893
|
GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
|
|
26445
26894
|
CommonModule,
|
|
26446
26895
|
GroupModule,
|
|
@@ -26737,13 +27186,13 @@ class PDFComponent extends PDFExportComponent {
|
|
|
26737
27186
|
* @hidden
|
|
26738
27187
|
*/
|
|
26739
27188
|
saveAs(_) {
|
|
26740
|
-
throw new Error('
|
|
27189
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
|
|
26741
27190
|
}
|
|
26742
27191
|
/**
|
|
26743
27192
|
* @hidden
|
|
26744
27193
|
*/
|
|
26745
27194
|
export() {
|
|
26746
|
-
throw new Error('
|
|
27195
|
+
throw new Error(GridConfigurationErrorMessages.unsupportedMethod('export', 'GridComponent.drawPDF'));
|
|
26747
27196
|
}
|
|
26748
27197
|
savePDF(component) {
|
|
26749
27198
|
this.createPDF(component, this.draw);
|
|
@@ -27338,5 +27787,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
27338
27787
|
* Generated bundle index. Do not edit.
|
|
27339
27788
|
*/
|
|
27340
27789
|
|
|
27341
|
-
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 };
|
|
27790
|
+
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 };
|
|
27342
27791
|
|