@progress/kendo-angular-pivotgrid 0.2.0-dev.202209020712 → 0.2.0-dev.202209020832
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/bundles/kendo-angular-pivotgrid.umd.js +1 -1
- package/configurator/chip-menu/chip-menu-container.component.d.ts +21 -0
- package/configurator/chip-menu/chip-menu-filter.component.d.ts +44 -0
- package/configurator/chip-menu/chip-menu-item-base.d.ts +22 -0
- package/configurator/chip-menu/chip-menu-item-content-template.directive.d.ts +18 -0
- package/configurator/chip-menu/chip-menu-item.component.d.ts +50 -0
- package/configurator/chip-menu/chip-menu-item.directive.d.ts +32 -0
- package/configurator/chip-menu/chip-menu-sort.component.d.ts +33 -0
- package/configurator/chip-menu/chip-menu.component.d.ts +35 -0
- package/configurator/chip-menu/chip-menu.module.d.ts +26 -0
- package/configurator/chip-menu/chip-menu.service.d.ts +22 -0
- package/configurator/chip-menu/filtering/filter-menu-container.component.d.ts +47 -0
- package/configurator/chip-menu/filtering/filter-menu-dropdownlist.directive.d.ts +19 -0
- package/configurator/chip-menu/filtering/menu-tabbing.service.d.ts +17 -0
- package/configurator/chip-menu/filtering/string-filter-menu.component.d.ts +53 -0
- package/configurator/chip-menu/single-popup.service.d.ts +50 -0
- package/configurator/configurator.component.d.ts +4 -1
- package/data-binding/base-binding-directive.d.ts +10 -1
- package/esm2015/configurator/chip-menu/chip-menu-container.component.js +46 -0
- package/esm2015/configurator/chip-menu/chip-menu-filter.component.js +112 -0
- package/esm2015/configurator/chip-menu/chip-menu-item-base.js +36 -0
- package/esm2015/configurator/chip-menu/chip-menu-item-content-template.directive.js +27 -0
- package/esm2015/configurator/chip-menu/chip-menu-item.component.js +157 -0
- package/esm2015/configurator/chip-menu/chip-menu-item.directive.js +88 -0
- package/esm2015/configurator/chip-menu/chip-menu-sort.component.js +89 -0
- package/esm2015/configurator/chip-menu/chip-menu.component.js +130 -0
- package/esm2015/configurator/chip-menu/chip-menu.module.js +83 -0
- package/esm2015/configurator/chip-menu/chip-menu.service.js +28 -0
- package/esm2015/configurator/chip-menu/filtering/filter-menu-container.component.js +173 -0
- package/esm2015/configurator/chip-menu/filtering/filter-menu-dropdownlist.directive.js +38 -0
- package/esm2015/configurator/chip-menu/filtering/menu-tabbing.service.js +20 -0
- package/esm2015/configurator/chip-menu/filtering/string-filter-menu.component.js +133 -0
- package/esm2015/configurator/chip-menu/single-popup.service.js +121 -0
- package/esm2015/configurator/configurator.component.js +56 -33
- package/esm2015/configurator/configurator.service.js +2 -2
- package/esm2015/data-binding/base-binding-directive.js +16 -4
- package/esm2015/data-binding/local-binding.directive.js +3 -3
- package/esm2015/data-binding/olap-binding.directive.js +6 -4
- package/esm2015/localization/messages.js +3 -1
- package/esm2015/localization/pivot-localization.service.js +28 -0
- package/esm2015/models/configurator-settings.js +3 -1
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pivotgrid.component.js +14 -5
- package/esm2015/pivotgrid.module.js +9 -12
- package/esm2015/shared.module.js +40 -0
- package/esm2015/util.js +13 -0
- package/fesm2015/kendo-angular-pivotgrid.js +1331 -75
- package/localization/messages.d.ts +23 -1
- package/localization/pivot-localization.service.d.ts +19 -0
- package/models/configurator-settings.d.ts +4 -1
- package/package.json +1 -1
- package/pivotgrid.module.d.ts +6 -7
- package/shared.module.d.ts +17 -0
- package/util.d.ts +12 -0
|
@@ -3,25 +3,31 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter, Injectable, Output, Component, HostBinding, Input, Directive, Optional,
|
|
6
|
+
import { EventEmitter, Injectable, Output, Component, HostBinding, Input, Directive, ContentChildren, isDevMode, Optional, ContentChild, forwardRef, ViewChild, ElementRef, NgModule } from '@angular/core';
|
|
7
7
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
8
8
|
import * as i3 from '@progress/kendo-angular-common';
|
|
9
|
-
import { isDocumentAvailable,
|
|
9
|
+
import { isDocumentAvailable, PreventableEvent, Keys, isChanged, hasObservers, anyChanged, EventsModule, DraggableModule } from '@progress/kendo-angular-common';
|
|
10
10
|
import { toTree, toRows, toColumns, toData, configuratorReducer, PIVOT_CONFIGURATOR_ACTION, PivotGridNavigation, HEADERS_ACTION, headersReducer, createFlatSchemaDimensions, createDataTree, createLocalDataState, rootFields, fetchData, createDataState, fetchDiscover, addKPI, buildKPIMeasures } from '@progress/kendo-pivotgrid-common';
|
|
11
11
|
export { averageAggregate, maxAggregate, minAggregate, sumAggregate } from '@progress/kendo-pivotgrid-common';
|
|
12
|
-
import { BehaviorSubject, Subscription, from, of, fromEvent } from 'rxjs';
|
|
13
|
-
import { mergeMap, merge } from 'rxjs/operators';
|
|
14
|
-
import * as
|
|
12
|
+
import { BehaviorSubject, Subscription, Subject, from, of, fromEvent } from 'rxjs';
|
|
13
|
+
import { take, mergeMap, merge } from 'rxjs/operators';
|
|
14
|
+
import * as i1 from '@progress/kendo-angular-l10n';
|
|
15
15
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i7 from '@angular/common';
|
|
17
17
|
import { CommonModule } from '@angular/common';
|
|
18
18
|
import * as i5$1 from '@progress/kendo-angular-indicators';
|
|
19
19
|
import { IndicatorsModule } from '@progress/kendo-angular-indicators';
|
|
20
|
+
import * as i1$1 from '@progress/kendo-angular-popup';
|
|
20
21
|
import * as i4 from '@progress/kendo-angular-treeview';
|
|
21
22
|
import { TreeViewModule } from '@progress/kendo-angular-treeview';
|
|
22
23
|
import * as i5 from '@progress/kendo-angular-buttons';
|
|
23
24
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
24
|
-
import
|
|
25
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
26
|
+
import * as i3$1 from '@angular/forms';
|
|
27
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
28
|
+
import * as i1$2 from '@progress/kendo-angular-dropdowns';
|
|
29
|
+
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
30
|
+
import * as i6 from '@progress/kendo-angular-inputs';
|
|
25
31
|
import { InputsModule } from '@progress/kendo-angular-inputs';
|
|
26
32
|
import { __awaiter } from 'tslib';
|
|
27
33
|
|
|
@@ -32,15 +38,24 @@ const packageMetadata = {
|
|
|
32
38
|
name: '@progress/kendo-angular-pivotgrid',
|
|
33
39
|
productName: 'Kendo UI for Angular',
|
|
34
40
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
35
|
-
publishDate:
|
|
41
|
+
publishDate: 1662107494,
|
|
36
42
|
version: '',
|
|
37
43
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
38
44
|
};
|
|
39
45
|
|
|
46
|
+
const EMPTY_REGEX = /^\s*$/;
|
|
40
47
|
/**
|
|
41
48
|
* @hidden
|
|
42
49
|
*/
|
|
43
50
|
const isPresent = (value) => value !== null && value !== undefined;
|
|
51
|
+
/**
|
|
52
|
+
* @hidden
|
|
53
|
+
*/
|
|
54
|
+
const isBlank = (value) => value === null || value === undefined;
|
|
55
|
+
/**
|
|
56
|
+
* @hidden
|
|
57
|
+
*/
|
|
58
|
+
const isNullOrEmptyString = (value) => isBlank(value) || EMPTY_REGEX.test(value);
|
|
44
59
|
/**
|
|
45
60
|
* @hidden
|
|
46
61
|
* Returns whether two arrays contain the same values.
|
|
@@ -185,6 +200,10 @@ const position = (target, before) => {
|
|
|
185
200
|
* @hidden
|
|
186
201
|
*/
|
|
187
202
|
const filterAndMap = (arr, predicate, mapper) => arr.reduce((acc, curr) => predicate(curr) ? [...acc, mapper(curr)] : acc, []);
|
|
203
|
+
/**
|
|
204
|
+
* @hidden
|
|
205
|
+
*/
|
|
206
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
188
207
|
|
|
189
208
|
/**
|
|
190
209
|
* @hidden
|
|
@@ -242,6 +261,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
242
261
|
type: Output
|
|
243
262
|
}] } });
|
|
244
263
|
|
|
264
|
+
/**
|
|
265
|
+
* @hidden
|
|
266
|
+
*
|
|
267
|
+
* Needed to keep the Pivot's LocalizationService reference and be able to use it inside the ChipList component.
|
|
268
|
+
*/
|
|
269
|
+
class PivotLocalizationService {
|
|
270
|
+
constructor(localization) {
|
|
271
|
+
this.localization = localization;
|
|
272
|
+
}
|
|
273
|
+
get(token) {
|
|
274
|
+
return this.localization.get(token);
|
|
275
|
+
}
|
|
276
|
+
get rtl() {
|
|
277
|
+
return this.localization.rtl;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
PivotLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotLocalizationService, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
281
|
+
PivotLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotLocalizationService });
|
|
282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotLocalizationService, decorators: [{
|
|
283
|
+
type: Injectable
|
|
284
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
285
|
+
|
|
245
286
|
/**
|
|
246
287
|
* @hidden
|
|
247
288
|
*/
|
|
@@ -295,7 +336,7 @@ PivotGridCellDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
295
336
|
[ngClass]="{
|
|
296
337
|
'k-i-arrow-chevron-up': expanded,
|
|
297
338
|
'k-i-arrow-chevron-down': !expanded
|
|
298
|
-
}"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}`, isInline: true, directives: [{ type:
|
|
339
|
+
}"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}`, isInline: true, directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
299
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridCellDirective, decorators: [{
|
|
300
341
|
type: Component,
|
|
301
342
|
args: [{
|
|
@@ -384,7 +425,7 @@ PivotGridTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
384
425
|
</tr>
|
|
385
426
|
</tbody>
|
|
386
427
|
</table>
|
|
387
|
-
`, isInline: true, components: [{ type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex"] }], directives: [{ type:
|
|
428
|
+
`, isInline: true, components: [{ type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
388
429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridTableComponent, decorators: [{
|
|
389
430
|
type: Component,
|
|
390
431
|
args: [{
|
|
@@ -441,8 +482,8 @@ class ConfiguratorService {
|
|
|
441
482
|
}
|
|
442
483
|
parseConfiguratorState(action) {
|
|
443
484
|
const newState = configuratorReducer({
|
|
444
|
-
filter:
|
|
445
|
-
sort:
|
|
485
|
+
filter: this.state.filter,
|
|
486
|
+
sort: this.state.sort,
|
|
446
487
|
rowAxes: this.state.rowAxes,
|
|
447
488
|
columnAxes: this.state.columnAxes,
|
|
448
489
|
measureAxes: this.state.measureAxes,
|
|
@@ -523,6 +564,1079 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
523
564
|
type: Injectable
|
|
524
565
|
}] });
|
|
525
566
|
|
|
567
|
+
const contains = (node, predicate) => {
|
|
568
|
+
while (node) {
|
|
569
|
+
if (predicate(node)) {
|
|
570
|
+
return true;
|
|
571
|
+
}
|
|
572
|
+
node = node.parentNode;
|
|
573
|
+
}
|
|
574
|
+
return false;
|
|
575
|
+
};
|
|
576
|
+
/**
|
|
577
|
+
* @hidden
|
|
578
|
+
* Arguments for the `close` event of the chip-menu popup.
|
|
579
|
+
*/
|
|
580
|
+
class PopupCloseEvent extends PreventableEvent {
|
|
581
|
+
constructor(e) {
|
|
582
|
+
super();
|
|
583
|
+
this.originalEvent = e;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
const DEFAULT_POPUP_CLASS = 'k-grid-filter-popup';
|
|
587
|
+
/**
|
|
588
|
+
* @hidden
|
|
589
|
+
* The service that is used for the popups of the chip menus.
|
|
590
|
+
*/
|
|
591
|
+
class SinglePopupService {
|
|
592
|
+
constructor(popupService, renderer, ngZone, localization) {
|
|
593
|
+
this.popupService = popupService;
|
|
594
|
+
this.renderer = renderer;
|
|
595
|
+
this.ngZone = ngZone;
|
|
596
|
+
this.localization = localization;
|
|
597
|
+
/**
|
|
598
|
+
* Fires when the chip menus are about to close because the user clicked outside their popups.
|
|
599
|
+
* Used to prevent the popup from closing.
|
|
600
|
+
*/
|
|
601
|
+
this.onClose = new Subject();
|
|
602
|
+
this.pointerEventsSub = new Subscription();
|
|
603
|
+
this.scrollSubscription = new Subscription();
|
|
604
|
+
}
|
|
605
|
+
open(anchor, template, popupRef, popupClass = DEFAULT_POPUP_CLASS) {
|
|
606
|
+
var _a;
|
|
607
|
+
const toggle = isPresent(popupRef) && this.popupRef === popupRef;
|
|
608
|
+
this.destroy();
|
|
609
|
+
if (!toggle) {
|
|
610
|
+
const direction = this.localization.rtl ? 'right' : 'left';
|
|
611
|
+
this.popupRef = this.popupService.open({
|
|
612
|
+
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
613
|
+
popupAlign: { vertical: 'top', horizontal: direction },
|
|
614
|
+
anchor: anchor,
|
|
615
|
+
popupClass: popupClass,
|
|
616
|
+
content: template,
|
|
617
|
+
positionMode: "absolute"
|
|
618
|
+
});
|
|
619
|
+
this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.localization.rtl ? 'rtl' : 'ltr');
|
|
620
|
+
this.attachClose(anchor);
|
|
621
|
+
}
|
|
622
|
+
const popupEl = (_a = this.popupRef) === null || _a === void 0 ? void 0 : _a.popupElement;
|
|
623
|
+
if (popupEl) {
|
|
624
|
+
this.attachMouseListeners(popupEl);
|
|
625
|
+
}
|
|
626
|
+
return this.popupRef;
|
|
627
|
+
}
|
|
628
|
+
destroy() {
|
|
629
|
+
if (this.popupRef) {
|
|
630
|
+
this.detachClose();
|
|
631
|
+
this.pointerEventsSub.unsubscribe();
|
|
632
|
+
this.pointerEventsSub = null;
|
|
633
|
+
this.popupRef.close();
|
|
634
|
+
this.popupRef = null;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
ngOnDestroy() {
|
|
638
|
+
this.destroy();
|
|
639
|
+
this.scrollSubscription.unsubscribe();
|
|
640
|
+
}
|
|
641
|
+
detachClose() {
|
|
642
|
+
if (this.removeClick) {
|
|
643
|
+
this.removeClick();
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
attachClose(skipElement) {
|
|
647
|
+
this.detachClose();
|
|
648
|
+
this.ngZone.runOutsideAngular(() => this.removeClick = this.renderer.listen('document', 'click', (e) => {
|
|
649
|
+
if (!contains(e.target, x => this.popupRef.popupElement === x || x === skipElement)) {
|
|
650
|
+
const args = new PopupCloseEvent(e);
|
|
651
|
+
this.onClose.next(args);
|
|
652
|
+
if (!args.isDefaultPrevented() && this.canClosePopup) {
|
|
653
|
+
this.destroy();
|
|
654
|
+
}
|
|
655
|
+
this.canClosePopup = true;
|
|
656
|
+
}
|
|
657
|
+
}));
|
|
658
|
+
}
|
|
659
|
+
attachMouseListeners(el) {
|
|
660
|
+
this.pointerEventsSub = new Subscription();
|
|
661
|
+
this.ngZone.runOutsideAngular(() => {
|
|
662
|
+
this.pointerEventsSub.add(this.renderer.listen(el, 'pointerdown', (e) => {
|
|
663
|
+
e.stopImmediatePropagation();
|
|
664
|
+
this.canClosePopup = false;
|
|
665
|
+
}));
|
|
666
|
+
this.pointerEventsSub.add(this.renderer.listen(el, 'pointerup', () => {
|
|
667
|
+
this.canClosePopup = true;
|
|
668
|
+
}));
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
SinglePopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SinglePopupService, deps: [{ token: i1$1.PopupService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: PivotLocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
673
|
+
SinglePopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SinglePopupService });
|
|
674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SinglePopupService, decorators: [{
|
|
675
|
+
type: Injectable
|
|
676
|
+
}], ctorParameters: function () { return [{ type: i1$1.PopupService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: PivotLocalizationService }]; } });
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* @hidden
|
|
680
|
+
*/
|
|
681
|
+
class MenuTabbingService {
|
|
682
|
+
constructor() {
|
|
683
|
+
this.isColumnMenu = false;
|
|
684
|
+
this.isPopupOpen = false;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
MenuTabbingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MenuTabbingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
688
|
+
MenuTabbingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MenuTabbingService });
|
|
689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MenuTabbingService, decorators: [{
|
|
690
|
+
type: Injectable
|
|
691
|
+
}] });
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* @hidden
|
|
695
|
+
* Represents the service that is passed to the ChipMenuFilterComponent and ChipMenuSortComponent.
|
|
696
|
+
*/
|
|
697
|
+
class ChipMenuService {
|
|
698
|
+
constructor(menuTabbingService) {
|
|
699
|
+
this.closeMenu = new EventEmitter();
|
|
700
|
+
this.menuTabbingService = menuTabbingService;
|
|
701
|
+
}
|
|
702
|
+
/**
|
|
703
|
+
* Closes the chip menu.
|
|
704
|
+
*/
|
|
705
|
+
close() {
|
|
706
|
+
this.closeMenu.emit();
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
ChipMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuService, deps: [{ token: MenuTabbingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
710
|
+
ChipMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuService });
|
|
711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuService, decorators: [{
|
|
712
|
+
type: Injectable
|
|
713
|
+
}], ctorParameters: function () { return [{ type: MenuTabbingService }]; } });
|
|
714
|
+
|
|
715
|
+
/**
|
|
716
|
+
* @hidden
|
|
717
|
+
*/
|
|
718
|
+
class ChipMenuItemDirective {
|
|
719
|
+
constructor(hostElement, renderer, ngZone) {
|
|
720
|
+
this.hostElement = hostElement;
|
|
721
|
+
this.renderer = renderer;
|
|
722
|
+
this.ngZone = ngZone;
|
|
723
|
+
this._isFirst = false;
|
|
724
|
+
this._isLast = false;
|
|
725
|
+
this.subs = new Subscription();
|
|
726
|
+
this.onTab = (e) => {
|
|
727
|
+
if (e.keyCode !== Keys.Tab) {
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
if (this.isFirst && e.shiftKey && e.target === this.chipMenuItems[0]) {
|
|
731
|
+
e.preventDefault();
|
|
732
|
+
this.menuItemComponent.service.menuTabbingService.lastFocusable.focus();
|
|
733
|
+
}
|
|
734
|
+
if (this.isLast && !e.shiftKey) {
|
|
735
|
+
const lastColumnMenuItem = this.getLastColumnMenuItem();
|
|
736
|
+
const isExpanded = this.menuItemComponent.expanded;
|
|
737
|
+
if (lastColumnMenuItem === e.target && !isExpanded) {
|
|
738
|
+
e.preventDefault();
|
|
739
|
+
this.menuItemComponent.service.menuTabbingService.firstFocusable.focus();
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
set isFirst(value) {
|
|
745
|
+
if (value) {
|
|
746
|
+
const focusableElement = this.chipMenuItems[0];
|
|
747
|
+
this.menuItemComponent.service.menuTabbingService.firstFocusable = focusableElement;
|
|
748
|
+
this.ngZone.runOutsideAngular(() => {
|
|
749
|
+
const firstItemKeydownSub = this.renderer.listen(focusableElement, 'keydown', this.onTab);
|
|
750
|
+
this.subs.add(firstItemKeydownSub);
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
this._isFirst = value;
|
|
754
|
+
}
|
|
755
|
+
get isFirst() {
|
|
756
|
+
return this._isFirst;
|
|
757
|
+
}
|
|
758
|
+
set isLast(value) {
|
|
759
|
+
if (!this.chipMenuItems) {
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
if (value) {
|
|
763
|
+
const lastFocusableElement = this.getLastColumnMenuItem();
|
|
764
|
+
this.menuItemComponent.service.menuTabbingService.lastFocusable = lastFocusableElement;
|
|
765
|
+
this.ngZone.runOutsideAngular(() => {
|
|
766
|
+
const lastItemKeydownSub = this.renderer.listen(lastFocusableElement, 'keydown', this.onTab);
|
|
767
|
+
this.subs.add(lastItemKeydownSub);
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
this._isLast = value;
|
|
771
|
+
}
|
|
772
|
+
get isLast() {
|
|
773
|
+
return this._isLast;
|
|
774
|
+
}
|
|
775
|
+
ngAfterViewInit() {
|
|
776
|
+
this.chipMenuItems = this.hostElement.nativeElement.querySelectorAll('.k-columnmenu-item');
|
|
777
|
+
this.chipMenuItems.forEach(el => this.renderer.setAttribute(el, 'tabindex', '0'));
|
|
778
|
+
}
|
|
779
|
+
ngOnDestroy() {
|
|
780
|
+
this.subs.unsubscribe();
|
|
781
|
+
}
|
|
782
|
+
getLastColumnMenuItem() {
|
|
783
|
+
return (this.chipMenuItems.length === 1 ? this.chipMenuItems[0] : this.chipMenuItems[1]);
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
ChipMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
787
|
+
ChipMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: { menuItemComponent: ["kendoPivotChipMenuItem", "menuItemComponent"] }, ngImport: i0 });
|
|
788
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemDirective, decorators: [{
|
|
789
|
+
type: Directive,
|
|
790
|
+
args: [{ selector: '[kendoPivotChipMenuItem]' }]
|
|
791
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { menuItemComponent: [{
|
|
792
|
+
type: Input,
|
|
793
|
+
args: ['kendoPivotChipMenuItem']
|
|
794
|
+
}] } });
|
|
795
|
+
|
|
796
|
+
/**
|
|
797
|
+
* @hidden
|
|
798
|
+
*/
|
|
799
|
+
class ChipMenuContainerComponent {
|
|
800
|
+
constructor(service, ngZone) {
|
|
801
|
+
this.service = service;
|
|
802
|
+
this.ngZone = ngZone;
|
|
803
|
+
this.hostClass = true;
|
|
804
|
+
}
|
|
805
|
+
ngAfterViewInit() {
|
|
806
|
+
if (!this.chipMenuItems.length) {
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
this.chipMenuItems.first.isFirst = true;
|
|
810
|
+
this.chipMenuItems.last.isLast = true;
|
|
811
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.service.menuTabbingService.firstFocusable.focus());
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
ChipMenuContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuContainerComponent, deps: [{ token: ChipMenuService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
815
|
+
ChipMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container", host: { properties: { "class.k-grid-columnmenu-popup": "this.hostClass" } }, queries: [{ propertyName: "chipMenuItems", predicate: ChipMenuItemDirective, descendants: true }], ngImport: i0, template: `
|
|
816
|
+
<ng-content></ng-content>
|
|
817
|
+
`, isInline: true });
|
|
818
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuContainerComponent, decorators: [{
|
|
819
|
+
type: Component,
|
|
820
|
+
args: [{
|
|
821
|
+
selector: 'kendo-pivot-chipmenu-container',
|
|
822
|
+
template: `
|
|
823
|
+
<ng-content></ng-content>
|
|
824
|
+
`
|
|
825
|
+
}]
|
|
826
|
+
}], ctorParameters: function () { return [{ type: ChipMenuService }, { type: i0.NgZone }]; }, propDecorators: { chipMenuItems: [{
|
|
827
|
+
type: ContentChildren,
|
|
828
|
+
args: [ChipMenuItemDirective, { descendants: true }]
|
|
829
|
+
}], hostClass: [{
|
|
830
|
+
type: HostBinding,
|
|
831
|
+
args: ['class.k-grid-columnmenu-popup']
|
|
832
|
+
}] } });
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* @hidden
|
|
836
|
+
*/
|
|
837
|
+
class ChipMenuItemBase {
|
|
838
|
+
constructor() {
|
|
839
|
+
this.hostClass = true;
|
|
840
|
+
}
|
|
841
|
+
ngOnInit() {
|
|
842
|
+
if (isDevMode() && !this.service) {
|
|
843
|
+
throw new Error('The service input of the host chip menu components (e.g. ChipMenuSortComponent) is mandatory.');
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
close() {
|
|
847
|
+
this.service.close();
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
ChipMenuItemBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemBase, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
851
|
+
ChipMenuItemBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuItemBase, selector: "kendo-pivot-chip-menu-item-base", inputs: { service: "service" }, host: { properties: { "class.k-columnmenu-item-wrapper": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true });
|
|
852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemBase, decorators: [{
|
|
853
|
+
type: Component,
|
|
854
|
+
args: [{
|
|
855
|
+
selector: 'kendo-pivot-chip-menu-item-base',
|
|
856
|
+
template: ``
|
|
857
|
+
}]
|
|
858
|
+
}], propDecorators: { service: [{
|
|
859
|
+
type: Input
|
|
860
|
+
}], hostClass: [{
|
|
861
|
+
type: HostBinding,
|
|
862
|
+
args: ['class.k-columnmenu-item-wrapper']
|
|
863
|
+
}] } });
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* @hidden
|
|
867
|
+
*
|
|
868
|
+
* Represents the content template of the ChipMenuItemComponent.
|
|
869
|
+
* Provides an option for specifying the content of a chip menu item..
|
|
870
|
+
*/
|
|
871
|
+
class ChipMenuItemContentTemplateDirective {
|
|
872
|
+
constructor(templateRef) {
|
|
873
|
+
this.templateRef = templateRef;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
ChipMenuItemContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
877
|
+
ChipMenuItemContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuItemContentTemplateDirective, selector: "[kendoPivotChipMenuItemContentTemplate]", ngImport: i0 });
|
|
878
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemContentTemplateDirective, decorators: [{
|
|
879
|
+
type: Directive,
|
|
880
|
+
args: [{
|
|
881
|
+
selector: '[kendoPivotChipMenuItemContentTemplate]'
|
|
882
|
+
}]
|
|
883
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
884
|
+
type: Optional
|
|
885
|
+
}] }]; } });
|
|
886
|
+
|
|
887
|
+
/**
|
|
888
|
+
* @hidden
|
|
889
|
+
*
|
|
890
|
+
*/
|
|
891
|
+
class ChipMenuItemComponent {
|
|
892
|
+
constructor() {
|
|
893
|
+
/**
|
|
894
|
+
* Fires when the item is clicked.
|
|
895
|
+
*/
|
|
896
|
+
this.itemClick = new EventEmitter();
|
|
897
|
+
/**
|
|
898
|
+
* Fires when the content is expanded.
|
|
899
|
+
*/
|
|
900
|
+
this.expand = new EventEmitter();
|
|
901
|
+
/**
|
|
902
|
+
* Fires when the content is collapsed.
|
|
903
|
+
*/
|
|
904
|
+
this.collapse = new EventEmitter();
|
|
905
|
+
this.contentState = 'collapsed';
|
|
906
|
+
}
|
|
907
|
+
get iconClass() {
|
|
908
|
+
return `k-i-${this.icon}`;
|
|
909
|
+
}
|
|
910
|
+
ngOnChanges(changes) {
|
|
911
|
+
if (changes.expanded) {
|
|
912
|
+
this.updateContentState();
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
onClick(e) {
|
|
916
|
+
this.itemClick.emit(e);
|
|
917
|
+
if (this.contentTemplate) {
|
|
918
|
+
this.expanded = !this.expanded;
|
|
919
|
+
this.updateContentState();
|
|
920
|
+
if (this.expanded) {
|
|
921
|
+
this.expand.emit();
|
|
922
|
+
}
|
|
923
|
+
else {
|
|
924
|
+
this.collapse.emit();
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
updateContentState() {
|
|
929
|
+
this.contentState = this.expanded ? 'expanded' : 'collapsed';
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
ChipMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
933
|
+
ChipMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: { icon: "icon", text: "text", selected: "selected", expanded: "expanded" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ChipMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
934
|
+
<div
|
|
935
|
+
class="k-columnmenu-item"
|
|
936
|
+
(click)="onClick($event)"
|
|
937
|
+
(keydown.enter)="onClick($event)"
|
|
938
|
+
[class.k-selected]="selected"
|
|
939
|
+
role="button"
|
|
940
|
+
[attr.aria-expanded]="expanded">
|
|
941
|
+
<span *ngIf="icon" class="k-icon" [ngClass]="iconClass">
|
|
942
|
+
</span>
|
|
943
|
+
{{ text }}
|
|
944
|
+
</div>
|
|
945
|
+
<div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">
|
|
946
|
+
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
947
|
+
</ng-container>
|
|
948
|
+
<div>
|
|
949
|
+
`, isInline: true, directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
|
|
950
|
+
trigger('state', [
|
|
951
|
+
state('collapsed', style({ display: 'none' })),
|
|
952
|
+
state('expanded', style({ display: 'block' })),
|
|
953
|
+
transition('collapsed => expanded', [
|
|
954
|
+
style({
|
|
955
|
+
height: '0px',
|
|
956
|
+
display: 'block'
|
|
957
|
+
}),
|
|
958
|
+
animate('100ms ease-in', style({
|
|
959
|
+
height: '*'
|
|
960
|
+
}))
|
|
961
|
+
]),
|
|
962
|
+
transition('expanded => collapsed', [
|
|
963
|
+
style({
|
|
964
|
+
height: '*'
|
|
965
|
+
}),
|
|
966
|
+
animate('100ms ease-in', style({
|
|
967
|
+
height: '0px'
|
|
968
|
+
}))
|
|
969
|
+
])
|
|
970
|
+
])
|
|
971
|
+
] });
|
|
972
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuItemComponent, decorators: [{
|
|
973
|
+
type: Component,
|
|
974
|
+
args: [{
|
|
975
|
+
animations: [
|
|
976
|
+
trigger('state', [
|
|
977
|
+
state('collapsed', style({ display: 'none' })),
|
|
978
|
+
state('expanded', style({ display: 'block' })),
|
|
979
|
+
transition('collapsed => expanded', [
|
|
980
|
+
style({
|
|
981
|
+
height: '0px',
|
|
982
|
+
display: 'block'
|
|
983
|
+
}),
|
|
984
|
+
animate('100ms ease-in', style({
|
|
985
|
+
height: '*'
|
|
986
|
+
}))
|
|
987
|
+
]),
|
|
988
|
+
transition('expanded => collapsed', [
|
|
989
|
+
style({
|
|
990
|
+
height: '*'
|
|
991
|
+
}),
|
|
992
|
+
animate('100ms ease-in', style({
|
|
993
|
+
height: '0px'
|
|
994
|
+
}))
|
|
995
|
+
])
|
|
996
|
+
])
|
|
997
|
+
],
|
|
998
|
+
selector: 'kendo-pivot-chipmenu-item',
|
|
999
|
+
template: `
|
|
1000
|
+
<div
|
|
1001
|
+
class="k-columnmenu-item"
|
|
1002
|
+
(click)="onClick($event)"
|
|
1003
|
+
(keydown.enter)="onClick($event)"
|
|
1004
|
+
[class.k-selected]="selected"
|
|
1005
|
+
role="button"
|
|
1006
|
+
[attr.aria-expanded]="expanded">
|
|
1007
|
+
<span *ngIf="icon" class="k-icon" [ngClass]="iconClass">
|
|
1008
|
+
</span>
|
|
1009
|
+
{{ text }}
|
|
1010
|
+
</div>
|
|
1011
|
+
<div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">
|
|
1012
|
+
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
1013
|
+
</ng-container>
|
|
1014
|
+
<div>
|
|
1015
|
+
`
|
|
1016
|
+
}]
|
|
1017
|
+
}], propDecorators: { itemClick: [{
|
|
1018
|
+
type: Output
|
|
1019
|
+
}], expand: [{
|
|
1020
|
+
type: Output
|
|
1021
|
+
}], collapse: [{
|
|
1022
|
+
type: Output
|
|
1023
|
+
}], icon: [{
|
|
1024
|
+
type: Input
|
|
1025
|
+
}], text: [{
|
|
1026
|
+
type: Input
|
|
1027
|
+
}], selected: [{
|
|
1028
|
+
type: Input
|
|
1029
|
+
}], expanded: [{
|
|
1030
|
+
type: Input
|
|
1031
|
+
}], contentTemplate: [{
|
|
1032
|
+
type: ContentChild,
|
|
1033
|
+
args: [ChipMenuItemContentTemplateDirective, { static: false }]
|
|
1034
|
+
}] } });
|
|
1035
|
+
|
|
1036
|
+
/**
|
|
1037
|
+
* @hidden
|
|
1038
|
+
*
|
|
1039
|
+
* Represents a chip-menu item for sorting PivotGrid fields.
|
|
1040
|
+
* Allows the user to sort the PivotGrid.
|
|
1041
|
+
*/
|
|
1042
|
+
class ChipMenuSortComponent extends ChipMenuItemBase {
|
|
1043
|
+
constructor(localization, renderer, configuratorService) {
|
|
1044
|
+
super();
|
|
1045
|
+
this.localization = localization;
|
|
1046
|
+
this.renderer = renderer;
|
|
1047
|
+
this.configuratorService = configuratorService;
|
|
1048
|
+
}
|
|
1049
|
+
get sortedAsc() {
|
|
1050
|
+
const descriptor = this.descriptor;
|
|
1051
|
+
return descriptor && (!descriptor.dir || descriptor.dir === 'asc');
|
|
1052
|
+
}
|
|
1053
|
+
get sortedDesc() {
|
|
1054
|
+
const descriptor = this.descriptor;
|
|
1055
|
+
return descriptor && descriptor.dir === 'desc';
|
|
1056
|
+
}
|
|
1057
|
+
/**
|
|
1058
|
+
* Returns the localized message for a given token
|
|
1059
|
+
*/
|
|
1060
|
+
messageFor(localizationToken) {
|
|
1061
|
+
return this.localization.get(localizationToken);
|
|
1062
|
+
}
|
|
1063
|
+
toggleSort(dir) {
|
|
1064
|
+
const field = this.chip.name.toString();
|
|
1065
|
+
const descriptor = this.descriptor;
|
|
1066
|
+
const sort = this.configuratorService.state.sort.filter(s => s.field !== field);
|
|
1067
|
+
if (!descriptor || descriptor.dir !== dir) {
|
|
1068
|
+
sort.push({ field, dir });
|
|
1069
|
+
}
|
|
1070
|
+
this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setSort, payload: sort });
|
|
1071
|
+
this.close();
|
|
1072
|
+
}
|
|
1073
|
+
get descriptor() {
|
|
1074
|
+
return [].concat(this.configuratorService.state.sort || []).find(s => s.field === this.chip.name.toString());
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
ChipMenuSortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuSortComponent, deps: [{ token: PivotLocalizationService }, { token: i0.Renderer2 }, { token: ConfiguratorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1078
|
+
ChipMenuSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: { chip: "chip" }, usesInheritance: true, ngImport: i0, template: `
|
|
1079
|
+
<kendo-pivot-chipmenu-item
|
|
1080
|
+
[text]="messageFor('fieldMenuSortAscendingItemLabel')"
|
|
1081
|
+
icon="sort-asc-small"
|
|
1082
|
+
(itemClick)="toggleSort('asc')"
|
|
1083
|
+
[selected]="sortedAsc">
|
|
1084
|
+
</kendo-pivot-chipmenu-item>
|
|
1085
|
+
<kendo-pivot-chipmenu-item
|
|
1086
|
+
[text]="messageFor('fieldMenuSortDescendingItemLabel')"
|
|
1087
|
+
icon="sort-desc-small"
|
|
1088
|
+
(itemClick)="toggleSort('desc')"
|
|
1089
|
+
[selected]="sortedDesc">
|
|
1090
|
+
</kendo-pivot-chipmenu-item>
|
|
1091
|
+
`, isInline: true, components: [{ type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "text", "selected", "expanded"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
1092
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuSortComponent, decorators: [{
|
|
1093
|
+
type: Component,
|
|
1094
|
+
args: [{
|
|
1095
|
+
selector: 'kendo-pivot-chipmenu-sort',
|
|
1096
|
+
template: `
|
|
1097
|
+
<kendo-pivot-chipmenu-item
|
|
1098
|
+
[text]="messageFor('fieldMenuSortAscendingItemLabel')"
|
|
1099
|
+
icon="sort-asc-small"
|
|
1100
|
+
(itemClick)="toggleSort('asc')"
|
|
1101
|
+
[selected]="sortedAsc">
|
|
1102
|
+
</kendo-pivot-chipmenu-item>
|
|
1103
|
+
<kendo-pivot-chipmenu-item
|
|
1104
|
+
[text]="messageFor('fieldMenuSortDescendingItemLabel')"
|
|
1105
|
+
icon="sort-desc-small"
|
|
1106
|
+
(itemClick)="toggleSort('desc')"
|
|
1107
|
+
[selected]="sortedDesc">
|
|
1108
|
+
</kendo-pivot-chipmenu-item>
|
|
1109
|
+
`
|
|
1110
|
+
}]
|
|
1111
|
+
}], ctorParameters: function () { return [{ type: PivotLocalizationService }, { type: i0.Renderer2 }, { type: ConfiguratorService }]; }, propDecorators: { chip: [{
|
|
1112
|
+
type: Input
|
|
1113
|
+
}] } });
|
|
1114
|
+
|
|
1115
|
+
/**
|
|
1116
|
+
* @hidden
|
|
1117
|
+
*/
|
|
1118
|
+
class FilterMenuDropDownListDirective {
|
|
1119
|
+
constructor(host) {
|
|
1120
|
+
this.host = host;
|
|
1121
|
+
this.keydownHandler = (e) => {
|
|
1122
|
+
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
1123
|
+
e.stopPropagation();
|
|
1124
|
+
this.host.toggle(false);
|
|
1125
|
+
}
|
|
1126
|
+
};
|
|
1127
|
+
}
|
|
1128
|
+
ngAfterViewInit() {
|
|
1129
|
+
const wrapperElement = this.host.wrapper.nativeElement;
|
|
1130
|
+
wrapperElement.setAttribute('aria-label', this.filterMenuDropDownLabel);
|
|
1131
|
+
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
1132
|
+
}
|
|
1133
|
+
ngOnDestroy() {
|
|
1134
|
+
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
FilterMenuDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterMenuDropDownListDirective, deps: [{ token: i1$2.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1138
|
+
FilterMenuDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: { filterMenuDropDownLabel: "filterMenuDropDownLabel" }, ngImport: i0 });
|
|
1139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterMenuDropDownListDirective, decorators: [{
|
|
1140
|
+
type: Directive,
|
|
1141
|
+
args: [{ selector: '[kendoFilterMenuDropDown]' }]
|
|
1142
|
+
}], ctorParameters: function () { return [{ type: i1$2.DropDownListComponent }]; }, propDecorators: { filterMenuDropDownLabel: [{
|
|
1143
|
+
type: Input
|
|
1144
|
+
}] } });
|
|
1145
|
+
|
|
1146
|
+
/**
|
|
1147
|
+
* @hidden
|
|
1148
|
+
*/
|
|
1149
|
+
const localizeOperators = operators => localization => Object.keys(operators).map(key => ({
|
|
1150
|
+
text: localization.get(key),
|
|
1151
|
+
value: operators[key]
|
|
1152
|
+
}));
|
|
1153
|
+
const stringOperators = localizeOperators({
|
|
1154
|
+
"filterEqOperator": "eq",
|
|
1155
|
+
"filterNotEqOperator": "neq",
|
|
1156
|
+
"filterContainsOperator": "contains",
|
|
1157
|
+
"filterNotContainsOperator": "doesnotcontain",
|
|
1158
|
+
"filterStartsWithOperator": "startswith",
|
|
1159
|
+
"filterEndsWithOperator": "endswith",
|
|
1160
|
+
"filterIsNullOperator": "isnull",
|
|
1161
|
+
"filterIsNotNullOperator": "isnotnull",
|
|
1162
|
+
"filterIsEmptyOperator": "isempty",
|
|
1163
|
+
"filterIsNotEmptyOperator": "isnotempty"
|
|
1164
|
+
});
|
|
1165
|
+
/**
|
|
1166
|
+
* @hidden
|
|
1167
|
+
*
|
|
1168
|
+
* Represents a string-filter menu component.
|
|
1169
|
+
*/
|
|
1170
|
+
class StringFilterMenuComponent {
|
|
1171
|
+
constructor(localization, configuratorService, fb) {
|
|
1172
|
+
this.localization = localization;
|
|
1173
|
+
this.configuratorService = configuratorService;
|
|
1174
|
+
this.fb = fb;
|
|
1175
|
+
this.subscription = new Subscription();
|
|
1176
|
+
this.onTouched = () => { };
|
|
1177
|
+
}
|
|
1178
|
+
get currentFilter() {
|
|
1179
|
+
var _a;
|
|
1180
|
+
const filterValue = (_a = this.configuratorService.state.filter) === null || _a === void 0 ? void 0 : _a.filter(x => x.field === this.chip.name.toString());
|
|
1181
|
+
return filterValue && filterValue[0];
|
|
1182
|
+
}
|
|
1183
|
+
registerOnChange(fn) {
|
|
1184
|
+
this.filterFormGroup.valueChanges.subscribe(fn);
|
|
1185
|
+
}
|
|
1186
|
+
registerOnTouched(fn) {
|
|
1187
|
+
this.onTouched = fn;
|
|
1188
|
+
}
|
|
1189
|
+
writeValue(val) {
|
|
1190
|
+
if (val) {
|
|
1191
|
+
this.filterFormGroup.setValue(val, { emitEvent: false });
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
get filterMenuDropDownLabel() {
|
|
1195
|
+
const localizationMsg = this.localization.get('filterOperatorsDropDownLabel') || '';
|
|
1196
|
+
const chipName = this.chip.name.toString();
|
|
1197
|
+
return replaceMessagePlaceholder(localizationMsg, 'fields', chipName);
|
|
1198
|
+
}
|
|
1199
|
+
ngOnInit() {
|
|
1200
|
+
this.filterFormGroup = this.fb.group({
|
|
1201
|
+
operator: [this.currentFilter ? this.currentFilter.operator : ''],
|
|
1202
|
+
value: [this.currentFilter ? this.currentFilter.value : '']
|
|
1203
|
+
});
|
|
1204
|
+
this.operators = stringOperators(this.localization);
|
|
1205
|
+
}
|
|
1206
|
+
ngOnDestroy() {
|
|
1207
|
+
this.subscription.unsubscribe();
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
StringFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: StringFilterMenuComponent, deps: [{ token: PivotLocalizationService }, { token: ConfiguratorService }, { token: i3$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
1211
|
+
StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: StringFilterMenuComponent, selector: "kendo-pivot-string-filter-menu", inputs: { chip: "chip", menuTabbingService: "menuTabbingService" }, providers: [{
|
|
1212
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1213
|
+
useExisting: forwardRef(() => StringFilterMenuComponent),
|
|
1214
|
+
multi: true
|
|
1215
|
+
}], ngImport: i0, template: `
|
|
1216
|
+
<ng-container [formGroup]="filterFormGroup">
|
|
1217
|
+
<kendo-dropdownlist
|
|
1218
|
+
kendoFilterMenuDropDown
|
|
1219
|
+
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
1220
|
+
[data]="operators"
|
|
1221
|
+
formControlName="operator"
|
|
1222
|
+
[valuePrimitive]="true"
|
|
1223
|
+
textField="text"
|
|
1224
|
+
valueField="value">
|
|
1225
|
+
</kendo-dropdownlist>
|
|
1226
|
+
<input
|
|
1227
|
+
kendoTextBox
|
|
1228
|
+
formControlName="value"
|
|
1229
|
+
/>
|
|
1230
|
+
</ng-container>
|
|
1231
|
+
`, isInline: true, components: [{ type: i1$2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
|
|
1232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
|
|
1233
|
+
type: Component,
|
|
1234
|
+
args: [{
|
|
1235
|
+
selector: 'kendo-pivot-string-filter-menu',
|
|
1236
|
+
providers: [{
|
|
1237
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1238
|
+
useExisting: forwardRef(() => StringFilterMenuComponent),
|
|
1239
|
+
multi: true
|
|
1240
|
+
}],
|
|
1241
|
+
template: `
|
|
1242
|
+
<ng-container [formGroup]="filterFormGroup">
|
|
1243
|
+
<kendo-dropdownlist
|
|
1244
|
+
kendoFilterMenuDropDown
|
|
1245
|
+
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
|
1246
|
+
[data]="operators"
|
|
1247
|
+
formControlName="operator"
|
|
1248
|
+
[valuePrimitive]="true"
|
|
1249
|
+
textField="text"
|
|
1250
|
+
valueField="value">
|
|
1251
|
+
</kendo-dropdownlist>
|
|
1252
|
+
<input
|
|
1253
|
+
kendoTextBox
|
|
1254
|
+
formControlName="value"
|
|
1255
|
+
/>
|
|
1256
|
+
</ng-container>
|
|
1257
|
+
`
|
|
1258
|
+
}]
|
|
1259
|
+
}], ctorParameters: function () { return [{ type: PivotLocalizationService }, { type: ConfiguratorService }, { type: i3$1.FormBuilder }]; }, propDecorators: { chip: [{
|
|
1260
|
+
type: Input
|
|
1261
|
+
}], menuTabbingService: [{
|
|
1262
|
+
type: Input
|
|
1263
|
+
}] } });
|
|
1264
|
+
|
|
1265
|
+
const isNoValueOperator = operator => (operator === "isnull"
|
|
1266
|
+
|| operator === "isnotnull"
|
|
1267
|
+
|| operator === "isempty"
|
|
1268
|
+
|| operator === "isnotempty");
|
|
1269
|
+
const validFilter = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
|
|
1270
|
+
/**
|
|
1271
|
+
* @hidden
|
|
1272
|
+
*/
|
|
1273
|
+
class FilterMenuContainerComponent {
|
|
1274
|
+
constructor(localization, cd, menuTabbingService, configuratorService) {
|
|
1275
|
+
this.localization = localization;
|
|
1276
|
+
this.cd = cd;
|
|
1277
|
+
this.configuratorService = configuratorService;
|
|
1278
|
+
this.close = new EventEmitter();
|
|
1279
|
+
this.actionsClass = 'k-action-buttons k-button-group';
|
|
1280
|
+
this.menuTabbingService = menuTabbingService;
|
|
1281
|
+
}
|
|
1282
|
+
ngOnInit() {
|
|
1283
|
+
}
|
|
1284
|
+
ngAfterViewChecked() {
|
|
1285
|
+
if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {
|
|
1286
|
+
this.menuTabbingService.lastFocusable = this.disabled ?
|
|
1287
|
+
this.resetButton.nativeElement : this.filterButton.nativeElement;
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
ngOnDestroy() {
|
|
1291
|
+
this.menuTabbingService.lastFocusable = null;
|
|
1292
|
+
}
|
|
1293
|
+
get disabled() {
|
|
1294
|
+
return !(this.filterDescriptorValue && validFilter(this.filterDescriptorValue));
|
|
1295
|
+
}
|
|
1296
|
+
submit() {
|
|
1297
|
+
const filterDescriptor = Object.assign({ field: this.chip.name.toString() }, this.filterDescriptorValue);
|
|
1298
|
+
const payload = !this.configuratorService.state.filter ?
|
|
1299
|
+
[filterDescriptor] :
|
|
1300
|
+
[
|
|
1301
|
+
...this.configuratorService.state.filter.filter(descriptor => descriptor.field !== filterDescriptor.field),
|
|
1302
|
+
filterDescriptor
|
|
1303
|
+
];
|
|
1304
|
+
this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setFilter, payload: payload });
|
|
1305
|
+
this.close.emit();
|
|
1306
|
+
return false;
|
|
1307
|
+
}
|
|
1308
|
+
reset() {
|
|
1309
|
+
const filters = this.configuratorService.state.filter.filter(descriptor => descriptor.field !== this.chip.name.toString());
|
|
1310
|
+
this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setFilter, payload: filters });
|
|
1311
|
+
this.close.emit();
|
|
1312
|
+
}
|
|
1313
|
+
onTab(e, buttonType) {
|
|
1314
|
+
if (this.menuTabbingService.firstFocusable && (!this.menuTabbingService.isColumnMenu || this.isLast)) {
|
|
1315
|
+
e.preventDefault();
|
|
1316
|
+
if (buttonType === 'reset') {
|
|
1317
|
+
// eslint-disable-next-line no-unused-expressions
|
|
1318
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.filterButton.nativeElement.focus();
|
|
1319
|
+
}
|
|
1320
|
+
else {
|
|
1321
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
/**
|
|
1326
|
+
* Returns the localized message for a given token
|
|
1327
|
+
*/
|
|
1328
|
+
messageFor(localizationToken) {
|
|
1329
|
+
return this.localization.get(localizationToken);
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
FilterMenuContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: PivotLocalizationService }, { token: i0.ChangeDetectorRef }, { token: MenuTabbingService }, { token: ConfiguratorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1333
|
+
FilterMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FilterMenuContainerComponent, selector: "kendo-pivot-filter-menu-container", inputs: { chip: "chip", isLast: "isLast", isExpanded: "isExpanded", menuTabbingService: "menuTabbingService", actionsClass: "actionsClass" }, outputs: { close: "close" }, providers: [
|
|
1334
|
+
MenuTabbingService
|
|
1335
|
+
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "filterButton", first: true, predicate: ["filterButton"], descendants: true }], ngImport: i0, template: `
|
|
1336
|
+
<form (submit)="submit()" (reset)="reset()"
|
|
1337
|
+
class="k-filter-menu k-group k-reset k-state-border-up">
|
|
1338
|
+
<div class="k-filter-menu-container">
|
|
1339
|
+
<kendo-pivot-string-filter-menu
|
|
1340
|
+
[(ngModel)]="filterDescriptorValue"
|
|
1341
|
+
name="'filterDescriptorValue'"
|
|
1342
|
+
[chip]="chip"
|
|
1343
|
+
[menuTabbingService]="menuTabbingService">
|
|
1344
|
+
</kendo-pivot-string-filter-menu>
|
|
1345
|
+
<div [ngClass]="actionsClass">
|
|
1346
|
+
<button
|
|
1347
|
+
#resetButton
|
|
1348
|
+
type="reset"
|
|
1349
|
+
kendoButton
|
|
1350
|
+
(keydown.tab)="onTab($event, 'reset')">{{messageFor('filterClearButton')}}</button>
|
|
1351
|
+
<button #filterButton
|
|
1352
|
+
type="submit"
|
|
1353
|
+
[disabled]="disabled"
|
|
1354
|
+
kendoButton
|
|
1355
|
+
themeColor="primary"
|
|
1356
|
+
(keydown.tab)="onTab($event, 'filter')">{{messageFor('filterFilterButton')}}</button>
|
|
1357
|
+
</div>
|
|
1358
|
+
</div>
|
|
1359
|
+
</form>
|
|
1360
|
+
`, isInline: true, styles: ["\n kendo-pivot-string-filter-menu {\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n gap: 8px;\n }\n "], components: [{ type: StringFilterMenuComponent, selector: "kendo-pivot-string-filter-menu", inputs: ["chip", "menuTabbingService"] }], directives: [{ type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
1361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
|
|
1362
|
+
type: Component,
|
|
1363
|
+
args: [{
|
|
1364
|
+
providers: [
|
|
1365
|
+
MenuTabbingService
|
|
1366
|
+
],
|
|
1367
|
+
selector: 'kendo-pivot-filter-menu-container',
|
|
1368
|
+
template: `
|
|
1369
|
+
<form (submit)="submit()" (reset)="reset()"
|
|
1370
|
+
class="k-filter-menu k-group k-reset k-state-border-up">
|
|
1371
|
+
<div class="k-filter-menu-container">
|
|
1372
|
+
<kendo-pivot-string-filter-menu
|
|
1373
|
+
[(ngModel)]="filterDescriptorValue"
|
|
1374
|
+
name="'filterDescriptorValue'"
|
|
1375
|
+
[chip]="chip"
|
|
1376
|
+
[menuTabbingService]="menuTabbingService">
|
|
1377
|
+
</kendo-pivot-string-filter-menu>
|
|
1378
|
+
<div [ngClass]="actionsClass">
|
|
1379
|
+
<button
|
|
1380
|
+
#resetButton
|
|
1381
|
+
type="reset"
|
|
1382
|
+
kendoButton
|
|
1383
|
+
(keydown.tab)="onTab($event, 'reset')">{{messageFor('filterClearButton')}}</button>
|
|
1384
|
+
<button #filterButton
|
|
1385
|
+
type="submit"
|
|
1386
|
+
[disabled]="disabled"
|
|
1387
|
+
kendoButton
|
|
1388
|
+
themeColor="primary"
|
|
1389
|
+
(keydown.tab)="onTab($event, 'filter')">{{messageFor('filterFilterButton')}}</button>
|
|
1390
|
+
</div>
|
|
1391
|
+
</div>
|
|
1392
|
+
</form>
|
|
1393
|
+
`,
|
|
1394
|
+
styles: [`
|
|
1395
|
+
kendo-pivot-string-filter-menu {
|
|
1396
|
+
display: flex;
|
|
1397
|
+
flex-flow: column nowrap;
|
|
1398
|
+
align-items: stretch;
|
|
1399
|
+
gap: 8px;
|
|
1400
|
+
}
|
|
1401
|
+
`]
|
|
1402
|
+
}]
|
|
1403
|
+
}], ctorParameters: function () { return [{ type: PivotLocalizationService }, { type: i0.ChangeDetectorRef }, { type: MenuTabbingService }, { type: ConfiguratorService }]; }, propDecorators: { close: [{
|
|
1404
|
+
type: Output
|
|
1405
|
+
}], chip: [{
|
|
1406
|
+
type: Input
|
|
1407
|
+
}], isLast: [{
|
|
1408
|
+
type: Input
|
|
1409
|
+
}], isExpanded: [{
|
|
1410
|
+
type: Input
|
|
1411
|
+
}], menuTabbingService: [{
|
|
1412
|
+
type: Input
|
|
1413
|
+
}], actionsClass: [{
|
|
1414
|
+
type: Input
|
|
1415
|
+
}], resetButton: [{
|
|
1416
|
+
type: ViewChild,
|
|
1417
|
+
args: ['resetButton']
|
|
1418
|
+
}], filterButton: [{
|
|
1419
|
+
type: ViewChild,
|
|
1420
|
+
args: ['filterButton']
|
|
1421
|
+
}] } });
|
|
1422
|
+
|
|
1423
|
+
/**
|
|
1424
|
+
* @hidden
|
|
1425
|
+
* Represents the component for setting field filters in the PivotGrid.
|
|
1426
|
+
*/
|
|
1427
|
+
class ChipMenuFilterComponent extends ChipMenuItemBase {
|
|
1428
|
+
constructor(localization, hostElement) {
|
|
1429
|
+
super();
|
|
1430
|
+
this.localization = localization;
|
|
1431
|
+
this.hostElement = hostElement;
|
|
1432
|
+
/**
|
|
1433
|
+
* Fires when the content is expanded.
|
|
1434
|
+
*/
|
|
1435
|
+
this.expand = new EventEmitter();
|
|
1436
|
+
/**
|
|
1437
|
+
* Fires when the content is collapsed.
|
|
1438
|
+
*/
|
|
1439
|
+
this.collapse = new EventEmitter();
|
|
1440
|
+
/**
|
|
1441
|
+
* Specifies if the content is expanded.
|
|
1442
|
+
*/
|
|
1443
|
+
this.expanded = false;
|
|
1444
|
+
this.isLast = false;
|
|
1445
|
+
this.actionsClass = 'k-columnmenu-actions';
|
|
1446
|
+
}
|
|
1447
|
+
onCollapse() {
|
|
1448
|
+
this.expanded = false;
|
|
1449
|
+
if (this.isLast) {
|
|
1450
|
+
this.service.menuTabbingService.lastFocusable = this.hostElement.nativeElement.querySelector('.k-columnmenu-item');
|
|
1451
|
+
}
|
|
1452
|
+
this.collapse.emit();
|
|
1453
|
+
}
|
|
1454
|
+
onExpand() {
|
|
1455
|
+
this.expanded = true;
|
|
1456
|
+
this.expand.emit();
|
|
1457
|
+
}
|
|
1458
|
+
/**
|
|
1459
|
+
* Returns the localized message for a given token
|
|
1460
|
+
*/
|
|
1461
|
+
messageFor(localizationToken) {
|
|
1462
|
+
return this.localization.get(localizationToken);
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
ChipMenuFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuFilterComponent, deps: [{ token: PivotLocalizationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1466
|
+
ChipMenuFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: { chip: "chip", expanded: "expanded", isLast: "isLast" }, outputs: { expand: "expand", collapse: "collapse" }, usesInheritance: true, ngImport: i0, template: `
|
|
1467
|
+
<kendo-pivot-chipmenu-item
|
|
1468
|
+
classs="k-widget k-expander"
|
|
1469
|
+
[text]="messageFor('fieldMenuFilterItemLabel')"
|
|
1470
|
+
icon="filter"
|
|
1471
|
+
[expanded]="expanded"
|
|
1472
|
+
(collapse)="onCollapse()"
|
|
1473
|
+
(expand)="onExpand()">
|
|
1474
|
+
<ng-template kendoPivotChipMenuItemContentTemplate>
|
|
1475
|
+
<kendo-pivot-filter-menu-container
|
|
1476
|
+
[chip]="chip"
|
|
1477
|
+
[menuTabbingService]="service.menuTabbingService"
|
|
1478
|
+
[actionsClass]="actionsClass"
|
|
1479
|
+
[isLast]="isLast"
|
|
1480
|
+
[isExpanded]="expanded"
|
|
1481
|
+
(keydown.shift.tab)="$event.stopImmediatePropagation()"
|
|
1482
|
+
(close)="close()">
|
|
1483
|
+
</kendo-pivot-filter-menu-container>
|
|
1484
|
+
</ng-template>
|
|
1485
|
+
</kendo-pivot-chipmenu-item>
|
|
1486
|
+
`, isInline: true, components: [{ type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "text", "selected", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: FilterMenuContainerComponent, selector: "kendo-pivot-filter-menu-container", inputs: ["chip", "isLast", "isExpanded", "menuTabbingService", "actionsClass"], outputs: ["close"] }], directives: [{ type: ChipMenuItemContentTemplateDirective, selector: "[kendoPivotChipMenuItemContentTemplate]" }] });
|
|
1487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuFilterComponent, decorators: [{
|
|
1488
|
+
type: Component,
|
|
1489
|
+
args: [{
|
|
1490
|
+
selector: 'kendo-pivot-chipmenu-filter',
|
|
1491
|
+
template: `
|
|
1492
|
+
<kendo-pivot-chipmenu-item
|
|
1493
|
+
classs="k-widget k-expander"
|
|
1494
|
+
[text]="messageFor('fieldMenuFilterItemLabel')"
|
|
1495
|
+
icon="filter"
|
|
1496
|
+
[expanded]="expanded"
|
|
1497
|
+
(collapse)="onCollapse()"
|
|
1498
|
+
(expand)="onExpand()">
|
|
1499
|
+
<ng-template kendoPivotChipMenuItemContentTemplate>
|
|
1500
|
+
<kendo-pivot-filter-menu-container
|
|
1501
|
+
[chip]="chip"
|
|
1502
|
+
[menuTabbingService]="service.menuTabbingService"
|
|
1503
|
+
[actionsClass]="actionsClass"
|
|
1504
|
+
[isLast]="isLast"
|
|
1505
|
+
[isExpanded]="expanded"
|
|
1506
|
+
(keydown.shift.tab)="$event.stopImmediatePropagation()"
|
|
1507
|
+
(close)="close()">
|
|
1508
|
+
</kendo-pivot-filter-menu-container>
|
|
1509
|
+
</ng-template>
|
|
1510
|
+
</kendo-pivot-chipmenu-item>
|
|
1511
|
+
`
|
|
1512
|
+
}]
|
|
1513
|
+
}], ctorParameters: function () { return [{ type: PivotLocalizationService }, { type: i0.ElementRef }]; }, propDecorators: { expand: [{
|
|
1514
|
+
type: Output
|
|
1515
|
+
}], collapse: [{
|
|
1516
|
+
type: Output
|
|
1517
|
+
}], chip: [{
|
|
1518
|
+
type: Input
|
|
1519
|
+
}], expanded: [{
|
|
1520
|
+
type: Input
|
|
1521
|
+
}], isLast: [{
|
|
1522
|
+
type: Input
|
|
1523
|
+
}] } });
|
|
1524
|
+
|
|
1525
|
+
const POPUP_CLASS = 'k-column-menu';
|
|
1526
|
+
/**
|
|
1527
|
+
* @hidden
|
|
1528
|
+
*
|
|
1529
|
+
* Represents the field chip menu component.
|
|
1530
|
+
*/
|
|
1531
|
+
class ChipMenuComponent {
|
|
1532
|
+
constructor(popupService, localization, service) {
|
|
1533
|
+
this.popupService = popupService;
|
|
1534
|
+
this.localization = localization;
|
|
1535
|
+
this.service = service;
|
|
1536
|
+
this.tabIndex = '-1';
|
|
1537
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
1538
|
+
}
|
|
1539
|
+
ngOnDestroy() {
|
|
1540
|
+
this.close();
|
|
1541
|
+
this.closeSubscription.unsubscribe();
|
|
1542
|
+
}
|
|
1543
|
+
toggle(e, anchor, template) {
|
|
1544
|
+
if (e) {
|
|
1545
|
+
e.preventDefault();
|
|
1546
|
+
e.stopImmediatePropagation();
|
|
1547
|
+
}
|
|
1548
|
+
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
1549
|
+
if (!this.popupRef) {
|
|
1550
|
+
this.anchor.nativeElement.focus();
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
close() {
|
|
1554
|
+
this.popupService.destroy();
|
|
1555
|
+
this.popupRef = null;
|
|
1556
|
+
this.anchor.nativeElement.focus();
|
|
1557
|
+
}
|
|
1558
|
+
get chipMenuTitle() {
|
|
1559
|
+
const localizationMsg = this.localization.get('chipMenuIconTitle') || '';
|
|
1560
|
+
const chipName = this.chip.name.toString();
|
|
1561
|
+
return replaceMessagePlaceholder(localizationMsg, 'fieldName', chipName);
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
ChipMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuComponent, deps: [{ token: SinglePopupService }, { token: PivotLocalizationService }, { token: ChipMenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1565
|
+
ChipMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: { chip: "chip", tabIndex: "tabIndex" }, providers: [
|
|
1566
|
+
ChipMenuService,
|
|
1567
|
+
MenuTabbingService
|
|
1568
|
+
], viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }], ngImport: i0, template: `
|
|
1569
|
+
<span #anchor
|
|
1570
|
+
class="k-icon k-i-more-vertical"
|
|
1571
|
+
(click)="toggle($event, anchor, template)"
|
|
1572
|
+
[tabindex]="tabIndex"
|
|
1573
|
+
[attr.title]="chipMenuTitle">
|
|
1574
|
+
</span>
|
|
1575
|
+
<ng-template #template>
|
|
1576
|
+
<kendo-pivot-chipmenu-container
|
|
1577
|
+
(keydown.escape)="close()"
|
|
1578
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
1579
|
+
<kendo-pivot-chipmenu-sort
|
|
1580
|
+
#sortItem
|
|
1581
|
+
[chip]="chip"
|
|
1582
|
+
[kendoPivotChipMenuItem]="sortItem"
|
|
1583
|
+
[service]="service">
|
|
1584
|
+
</kendo-pivot-chipmenu-sort>
|
|
1585
|
+
|
|
1586
|
+
<kendo-pivot-chipmenu-filter
|
|
1587
|
+
#filterItem
|
|
1588
|
+
[chip]="chip"
|
|
1589
|
+
[kendoPivotChipMenuItem]="filterItem"
|
|
1590
|
+
[service]="service">
|
|
1591
|
+
</kendo-pivot-chipmenu-filter>
|
|
1592
|
+
</kendo-pivot-chipmenu-container>
|
|
1593
|
+
</ng-template>
|
|
1594
|
+
`, isInline: true, components: [{ type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container" }, { type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: ["chip"] }, { type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: ["chip", "expanded", "isLast"], outputs: ["expand", "collapse"] }], directives: [{ type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: ["kendoPivotChipMenuItem"] }] });
|
|
1595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuComponent, decorators: [{
|
|
1596
|
+
type: Component,
|
|
1597
|
+
args: [{
|
|
1598
|
+
providers: [
|
|
1599
|
+
ChipMenuService,
|
|
1600
|
+
MenuTabbingService
|
|
1601
|
+
],
|
|
1602
|
+
selector: 'kendo-pivot-chip-menu',
|
|
1603
|
+
template: `
|
|
1604
|
+
<span #anchor
|
|
1605
|
+
class="k-icon k-i-more-vertical"
|
|
1606
|
+
(click)="toggle($event, anchor, template)"
|
|
1607
|
+
[tabindex]="tabIndex"
|
|
1608
|
+
[attr.title]="chipMenuTitle">
|
|
1609
|
+
</span>
|
|
1610
|
+
<ng-template #template>
|
|
1611
|
+
<kendo-pivot-chipmenu-container
|
|
1612
|
+
(keydown.escape)="close()"
|
|
1613
|
+
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
1614
|
+
<kendo-pivot-chipmenu-sort
|
|
1615
|
+
#sortItem
|
|
1616
|
+
[chip]="chip"
|
|
1617
|
+
[kendoPivotChipMenuItem]="sortItem"
|
|
1618
|
+
[service]="service">
|
|
1619
|
+
</kendo-pivot-chipmenu-sort>
|
|
1620
|
+
|
|
1621
|
+
<kendo-pivot-chipmenu-filter
|
|
1622
|
+
#filterItem
|
|
1623
|
+
[chip]="chip"
|
|
1624
|
+
[kendoPivotChipMenuItem]="filterItem"
|
|
1625
|
+
[service]="service">
|
|
1626
|
+
</kendo-pivot-chipmenu-filter>
|
|
1627
|
+
</kendo-pivot-chipmenu-container>
|
|
1628
|
+
</ng-template>
|
|
1629
|
+
`
|
|
1630
|
+
}]
|
|
1631
|
+
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: PivotLocalizationService }, { type: ChipMenuService }]; }, propDecorators: { chip: [{
|
|
1632
|
+
type: Input
|
|
1633
|
+
}], tabIndex: [{
|
|
1634
|
+
type: Input
|
|
1635
|
+
}], anchor: [{
|
|
1636
|
+
type: ViewChild,
|
|
1637
|
+
args: ['anchor', { static: true }]
|
|
1638
|
+
}] } });
|
|
1639
|
+
|
|
526
1640
|
/**
|
|
527
1641
|
* @hidden
|
|
528
1642
|
*/
|
|
@@ -690,6 +1804,7 @@ class PivotGridConfiguratorComponent {
|
|
|
690
1804
|
this.cdr = cdr;
|
|
691
1805
|
this.hostClass = true;
|
|
692
1806
|
this.horizontal = false;
|
|
1807
|
+
this.sort = new Array();
|
|
693
1808
|
this.checked = [];
|
|
694
1809
|
this.subs = new Subscription();
|
|
695
1810
|
/**
|
|
@@ -852,10 +1967,11 @@ class PivotGridConfiguratorComponent {
|
|
|
852
1967
|
}
|
|
853
1968
|
;
|
|
854
1969
|
}
|
|
855
|
-
PivotGridConfiguratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridConfiguratorComponent, deps: [{ token: PivotGridDataService }, { token:
|
|
856
|
-
PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: { horizontal: "horizontal" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass" } }, providers: [
|
|
1970
|
+
PivotGridConfiguratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridConfiguratorComponent, deps: [{ token: PivotGridDataService }, { token: i1.LocalizationService }, { token: ConfiguratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1971
|
+
PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: { horizontal: "horizontal", sort: "sort", filter: "filter" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass" } }, providers: [
|
|
857
1972
|
ConfiguratorService,
|
|
858
|
-
DropCueService
|
|
1973
|
+
DropCueService,
|
|
1974
|
+
SinglePopupService
|
|
859
1975
|
], ngImport: i0, template: `
|
|
860
1976
|
<div
|
|
861
1977
|
class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"
|
|
@@ -924,6 +2040,10 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
924
2040
|
[removable]="true"
|
|
925
2041
|
>
|
|
926
2042
|
{{ getName(item.name) }}
|
|
2043
|
+
|
|
2044
|
+
<kendo-pivot-chip-menu
|
|
2045
|
+
[chip]="item">
|
|
2046
|
+
</kendo-pivot-chip-menu>
|
|
927
2047
|
</kendo-chip>
|
|
928
2048
|
</kendo-chiplist>
|
|
929
2049
|
|
|
@@ -950,6 +2070,10 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
950
2070
|
[removable]="true"
|
|
951
2071
|
>
|
|
952
2072
|
{{ getName(item.name) }}
|
|
2073
|
+
|
|
2074
|
+
<kendo-pivot-chip-menu
|
|
2075
|
+
[chip]="item">
|
|
2076
|
+
</kendo-pivot-chip-menu>
|
|
953
2077
|
</kendo-chip>
|
|
954
2078
|
</kendo-chiplist>
|
|
955
2079
|
|
|
@@ -972,18 +2096,17 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
972
2096
|
kendoDropTarget
|
|
973
2097
|
axes="measureAxes"
|
|
974
2098
|
>
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
</kendo-chip>
|
|
2099
|
+
<kendo-chip *ngFor="let item of state.measureAxes"
|
|
2100
|
+
kendoChipDraggable
|
|
2101
|
+
kendoDraggable
|
|
2102
|
+
kendoDropTarget
|
|
2103
|
+
[item]="item"
|
|
2104
|
+
axes="measureAxes"
|
|
2105
|
+
rounded="full"
|
|
2106
|
+
[removable]="true"
|
|
2107
|
+
>
|
|
2108
|
+
{{ getName(item.name) }}
|
|
2109
|
+
</kendo-chip>
|
|
987
2110
|
</kendo-chiplist>
|
|
988
2111
|
|
|
989
2112
|
<ng-template #noMeasureAxes>
|
|
@@ -998,14 +2121,15 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
998
2121
|
<button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
|
|
999
2122
|
</div>
|
|
1000
2123
|
</div>
|
|
1001
|
-
`, isInline: true, components: [{ type: i4.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { type: i5.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size"], outputs: ["selectedChange", "remove"] }, { type: i5.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }], directives: [{ type:
|
|
2124
|
+
`, isInline: true, components: [{ type: i4.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { type: i5.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size"], outputs: ["selectedChange", "remove"] }, { type: i5.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }, { type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { type: i4.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { type: i3.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i5.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
1002
2125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
|
|
1003
2126
|
type: Component,
|
|
1004
2127
|
args: [{
|
|
1005
2128
|
selector: 'kendo-pivotgrid-configurator',
|
|
1006
2129
|
providers: [
|
|
1007
2130
|
ConfiguratorService,
|
|
1008
|
-
DropCueService
|
|
2131
|
+
DropCueService,
|
|
2132
|
+
SinglePopupService
|
|
1009
2133
|
],
|
|
1010
2134
|
template: `
|
|
1011
2135
|
<div
|
|
@@ -1075,6 +2199,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1075
2199
|
[removable]="true"
|
|
1076
2200
|
>
|
|
1077
2201
|
{{ getName(item.name) }}
|
|
2202
|
+
|
|
2203
|
+
<kendo-pivot-chip-menu
|
|
2204
|
+
[chip]="item">
|
|
2205
|
+
</kendo-pivot-chip-menu>
|
|
1078
2206
|
</kendo-chip>
|
|
1079
2207
|
</kendo-chiplist>
|
|
1080
2208
|
|
|
@@ -1101,6 +2229,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1101
2229
|
[removable]="true"
|
|
1102
2230
|
>
|
|
1103
2231
|
{{ getName(item.name) }}
|
|
2232
|
+
|
|
2233
|
+
<kendo-pivot-chip-menu
|
|
2234
|
+
[chip]="item">
|
|
2235
|
+
</kendo-pivot-chip-menu>
|
|
1104
2236
|
</kendo-chip>
|
|
1105
2237
|
</kendo-chiplist>
|
|
1106
2238
|
|
|
@@ -1123,18 +2255,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1123
2255
|
kendoDropTarget
|
|
1124
2256
|
axes="measureAxes"
|
|
1125
2257
|
>
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
</kendo-chip>
|
|
2258
|
+
<kendo-chip *ngFor="let item of state.measureAxes"
|
|
2259
|
+
kendoChipDraggable
|
|
2260
|
+
kendoDraggable
|
|
2261
|
+
kendoDropTarget
|
|
2262
|
+
[item]="item"
|
|
2263
|
+
axes="measureAxes"
|
|
2264
|
+
rounded="full"
|
|
2265
|
+
[removable]="true"
|
|
2266
|
+
>
|
|
2267
|
+
{{ getName(item.name) }}
|
|
2268
|
+
</kendo-chip>
|
|
1138
2269
|
</kendo-chiplist>
|
|
1139
2270
|
|
|
1140
2271
|
<ng-template #noMeasureAxes>
|
|
@@ -1151,11 +2282,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1151
2282
|
</div>
|
|
1152
2283
|
`
|
|
1153
2284
|
}]
|
|
1154
|
-
}], ctorParameters: function () { return [{ type: PivotGridDataService }, { type:
|
|
2285
|
+
}], ctorParameters: function () { return [{ type: PivotGridDataService }, { type: i1.LocalizationService }, { type: ConfiguratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { hostClass: [{
|
|
1155
2286
|
type: HostBinding,
|
|
1156
2287
|
args: ['class.k-pivotgrid-configurator']
|
|
1157
2288
|
}], horizontal: [{
|
|
1158
2289
|
type: Input
|
|
2290
|
+
}], sort: [{
|
|
2291
|
+
type: Input
|
|
2292
|
+
}], filter: [{
|
|
2293
|
+
type: Input
|
|
1159
2294
|
}] } });
|
|
1160
2295
|
|
|
1161
2296
|
/**
|
|
@@ -1164,7 +2299,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1164
2299
|
class PivotGridMessages extends ComponentMessages {
|
|
1165
2300
|
}
|
|
1166
2301
|
PivotGridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1167
|
-
PivotGridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridMessages, inputs: { fieldMenuFilterItemLabel: "fieldMenuFilterItemLabel", fieldMenuSortAscendingItemLabel: "fieldMenuSortAscendingItemLabel", fieldMenuSortDescendingItemLabel: "fieldMenuSortDescendingItemLabel", filterInputLabel: "filterInputLabel", filterOperatorsDropDownLabel: "filterOperatorsDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", loading: "loading", emptyCellLabel: "emptyCellLabel", configuratorButtonText: "configuratorButtonText", configuratorHeaderText: "configuratorHeaderText", configuratorFieldsText: "configuratorFieldsText", configuratorColumnsText: "configuratorColumnsText", configuratorRowsText: "configuratorRowsText", configuratorValuesText: "configuratorValuesText", configuratorCancelButtonText: "configuratorCancelButtonText", configuratorApplyButtonText: "configuratorApplyButtonText", configuratorEmptyRowsText: "configuratorEmptyRowsText", configuratorEmptyColumnsText: "configuratorEmptyColumnsText", configuratorEmptyMeasuresText: "configuratorEmptyMeasuresText" }, usesInheritance: true, ngImport: i0 });
|
|
2302
|
+
PivotGridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridMessages, inputs: { fieldMenuFilterItemLabel: "fieldMenuFilterItemLabel", fieldMenuSortAscendingItemLabel: "fieldMenuSortAscendingItemLabel", fieldMenuSortDescendingItemLabel: "fieldMenuSortDescendingItemLabel", filterInputLabel: "filterInputLabel", filterOperatorsDropDownLabel: "filterOperatorsDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", loading: "loading", emptyCellLabel: "emptyCellLabel", configuratorButtonText: "configuratorButtonText", configuratorHeaderText: "configuratorHeaderText", configuratorFieldsText: "configuratorFieldsText", configuratorColumnsText: "configuratorColumnsText", configuratorRowsText: "configuratorRowsText", configuratorValuesText: "configuratorValuesText", configuratorCancelButtonText: "configuratorCancelButtonText", configuratorApplyButtonText: "configuratorApplyButtonText", configuratorEmptyRowsText: "configuratorEmptyRowsText", configuratorEmptyColumnsText: "configuratorEmptyColumnsText", configuratorEmptyMeasuresText: "configuratorEmptyMeasuresText", chipMenuIconTitle: "chipMenuIconTitle" }, usesInheritance: true, ngImport: i0 });
|
|
1168
2303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridMessages, decorators: [{
|
|
1169
2304
|
type: Directive
|
|
1170
2305
|
}], propDecorators: { fieldMenuFilterItemLabel: [{
|
|
@@ -1227,6 +2362,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1227
2362
|
type: Input
|
|
1228
2363
|
}], configuratorEmptyMeasuresText: [{
|
|
1229
2364
|
type: Input
|
|
2365
|
+
}], chipMenuIconTitle: [{
|
|
2366
|
+
type: Input
|
|
1230
2367
|
}] } });
|
|
1231
2368
|
|
|
1232
2369
|
/**
|
|
@@ -1238,7 +2375,7 @@ class LocalizedMessagesDirective extends PivotGridMessages {
|
|
|
1238
2375
|
this.service = service;
|
|
1239
2376
|
}
|
|
1240
2377
|
}
|
|
1241
|
-
LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token:
|
|
2378
|
+
LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1242
2379
|
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]", providers: [
|
|
1243
2380
|
{
|
|
1244
2381
|
provide: PivotGridMessages,
|
|
@@ -1256,7 +2393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1256
2393
|
],
|
|
1257
2394
|
selector: '[kendoPivotGridLocalizedMessages]'
|
|
1258
2395
|
}]
|
|
1259
|
-
}], ctorParameters: function () { return [{ type:
|
|
2396
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
1260
2397
|
|
|
1261
2398
|
const DEFAULT_LOADER_SETTINGS = {
|
|
1262
2399
|
type: 'converging-spinner',
|
|
@@ -1430,10 +2567,11 @@ class PivotGridComponent {
|
|
|
1430
2567
|
}
|
|
1431
2568
|
}
|
|
1432
2569
|
}
|
|
1433
|
-
PivotGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PivotGridDataService }, { token:
|
|
2570
|
+
PivotGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PivotGridDataService }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i3.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1434
2571
|
PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridComponent, selector: "kendo-pivotgrid", inputs: { loaderSettings: "loaderSettings", configurator: "configurator", columnHeadersWidth: "columnHeadersWidth", navigable: "navigable" }, host: { properties: { "class.k-d-flex": "this.hostClass", "class.k-pos-relative": "this.hostClass", "class.k-flex-row": "this.rightPositionClass", "class.k-flex-row-reverse": "this.leftPositionClass", "class.k-flex-column": "this.bottomPositionClass", "class.k-flex-column-reverse": "this.topPositionClass", "attr.dir": "this.dir", "attr.role": "this.ariaRole" } }, providers: [
|
|
1435
2572
|
PivotGridDataService,
|
|
1436
2573
|
LocalizationService,
|
|
2574
|
+
PivotLocalizationService,
|
|
1437
2575
|
{
|
|
1438
2576
|
provide: L10N_PREFIX,
|
|
1439
2577
|
useValue: 'kendo.pivotgrid'
|
|
@@ -1528,7 +2666,10 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
1528
2666
|
configuratorEmptyColumnsText="Select some fields to begin setup"
|
|
1529
2667
|
|
|
1530
2668
|
i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
|
|
1531
|
-
configuratorEmptyMeasuresText="Select some fields to begin setup"
|
|
2669
|
+
configuratorEmptyMeasuresText="Select some fields to begin setup"
|
|
2670
|
+
|
|
2671
|
+
i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
|
|
2672
|
+
chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"></ng-container>
|
|
1532
2673
|
|
|
1533
2674
|
<div #table class="k-pivotgrid">
|
|
1534
2675
|
<span class="k-pivotgrid-empty-cell">
|
|
@@ -1568,10 +2709,10 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
1568
2709
|
<div *ngIf="configurator"
|
|
1569
2710
|
class="k-pivotgrid-configurator-button"
|
|
1570
2711
|
(click)="showConfigurator = !showConfigurator">
|
|
1571
|
-
<span>{{
|
|
2712
|
+
<span>{{messageFor('configuratorButtonText')}}<span class="k-icon k-i-gear k-color-inherit"></span>
|
|
1572
2713
|
</span>
|
|
1573
2714
|
</div>
|
|
1574
|
-
`, isInline: true, styles: ["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "], components: [{ type: PivotGridTableComponent, selector: "kendo-pivotgrid-table", inputs: ["tableType", "colWidth"] }, { type: i5$1.LoaderComponent, selector: "kendo-loader", inputs: ["type", "themeColor", "size"] }, { type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: ["horizontal"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { type:
|
|
2715
|
+
`, isInline: true, styles: ["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "], components: [{ type: PivotGridTableComponent, selector: "kendo-pivotgrid-table", inputs: ["tableType", "colWidth"] }, { type: i5$1.LoaderComponent, selector: "kendo-loader", inputs: ["type", "themeColor", "size"] }, { type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: ["horizontal", "sort", "filter"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1575
2716
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridComponent, decorators: [{
|
|
1576
2717
|
type: Component,
|
|
1577
2718
|
args: [{
|
|
@@ -1579,6 +2720,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1579
2720
|
providers: [
|
|
1580
2721
|
PivotGridDataService,
|
|
1581
2722
|
LocalizationService,
|
|
2723
|
+
PivotLocalizationService,
|
|
1582
2724
|
{
|
|
1583
2725
|
provide: L10N_PREFIX,
|
|
1584
2726
|
useValue: 'kendo.pivotgrid'
|
|
@@ -1674,7 +2816,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1674
2816
|
configuratorEmptyColumnsText="Select some fields to begin setup"
|
|
1675
2817
|
|
|
1676
2818
|
i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
|
|
1677
|
-
configuratorEmptyMeasuresText="Select some fields to begin setup"
|
|
2819
|
+
configuratorEmptyMeasuresText="Select some fields to begin setup"
|
|
2820
|
+
|
|
2821
|
+
i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
|
|
2822
|
+
chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"></ng-container>
|
|
1678
2823
|
|
|
1679
2824
|
<div #table class="k-pivotgrid">
|
|
1680
2825
|
<span class="k-pivotgrid-empty-cell">
|
|
@@ -1714,7 +2859,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1714
2859
|
<div *ngIf="configurator"
|
|
1715
2860
|
class="k-pivotgrid-configurator-button"
|
|
1716
2861
|
(click)="showConfigurator = !showConfigurator">
|
|
1717
|
-
<span>{{
|
|
2862
|
+
<span>{{messageFor('configuratorButtonText')}}<span class="k-icon k-i-gear k-color-inherit"></span>
|
|
1718
2863
|
</span>
|
|
1719
2864
|
</div>
|
|
1720
2865
|
`,
|
|
@@ -1728,7 +2873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1728
2873
|
}
|
|
1729
2874
|
`]
|
|
1730
2875
|
}]
|
|
1731
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: PivotGridDataService }, { type:
|
|
2876
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: PivotGridDataService }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i3.ScrollbarWidthService }]; }, propDecorators: { hostClass: [{
|
|
1732
2877
|
type: HostBinding,
|
|
1733
2878
|
args: ['class.k-d-flex']
|
|
1734
2879
|
}, {
|
|
@@ -1778,10 +2923,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1778
2923
|
* @hidden
|
|
1779
2924
|
*/
|
|
1780
2925
|
class PivotGridState {
|
|
1781
|
-
constructor(columnAxes, rowAxes, measureAxes) {
|
|
2926
|
+
constructor(columnAxes, rowAxes, measureAxes, sort, filter) {
|
|
1782
2927
|
this.columnAxes = columnAxes;
|
|
1783
2928
|
this.rowAxes = rowAxes;
|
|
1784
2929
|
this.measureAxes = measureAxes;
|
|
2930
|
+
this.sort = sort;
|
|
2931
|
+
this.filter = filter;
|
|
1785
2932
|
}
|
|
1786
2933
|
}
|
|
1787
2934
|
|
|
@@ -1833,6 +2980,10 @@ class PivotBaseBindingDirective {
|
|
|
1833
2980
|
* Represents the measure axes configuration of the PivotGrid.
|
|
1834
2981
|
*/
|
|
1835
2982
|
this.measureAxes = [];
|
|
2983
|
+
/**
|
|
2984
|
+
* Represents the initial sorted state of the PivotGrid.
|
|
2985
|
+
*/
|
|
2986
|
+
this.sort = [];
|
|
1836
2987
|
/**
|
|
1837
2988
|
* Fires each time a row or column header gets expanded or collapsed by the end user. The event is preventable.
|
|
1838
2989
|
* If you prevent the event, the PivotGrid will not be rerendered with the new state, resulting from the end user interaction.
|
|
@@ -1854,7 +3005,7 @@ class PivotBaseBindingDirective {
|
|
|
1854
3005
|
* @hidden
|
|
1855
3006
|
*/
|
|
1856
3007
|
get state() {
|
|
1857
|
-
return new PivotGridState(this.columnAxes, this.rowAxes, this.measureAxes);
|
|
3008
|
+
return new PivotGridState(this.columnAxes, this.rowAxes, this.measureAxes, this.sort, this.filter);
|
|
1858
3009
|
}
|
|
1859
3010
|
ngOnInit() {
|
|
1860
3011
|
this.loadData(this.state);
|
|
@@ -1880,7 +3031,9 @@ class PivotBaseBindingDirective {
|
|
|
1880
3031
|
this.dataService.configuredFields.next({
|
|
1881
3032
|
columnAxes: state.columnAxes,
|
|
1882
3033
|
rowAxes: state.rowAxes,
|
|
1883
|
-
measureAxes: state.measureAxes
|
|
3034
|
+
measureAxes: state.measureAxes,
|
|
3035
|
+
sort: state.sort,
|
|
3036
|
+
filter: state.filter
|
|
1884
3037
|
});
|
|
1885
3038
|
this.loadData(state);
|
|
1886
3039
|
});
|
|
@@ -1908,7 +3061,9 @@ class PivotBaseBindingDirective {
|
|
|
1908
3061
|
this.dataService.configuredFields.next({
|
|
1909
3062
|
columnAxes: this.columnAxes,
|
|
1910
3063
|
rowAxes: this.rowAxes,
|
|
1911
|
-
measureAxes: this.measureAxes
|
|
3064
|
+
measureAxes: this.measureAxes,
|
|
3065
|
+
sort: this.sort,
|
|
3066
|
+
filter: this.filter
|
|
1912
3067
|
});
|
|
1913
3068
|
}
|
|
1914
3069
|
updateHeaders(axes, tree, path) {
|
|
@@ -1935,7 +3090,7 @@ class PivotBaseBindingDirective {
|
|
|
1935
3090
|
;
|
|
1936
3091
|
}
|
|
1937
3092
|
PivotBaseBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotBaseBindingDirective, deps: [{ token: PivotGridDataService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1938
|
-
PivotBaseBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PivotBaseBindingDirective, selector: "kendo-base-binding-directive", inputs: { columnAxes: "columnAxes", rowAxes: "rowAxes", measureAxes: "measureAxes" }, outputs: { expandChange: "expandChange", configurationChange: "configurationChange", dataLoaded: "dataLoaded" }, ngImport: i0 });
|
|
3093
|
+
PivotBaseBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PivotBaseBindingDirective, selector: "kendo-base-binding-directive", inputs: { columnAxes: "columnAxes", rowAxes: "rowAxes", measureAxes: "measureAxes", sort: "sort", filter: "filter" }, outputs: { expandChange: "expandChange", configurationChange: "configurationChange", dataLoaded: "dataLoaded" }, ngImport: i0 });
|
|
1939
3094
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotBaseBindingDirective, decorators: [{
|
|
1940
3095
|
type: Directive,
|
|
1941
3096
|
args: [{
|
|
@@ -1947,6 +3102,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1947
3102
|
type: Input
|
|
1948
3103
|
}], measureAxes: [{
|
|
1949
3104
|
type: Input
|
|
3105
|
+
}], sort: [{
|
|
3106
|
+
type: Input
|
|
3107
|
+
}], filter: [{
|
|
3108
|
+
type: Input
|
|
1950
3109
|
}], expandChange: [{
|
|
1951
3110
|
type: Output
|
|
1952
3111
|
}], configurationChange: [{
|
|
@@ -1984,13 +3143,13 @@ class PivotLocalBindingDirective extends PivotBaseBindingDirective {
|
|
|
1984
3143
|
this.updateConfiguratorFields();
|
|
1985
3144
|
}
|
|
1986
3145
|
loadData(state) {
|
|
1987
|
-
const { columnAxes, rowAxes, measureAxes } = state;
|
|
3146
|
+
const { columnAxes, rowAxes, measureAxes, sort, filter } = state;
|
|
1988
3147
|
const rootColumnAxes = this.getRootAxes(columnAxes);
|
|
1989
3148
|
const rootRowAxes = this.getRootAxes(rowAxes);
|
|
1990
3149
|
const columnSettings = rootColumnAxes.split(stringSeparator).map(this.createAxisSettings);
|
|
1991
3150
|
const rowSettings = rootRowAxes.split(stringSeparator).map(this.createAxisSettings);
|
|
1992
3151
|
const measuresSettings = measureAxes.map(m => this.measures.find(meas => String(meas.name) === String(m.name))).filter(Boolean);
|
|
1993
|
-
const dataTree = createDataTree(this.data, rowSettings, columnSettings, measuresSettings, bindingFields);
|
|
3152
|
+
const dataTree = createDataTree(this.data, rowSettings, columnSettings, measuresSettings, bindingFields, filter);
|
|
1994
3153
|
this.dataState = createLocalDataState({
|
|
1995
3154
|
dataTree,
|
|
1996
3155
|
rowSettings,
|
|
@@ -1998,7 +3157,7 @@ class PivotLocalBindingDirective extends PivotBaseBindingDirective {
|
|
|
1998
3157
|
rowAxes: rowAxes,
|
|
1999
3158
|
columnAxes: columnAxes,
|
|
2000
3159
|
measures: measuresSettings,
|
|
2001
|
-
sort:
|
|
3160
|
+
sort: sort,
|
|
2002
3161
|
fields: bindingFields
|
|
2003
3162
|
});
|
|
2004
3163
|
this.updateDataServiceFields();
|
|
@@ -2039,16 +3198,18 @@ class PivotOLAPBindingDirective extends PivotBaseBindingDirective {
|
|
|
2039
3198
|
}
|
|
2040
3199
|
}
|
|
2041
3200
|
loadData(state) {
|
|
2042
|
-
const { columnAxes, rowAxes, measureAxes } = state;
|
|
3201
|
+
const { columnAxes, rowAxes, measureAxes, sort, filter } = state;
|
|
2043
3202
|
this.dataService.loading.next(true);
|
|
2044
3203
|
const options = {
|
|
2045
3204
|
connection: {
|
|
2046
3205
|
catalog: this.catalog,
|
|
2047
3206
|
cube: this.cube
|
|
2048
3207
|
},
|
|
2049
|
-
columnAxes
|
|
2050
|
-
rowAxes
|
|
2051
|
-
measureAxes
|
|
3208
|
+
columnAxes,
|
|
3209
|
+
rowAxes,
|
|
3210
|
+
measureAxes,
|
|
3211
|
+
sort,
|
|
3212
|
+
filter
|
|
2052
3213
|
};
|
|
2053
3214
|
fetchData({ url: this.url }, JSON.parse(JSON.stringify(options)))
|
|
2054
3215
|
.then(createDataState)
|
|
@@ -2209,7 +3370,7 @@ class CustomMessagesComponent extends PivotGridMessages {
|
|
|
2209
3370
|
return true;
|
|
2210
3371
|
}
|
|
2211
3372
|
}
|
|
2212
|
-
CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CustomMessagesComponent, deps: [{ token:
|
|
3373
|
+
CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2213
3374
|
CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CustomMessagesComponent, selector: "kendo-pivotgrid-messages", providers: [
|
|
2214
3375
|
{
|
|
2215
3376
|
provide: PivotGridMessages,
|
|
@@ -2228,16 +3389,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2228
3389
|
selector: 'kendo-pivotgrid-messages',
|
|
2229
3390
|
template: ``
|
|
2230
3391
|
}]
|
|
2231
|
-
}], ctorParameters: function () { return [{ type:
|
|
3392
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
2232
3393
|
|
|
2233
|
-
const
|
|
3394
|
+
const MODULES = [
|
|
2234
3395
|
CommonModule,
|
|
3396
|
+
DropDownsModule,
|
|
3397
|
+
InputsModule,
|
|
3398
|
+
ButtonsModule
|
|
3399
|
+
];
|
|
3400
|
+
/**
|
|
3401
|
+
* @hidden
|
|
3402
|
+
*/
|
|
3403
|
+
class SharedModule {
|
|
3404
|
+
}
|
|
3405
|
+
SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3406
|
+
SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [CommonModule,
|
|
3407
|
+
DropDownsModule,
|
|
3408
|
+
InputsModule,
|
|
3409
|
+
ButtonsModule], exports: [CommonModule,
|
|
3410
|
+
DropDownsModule,
|
|
3411
|
+
InputsModule,
|
|
3412
|
+
ButtonsModule] });
|
|
3413
|
+
SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [[MODULES], CommonModule,
|
|
3414
|
+
DropDownsModule,
|
|
3415
|
+
InputsModule,
|
|
3416
|
+
ButtonsModule] });
|
|
3417
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, decorators: [{
|
|
3418
|
+
type: NgModule,
|
|
3419
|
+
args: [{
|
|
3420
|
+
imports: [MODULES],
|
|
3421
|
+
exports: [MODULES]
|
|
3422
|
+
}]
|
|
3423
|
+
}] });
|
|
3424
|
+
|
|
3425
|
+
const COMPONENTS = [
|
|
3426
|
+
ChipMenuItemComponent,
|
|
3427
|
+
ChipMenuSortComponent,
|
|
3428
|
+
ChipMenuComponent,
|
|
3429
|
+
ChipMenuFilterComponent,
|
|
3430
|
+
ChipMenuItemContentTemplateDirective,
|
|
3431
|
+
FilterMenuContainerComponent,
|
|
3432
|
+
StringFilterMenuComponent,
|
|
3433
|
+
FilterMenuDropDownListDirective,
|
|
3434
|
+
ChipMenuContainerComponent,
|
|
3435
|
+
ChipMenuItemDirective
|
|
3436
|
+
];
|
|
3437
|
+
/**
|
|
3438
|
+
* @hidden
|
|
3439
|
+
*/
|
|
3440
|
+
class ChipMenuModule {
|
|
3441
|
+
static exports() {
|
|
3442
|
+
return [
|
|
3443
|
+
ChipMenuItemComponent,
|
|
3444
|
+
ChipMenuSortComponent,
|
|
3445
|
+
ChipMenuContainerComponent,
|
|
3446
|
+
ChipMenuItemDirective,
|
|
3447
|
+
ChipMenuComponent
|
|
3448
|
+
];
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3451
|
+
ChipMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3452
|
+
ChipMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuModule, declarations: [ChipMenuItemComponent,
|
|
3453
|
+
ChipMenuSortComponent,
|
|
3454
|
+
ChipMenuComponent,
|
|
3455
|
+
ChipMenuFilterComponent,
|
|
3456
|
+
ChipMenuItemContentTemplateDirective,
|
|
3457
|
+
FilterMenuContainerComponent,
|
|
3458
|
+
StringFilterMenuComponent,
|
|
3459
|
+
FilterMenuDropDownListDirective,
|
|
3460
|
+
ChipMenuContainerComponent,
|
|
3461
|
+
ChipMenuItemDirective], imports: [SharedModule,
|
|
3462
|
+
ReactiveFormsModule,
|
|
3463
|
+
FormsModule], exports: [ChipMenuItemComponent,
|
|
3464
|
+
ChipMenuSortComponent,
|
|
3465
|
+
ChipMenuComponent,
|
|
3466
|
+
ChipMenuFilterComponent,
|
|
3467
|
+
ChipMenuItemContentTemplateDirective,
|
|
3468
|
+
FilterMenuContainerComponent,
|
|
3469
|
+
StringFilterMenuComponent,
|
|
3470
|
+
FilterMenuDropDownListDirective,
|
|
3471
|
+
ChipMenuContainerComponent,
|
|
3472
|
+
ChipMenuItemDirective] });
|
|
3473
|
+
ChipMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuModule, imports: [[
|
|
3474
|
+
SharedModule,
|
|
3475
|
+
ReactiveFormsModule,
|
|
3476
|
+
FormsModule
|
|
3477
|
+
]] });
|
|
3478
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipMenuModule, decorators: [{
|
|
3479
|
+
type: NgModule,
|
|
3480
|
+
args: [{
|
|
3481
|
+
declarations: [COMPONENTS],
|
|
3482
|
+
imports: [
|
|
3483
|
+
SharedModule,
|
|
3484
|
+
ReactiveFormsModule,
|
|
3485
|
+
FormsModule
|
|
3486
|
+
],
|
|
3487
|
+
exports: [COMPONENTS]
|
|
3488
|
+
}]
|
|
3489
|
+
}] });
|
|
3490
|
+
|
|
3491
|
+
const IMPORTED_MODULES = [
|
|
2235
3492
|
EventsModule,
|
|
2236
3493
|
IndicatorsModule,
|
|
2237
|
-
ButtonsModule,
|
|
2238
3494
|
TreeViewModule,
|
|
2239
|
-
|
|
2240
|
-
|
|
3495
|
+
DraggableModule,
|
|
3496
|
+
ChipMenuModule,
|
|
3497
|
+
SharedModule
|
|
2241
3498
|
];
|
|
2242
3499
|
const DECLARATIONS = [
|
|
2243
3500
|
PivotGridComponent,
|
|
@@ -2274,13 +3531,12 @@ PivotGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
2274
3531
|
DraggableChipDirective,
|
|
2275
3532
|
DropTargetDirective,
|
|
2276
3533
|
LocalizedMessagesDirective,
|
|
2277
|
-
CustomMessagesComponent], imports: [
|
|
2278
|
-
EventsModule,
|
|
3534
|
+
CustomMessagesComponent], imports: [EventsModule,
|
|
2279
3535
|
IndicatorsModule,
|
|
2280
|
-
ButtonsModule,
|
|
2281
3536
|
TreeViewModule,
|
|
2282
|
-
|
|
2283
|
-
|
|
3537
|
+
DraggableModule,
|
|
3538
|
+
ChipMenuModule,
|
|
3539
|
+
SharedModule], exports: [PivotGridComponent,
|
|
2284
3540
|
PivotGridTableComponent,
|
|
2285
3541
|
PivotGridCellDirective,
|
|
2286
3542
|
PivotLocalBindingDirective,
|