@progress/kendo-angular-pivotgrid 1.0.3-dev.202210121054 → 1.1.0-dev.202210240946
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-kb-nav.directive.d.ts +25 -0
- package/configurator/configurator.component.d.ts +28 -6
- package/esm2015/configurator/chip-kb-nav.directive.js +59 -0
- package/esm2015/configurator/chip-menu/chip-menu.component.js +1 -1
- package/esm2015/configurator/configurator.component.js +169 -29
- package/esm2015/data-binding/base-binding-directive.js +1 -0
- package/esm2015/localization/custom-messages.component.js +1 -1
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pivotgrid.component.js +59 -13
- package/esm2015/pivotgrid.module.js +5 -2
- package/esm2015/util.js +8 -0
- package/fesm2015/kendo-angular-pivotgrid.js +293 -47
- package/localization/custom-messages.component.d.ts +1 -1
- package/package.json +2 -2
- package/pivotgrid.component.d.ts +9 -0
- package/pivotgrid.module.d.ts +7 -6
- package/util.d.ts +4 -0
|
@@ -7,7 +7,7 @@ import { EventEmitter, Injectable, Output, Component, HostBinding, Input, Direct
|
|
|
7
7
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
8
8
|
import * as i3 from '@progress/kendo-angular-common';
|
|
9
9
|
import { isDocumentAvailable, PreventableEvent, Keys, isChanged, hasObservers, anyChanged, EventsModule, DraggableModule } from '@progress/kendo-angular-common';
|
|
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';
|
|
10
|
+
import { toTree, toRows, toColumns, toData, configuratorReducer, PIVOT_CONFIGURATOR_ACTION, PivotGridNavigation, ConfiguratorNavigation, 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
12
|
import { BehaviorSubject, Subscription, Subject, from, of, fromEvent } from 'rxjs';
|
|
13
13
|
import { take, mergeMap, merge } from 'rxjs/operators';
|
|
@@ -17,9 +17,9 @@ 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';
|
|
21
20
|
import * as i4 from '@progress/kendo-angular-treeview';
|
|
22
|
-
import { TreeViewModule } from '@progress/kendo-angular-treeview';
|
|
21
|
+
import { TreeViewComponent, TreeViewModule } from '@progress/kendo-angular-treeview';
|
|
22
|
+
import * as i1$1 from '@progress/kendo-angular-popup';
|
|
23
23
|
import * as i5 from '@progress/kendo-angular-buttons';
|
|
24
24
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
25
25
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
@@ -38,7 +38,7 @@ const packageMetadata = {
|
|
|
38
38
|
name: '@progress/kendo-angular-pivotgrid',
|
|
39
39
|
productName: 'Kendo UI for Angular',
|
|
40
40
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
41
|
-
publishDate:
|
|
41
|
+
publishDate: 1666604767,
|
|
42
42
|
version: '',
|
|
43
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'
|
|
44
44
|
};
|
|
@@ -221,6 +221,14 @@ function cloneValue(value, nextValue) {
|
|
|
221
221
|
function cloneArray(array) {
|
|
222
222
|
return array.map(value => cloneValue(value, undefined));
|
|
223
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* @hidden
|
|
226
|
+
*/
|
|
227
|
+
const swapItems = (arr, i1, i2) => {
|
|
228
|
+
let temp = arr[i1];
|
|
229
|
+
arr[i1] = arr[i2];
|
|
230
|
+
arr[i2] = temp;
|
|
231
|
+
};
|
|
224
232
|
|
|
225
233
|
/**
|
|
226
234
|
* @hidden
|
|
@@ -1593,7 +1601,7 @@ class ChipMenuComponent {
|
|
|
1593
1601
|
close() {
|
|
1594
1602
|
this.popupService.destroy();
|
|
1595
1603
|
this.popupRef = null;
|
|
1596
|
-
this.anchor.nativeElement.focus();
|
|
1604
|
+
this.anchor.nativeElement.closest('.k-chip').focus();
|
|
1597
1605
|
}
|
|
1598
1606
|
get chipMenuTitle() {
|
|
1599
1607
|
const localizationMsg = this.localization.get('chipMenuIconTitle') || '';
|
|
@@ -1946,19 +1954,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1946
1954
|
type: Input
|
|
1947
1955
|
}] } });
|
|
1948
1956
|
|
|
1957
|
+
/**
|
|
1958
|
+
* @hidden
|
|
1959
|
+
*/
|
|
1960
|
+
class ChipKeyboardNavigationDirective {
|
|
1961
|
+
constructor(host, renderer, ngZone) {
|
|
1962
|
+
this.host = host;
|
|
1963
|
+
this.renderer = renderer;
|
|
1964
|
+
this.ngZone = ngZone;
|
|
1965
|
+
this.keydownSub = new Subscription();
|
|
1966
|
+
this.reorder = new EventEmitter();
|
|
1967
|
+
}
|
|
1968
|
+
ngOnInit() {
|
|
1969
|
+
const chipElement = this.host.element.nativeElement;
|
|
1970
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1971
|
+
this.keydownSub.add(this.renderer.listen(chipElement, 'keydown', (ev) => {
|
|
1972
|
+
const isAltDown = ev.keyCode === Keys.ArrowDown && ev.altKey;
|
|
1973
|
+
const menuIcon = this.host.element.nativeElement.querySelector('.k-i-more-vertical');
|
|
1974
|
+
const shiftAndMeta = ev.shiftKey && ev.metaKey;
|
|
1975
|
+
const isArrow = [Keys.ArrowLeft, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowUp].includes(ev.keyCode);
|
|
1976
|
+
const isReorderAction = shiftAndMeta && isArrow;
|
|
1977
|
+
if (isAltDown && menuIcon) {
|
|
1978
|
+
menuIcon.click();
|
|
1979
|
+
}
|
|
1980
|
+
else if (isReorderAction) {
|
|
1981
|
+
const direction = {
|
|
1982
|
+
[Keys.ArrowDown]: 'down',
|
|
1983
|
+
[Keys.ArrowUp]: 'up',
|
|
1984
|
+
[Keys.ArrowRight]: 'right',
|
|
1985
|
+
[Keys.ArrowLeft]: 'left'
|
|
1986
|
+
}[ev.keyCode];
|
|
1987
|
+
this.reorder.emit({
|
|
1988
|
+
direction,
|
|
1989
|
+
sender: this.host
|
|
1990
|
+
});
|
|
1991
|
+
}
|
|
1992
|
+
}));
|
|
1993
|
+
});
|
|
1994
|
+
}
|
|
1995
|
+
ngOnDestroy() {
|
|
1996
|
+
this.keydownSub.unsubscribe();
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
ChipKeyboardNavigationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipKeyboardNavigationDirective, deps: [{ token: i5.ChipComponent }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2000
|
+
ChipKeyboardNavigationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: { reorder: "reorder" }, ngImport: i0 });
|
|
2001
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ChipKeyboardNavigationDirective, decorators: [{
|
|
2002
|
+
type: Directive,
|
|
2003
|
+
args: [{ selector: '[kendoChipKeyboardNavigation]' }]
|
|
2004
|
+
}], ctorParameters: function () { return [{ type: i5.ChipComponent }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { reorder: [{
|
|
2005
|
+
type: Output
|
|
2006
|
+
}] } });
|
|
2007
|
+
|
|
1949
2008
|
/**
|
|
1950
2009
|
* @hidden
|
|
1951
2010
|
* Represents the Kendo UI PivotGrid Configurator component for Angular.
|
|
1952
2011
|
*/
|
|
1953
2012
|
class PivotGridConfiguratorComponent {
|
|
1954
|
-
constructor(dataService, localization, configuratorService, cdr) {
|
|
2013
|
+
constructor(dataService, localization, configuratorService, cdr, zone) {
|
|
1955
2014
|
this.dataService = dataService;
|
|
1956
2015
|
this.localization = localization;
|
|
1957
2016
|
this.configuratorService = configuratorService;
|
|
1958
2017
|
this.cdr = cdr;
|
|
2018
|
+
this.zone = zone;
|
|
1959
2019
|
this.hostClass = true;
|
|
2020
|
+
this.hostAriaRole = 'dialog';
|
|
1960
2021
|
this.orientation = 'vertical';
|
|
1961
2022
|
this.sort = new Array();
|
|
2023
|
+
this.close = new EventEmitter();
|
|
1962
2024
|
this.checked = [];
|
|
1963
2025
|
this.subs = new Subscription();
|
|
1964
2026
|
/**
|
|
@@ -1976,6 +2038,9 @@ class PivotGridConfiguratorComponent {
|
|
|
1976
2038
|
return of(node.children);
|
|
1977
2039
|
};
|
|
1978
2040
|
}
|
|
2041
|
+
get headerTextId() {
|
|
2042
|
+
return `k-pivotgrid-${this.dataService.pivotGridId}-configurator-header`;
|
|
2043
|
+
}
|
|
1979
2044
|
get isHorizontal() {
|
|
1980
2045
|
return this.orientation === 'horizontal';
|
|
1981
2046
|
}
|
|
@@ -2004,6 +2069,9 @@ class PivotGridConfiguratorComponent {
|
|
|
2004
2069
|
this.cdr.detectChanges();
|
|
2005
2070
|
}));
|
|
2006
2071
|
}
|
|
2072
|
+
ngAfterViewInit() {
|
|
2073
|
+
this.treeView.focus();
|
|
2074
|
+
}
|
|
2007
2075
|
ngOnDestroy() {
|
|
2008
2076
|
this.subs.unsubscribe();
|
|
2009
2077
|
}
|
|
@@ -2015,6 +2083,9 @@ class PivotGridConfiguratorComponent {
|
|
|
2015
2083
|
getName(name) {
|
|
2016
2084
|
return name.toString();
|
|
2017
2085
|
}
|
|
2086
|
+
contentLabelId(section) {
|
|
2087
|
+
return `k-pivotgrid-${this.dataService.pivotGridId}-configurator-${section}`;
|
|
2088
|
+
}
|
|
2018
2089
|
setState(state) {
|
|
2019
2090
|
this.dataService.state = {
|
|
2020
2091
|
columnAxes: state.columnAxes,
|
|
@@ -2025,6 +2096,35 @@ class PivotGridConfiguratorComponent {
|
|
|
2025
2096
|
};
|
|
2026
2097
|
this.state = this.configuratorService.state = state;
|
|
2027
2098
|
}
|
|
2099
|
+
onReorder(ev, name, item) {
|
|
2100
|
+
const currentCollection = this.state[`${name}Axes`];
|
|
2101
|
+
const itemIndex = currentCollection.indexOf(item);
|
|
2102
|
+
switch (ev.direction) {
|
|
2103
|
+
case 'right':
|
|
2104
|
+
if (itemIndex !== currentCollection.length - 1) {
|
|
2105
|
+
this.swapChips(currentCollection, itemIndex, ev.direction, name);
|
|
2106
|
+
}
|
|
2107
|
+
break;
|
|
2108
|
+
case 'left':
|
|
2109
|
+
if (itemIndex !== 0) {
|
|
2110
|
+
this.swapChips(currentCollection, itemIndex, ev.direction, name);
|
|
2111
|
+
ev.sender.focus();
|
|
2112
|
+
}
|
|
2113
|
+
break;
|
|
2114
|
+
case 'up':
|
|
2115
|
+
if (name === 'row') {
|
|
2116
|
+
this.moveChip(currentCollection, item, itemIndex, name);
|
|
2117
|
+
}
|
|
2118
|
+
break;
|
|
2119
|
+
case 'down':
|
|
2120
|
+
if (name === 'column') {
|
|
2121
|
+
this.moveChip(currentCollection, item, itemIndex, name);
|
|
2122
|
+
}
|
|
2123
|
+
break;
|
|
2124
|
+
default:
|
|
2125
|
+
break;
|
|
2126
|
+
}
|
|
2127
|
+
}
|
|
2028
2128
|
/**
|
|
2029
2129
|
* Returns the localized message for a given token
|
|
2030
2130
|
*/
|
|
@@ -2056,12 +2156,18 @@ class PivotGridConfiguratorComponent {
|
|
|
2056
2156
|
* Updates the respective axis configuration of the current state
|
|
2057
2157
|
* when a chip is deleted from the UI
|
|
2058
2158
|
*/
|
|
2059
|
-
onChipRemove(item, section) {
|
|
2159
|
+
onChipRemove(ev, item, section) {
|
|
2060
2160
|
const filteredItems = this.dataService.state[`${section}Axes`].filter(descriptor => descriptor !== item);
|
|
2061
2161
|
this.dataService.state[`${section}Axes`] = filteredItems;
|
|
2062
2162
|
const newState = Object.assign(Object.assign({}, this.state), this.dataService.state);
|
|
2063
2163
|
this.checked = this.checked.filter(checkedItem => checkedItem.uniqueName !== item.name[0]);
|
|
2064
2164
|
this.setState(newState);
|
|
2165
|
+
if (!this.navigation) {
|
|
2166
|
+
return;
|
|
2167
|
+
}
|
|
2168
|
+
;
|
|
2169
|
+
const targetIndex = this.navigation.elements.indexOf(ev.sender.element.nativeElement);
|
|
2170
|
+
this.zone.runOutsideAngular(() => setTimeout(() => this.navigation.focusElement(this.navigation.elements[targetIndex - 1], this.navigation.elements[targetIndex])));
|
|
2065
2171
|
}
|
|
2066
2172
|
/**
|
|
2067
2173
|
* Constructs an array with all selected fields.
|
|
@@ -2121,6 +2227,19 @@ class PivotGridConfiguratorComponent {
|
|
|
2121
2227
|
payload: item
|
|
2122
2228
|
};
|
|
2123
2229
|
this.configuratorService.parseConfiguratorState(action);
|
|
2230
|
+
const closestItem = event.target.closest('.k-treeview-item');
|
|
2231
|
+
this.zone.runOutsideAngular(() => setTimeout(() => closestItem.focus()));
|
|
2232
|
+
}
|
|
2233
|
+
onTreeViewSelect(ev) {
|
|
2234
|
+
var _a;
|
|
2235
|
+
const closestItem = ev.target.closest('.k-treeview-item');
|
|
2236
|
+
if (closestItem) {
|
|
2237
|
+
(_a = closestItem.querySelector('.k-checkbox')) === null || _a === void 0 ? void 0 : _a.click();
|
|
2238
|
+
}
|
|
2239
|
+
}
|
|
2240
|
+
onTreeViewEscape(ev) {
|
|
2241
|
+
ev.stopImmediatePropagation();
|
|
2242
|
+
this.close.emit();
|
|
2124
2243
|
}
|
|
2125
2244
|
handleSubmit() {
|
|
2126
2245
|
this.dataService.configuratorFieldChange.emit(this.dataService.state);
|
|
@@ -2153,13 +2272,40 @@ class PivotGridConfiguratorComponent {
|
|
|
2153
2272
|
return Array.from(result);
|
|
2154
2273
|
}
|
|
2155
2274
|
;
|
|
2275
|
+
/**
|
|
2276
|
+
* Swaps chips within the same ChipList
|
|
2277
|
+
*/
|
|
2278
|
+
swapChips(collection, itemIndex, direction, name) {
|
|
2279
|
+
const targetIndex = itemIndex + (direction === 'right' ? 1 : -1);
|
|
2280
|
+
swapItems(collection, itemIndex, targetIndex);
|
|
2281
|
+
this.dataService.state[`${name}Axes`] = collection;
|
|
2282
|
+
const newState = Object.assign(Object.assign({}, this.state), this.dataService.state);
|
|
2283
|
+
this.setState(newState);
|
|
2284
|
+
this.cdr.detectChanges();
|
|
2285
|
+
}
|
|
2286
|
+
/**
|
|
2287
|
+
* Moves a chip from one ChipList to another
|
|
2288
|
+
*/
|
|
2289
|
+
moveChip(collection, item, itemIndex, name) {
|
|
2290
|
+
var _a;
|
|
2291
|
+
collection.splice(itemIndex, 1);
|
|
2292
|
+
const targetCollectionName = name === 'row' ? 'column' : 'row';
|
|
2293
|
+
const axes = this.state[`${targetCollectionName}Axes`];
|
|
2294
|
+
axes.push(item);
|
|
2295
|
+
this.dataService.state[`${name}Axes`] = collection;
|
|
2296
|
+
this.dataService.state[targetCollectionName] = axes;
|
|
2297
|
+
const newState = Object.assign(Object.assign({}, this.state), this.dataService.state);
|
|
2298
|
+
this.setState(newState);
|
|
2299
|
+
this.cdr.detectChanges();
|
|
2300
|
+
(_a = this[`${targetCollectionName}sList`]) === null || _a === void 0 ? void 0 : _a.chips.last.focus();
|
|
2301
|
+
}
|
|
2156
2302
|
}
|
|
2157
|
-
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 });
|
|
2158
|
-
PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: { orientation: "orientation", sort: "sort", filter: "filter" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass" } }, providers: [
|
|
2303
|
+
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 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2304
|
+
PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: { orientation: "orientation", sort: "sort", filter: "filter", navigation: "navigation" }, outputs: { close: "close" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass", "attr.role": "this.hostAriaRole", "attr.aria-labelledby": "this.headerTextId" } }, providers: [
|
|
2159
2305
|
ConfiguratorService,
|
|
2160
2306
|
DropCueService,
|
|
2161
2307
|
SinglePopupService
|
|
2162
|
-
], usesOnChanges: true, ngImport: i0, template: `
|
|
2308
|
+
], viewQueries: [{ propertyName: "treeView", first: true, predicate: TreeViewComponent, descendants: true }, { propertyName: "columnsList", first: true, predicate: ["columnsChiplist"], descendants: true }, { propertyName: "rowsList", first: true, predicate: ["rowsChiplist"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2163
2309
|
<div
|
|
2164
2310
|
class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"
|
|
2165
2311
|
[ngClass]="{
|
|
@@ -2168,31 +2314,36 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
2168
2314
|
}"
|
|
2169
2315
|
>
|
|
2170
2316
|
<div class="k-pivotgrid-configurator-header">
|
|
2171
|
-
<div
|
|
2317
|
+
<div
|
|
2318
|
+
[id]="headerTextId"
|
|
2319
|
+
class="k-pivotgrid-configurator-header-text">{{messageFor('configuratorHeaderText')}}</div>
|
|
2172
2320
|
</div>
|
|
2173
2321
|
|
|
2174
2322
|
<div class="k-pivotgrid-configurator-content">
|
|
2175
2323
|
<div class="k-form" [class.k-form-horizontal]="isHorizontal">
|
|
2176
2324
|
<div class="k-form-field-wrapper">
|
|
2177
2325
|
<div class="k-form-field">
|
|
2178
|
-
<span class="k-label">{{messageFor('configuratorFieldsText')}}</span>
|
|
2326
|
+
<span [id]="contentLabelId('fields')" class="k-label">{{messageFor('configuratorFieldsText')}}</span>
|
|
2179
2327
|
</div>
|
|
2180
|
-
|
|
2181
2328
|
<div class="k-form-field">
|
|
2182
2329
|
<div class="k-fields-list-wrapper">
|
|
2183
2330
|
<kendo-treeview
|
|
2331
|
+
#treeview
|
|
2332
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('fields')"
|
|
2333
|
+
(focus)="treeview.focus()"
|
|
2184
2334
|
[nodes]="fields"
|
|
2185
2335
|
textField="caption"
|
|
2186
2336
|
[children]="children"
|
|
2187
2337
|
[hasChildren]="hasChildren"
|
|
2188
2338
|
kendoTreeViewExpandable
|
|
2189
2339
|
(childrenLoaded)="handleChildrenLoaded($event)"
|
|
2190
|
-
|
|
2340
|
+
(keydown.space)="onTreeViewSelect($event)">
|
|
2191
2341
|
<ng-template kendoTreeViewNodeTemplate let-dataItem>
|
|
2192
2342
|
<input kendoCheckBox
|
|
2193
2343
|
*ngIf="isSelectable(dataItem)"
|
|
2194
2344
|
type="checkbox"
|
|
2195
2345
|
kendoCheckBox
|
|
2346
|
+
tabindex="-1"
|
|
2196
2347
|
[checked]="isItemChecked(dataItem)"
|
|
2197
2348
|
(change)="handleCheckedChange($event, dataItem)"/>
|
|
2198
2349
|
{{ dataItem.caption }}
|
|
@@ -2209,24 +2360,28 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
2209
2360
|
|
|
2210
2361
|
<ng-template #verticalTemplate>
|
|
2211
2362
|
<div class="k-form-field" kendoDropTarget axes="columnAxes">
|
|
2212
|
-
<span class="k-label">{{messageFor('configuratorColumnsText')}}</span>
|
|
2363
|
+
<span [id]="contentLabelId('columns')" class="k-label">{{messageFor('configuratorColumnsText')}}</span>
|
|
2213
2364
|
</div>
|
|
2214
2365
|
|
|
2215
2366
|
<kendo-chiplist
|
|
2216
2367
|
*ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
|
|
2368
|
+
#columnsChiplist
|
|
2217
2369
|
kendoDropTarget
|
|
2218
2370
|
axes="columnAxes"
|
|
2371
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
|
|
2219
2372
|
>
|
|
2220
2373
|
<ng-container *ngFor="let item of state.columnAxes">
|
|
2221
2374
|
<kendo-chip *ngIf="item.name.length === 1"
|
|
2222
2375
|
kendoChipDraggable
|
|
2223
2376
|
kendoDraggable
|
|
2224
2377
|
kendoDropTarget
|
|
2378
|
+
kendoChipKeyboardNavigation
|
|
2225
2379
|
[item]="item"
|
|
2226
2380
|
axes="columnAxes"
|
|
2227
2381
|
rounded="full"
|
|
2228
2382
|
[removable]="true"
|
|
2229
|
-
(remove)="onChipRemove(item, 'column')"
|
|
2383
|
+
(remove)="onChipRemove($event, item, 'column')"
|
|
2384
|
+
(reorder)="onReorder($event, 'column', item)"
|
|
2230
2385
|
>{{ getName(item.name) }}
|
|
2231
2386
|
<kendo-pivot-chip-menu
|
|
2232
2387
|
[chip]="item">
|
|
@@ -2240,24 +2395,28 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
2240
2395
|
</ng-template>
|
|
2241
2396
|
|
|
2242
2397
|
<div class="k-form-field" kendoDropTarget axes="rowAxes">
|
|
2243
|
-
<span class="k-label">{{messageFor('configuratorRowsText')}}</span>
|
|
2398
|
+
<span [id]="contentLabelId('rows')" class="k-label">{{messageFor('configuratorRowsText')}}</span>
|
|
2244
2399
|
</div>
|
|
2245
2400
|
|
|
2246
2401
|
<kendo-chiplist
|
|
2247
2402
|
*ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
|
|
2403
|
+
#rowsChiplist
|
|
2248
2404
|
kendoDropTarget
|
|
2249
2405
|
axes="rowAxes"
|
|
2406
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
|
|
2250
2407
|
>
|
|
2251
2408
|
<ng-container *ngFor="let item of state.rowAxes">
|
|
2252
2409
|
<kendo-chip *ngIf="item.name.length === 1"
|
|
2253
2410
|
kendoChipDraggable
|
|
2254
2411
|
kendoDraggable
|
|
2255
2412
|
kendoDropTarget
|
|
2413
|
+
kendoChipKeyboardNavigation
|
|
2256
2414
|
[item]="item"
|
|
2257
2415
|
axes="rowAxes"
|
|
2258
2416
|
rounded="full"
|
|
2259
2417
|
[removable]="true"
|
|
2260
|
-
(remove)="onChipRemove(item, 'row')"
|
|
2418
|
+
(remove)="onChipRemove($event, item, 'row')"
|
|
2419
|
+
(reorder)="onReorder($event, 'row', item)"
|
|
2261
2420
|
>
|
|
2262
2421
|
{{ getName(item.name) }}
|
|
2263
2422
|
|
|
@@ -2279,23 +2438,26 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
2279
2438
|
|
|
2280
2439
|
<ng-template #verticalMeasuresTemplate>
|
|
2281
2440
|
<div class="k-form-field" kendoDropTarget axes="measureAxes">
|
|
2282
|
-
<span class="k-label">{{messageFor('configuratorValuesText')}}</span>
|
|
2441
|
+
<span [id]="contentLabelId('values')" class="k-label">{{messageFor('configuratorValuesText')}}</span>
|
|
2283
2442
|
</div>
|
|
2284
2443
|
|
|
2285
2444
|
<kendo-chiplist
|
|
2286
2445
|
*ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
|
|
2287
2446
|
kendoDropTarget
|
|
2288
2447
|
axes="measureAxes"
|
|
2448
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
|
|
2289
2449
|
>
|
|
2290
2450
|
<kendo-chip *ngFor="let item of state.measureAxes"
|
|
2291
2451
|
kendoChipDraggable
|
|
2292
2452
|
kendoDraggable
|
|
2293
2453
|
kendoDropTarget
|
|
2454
|
+
kendoChipKeyboardNavigation
|
|
2294
2455
|
[item]="item"
|
|
2295
2456
|
axes="measureAxes"
|
|
2296
2457
|
rounded="full"
|
|
2297
2458
|
[removable]="true"
|
|
2298
|
-
(remove)="onChipRemove(item, 'measure')"
|
|
2459
|
+
(remove)="onChipRemove($event, item, 'measure')"
|
|
2460
|
+
(reorder)="onReorder($event, 'measure', item)"
|
|
2299
2461
|
>
|
|
2300
2462
|
{{ getName(item.name) }}
|
|
2301
2463
|
</kendo-chip>
|
|
@@ -2313,7 +2475,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
|
2313
2475
|
<button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
|
|
2314
2476
|
</div>
|
|
2315
2477
|
</div>
|
|
2316
|
-
`, isInline: true, styles: ["\n .k-form .k-chip-list {\n width: 100%;\n }\n\n .k-form .k-form-field,\n .k-form .k-settings-description {\n padding-top: 1em;\n margin-top: 0;\n }\n\n .k-form.k-form-horizontal .k-form-field,\n .k-form.k-form-horizontal .k-chip-list {\n padding-top: 0;\n padding-left: 16px;\n }\n\n .k-form.k-form-horizontal .k-form-field-wrapper {\n padding-left: 0;\n }\n "], 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"] }] });
|
|
2478
|
+
`, isInline: true, styles: ["\n .k-form .k-chip-list {\n width: 100%;\n }\n\n .k-form .k-form-field,\n .k-form .k-settings-description {\n padding-top: 1em;\n margin-top: 0;\n }\n\n .k-form.k-form-horizontal .k-form-field,\n .k-form.k-form-horizontal .k-chip-list {\n padding-top: 0;\n padding-left: 16px;\n }\n\n .k-form.k-form-horizontal .k-form-field-wrapper {\n padding-left: 0;\n }\n "], 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: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }, { 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"] }] });
|
|
2317
2479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
|
|
2318
2480
|
type: Component,
|
|
2319
2481
|
args: [{
|
|
@@ -2332,31 +2494,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2332
2494
|
}"
|
|
2333
2495
|
>
|
|
2334
2496
|
<div class="k-pivotgrid-configurator-header">
|
|
2335
|
-
<div
|
|
2497
|
+
<div
|
|
2498
|
+
[id]="headerTextId"
|
|
2499
|
+
class="k-pivotgrid-configurator-header-text">{{messageFor('configuratorHeaderText')}}</div>
|
|
2336
2500
|
</div>
|
|
2337
2501
|
|
|
2338
2502
|
<div class="k-pivotgrid-configurator-content">
|
|
2339
2503
|
<div class="k-form" [class.k-form-horizontal]="isHorizontal">
|
|
2340
2504
|
<div class="k-form-field-wrapper">
|
|
2341
2505
|
<div class="k-form-field">
|
|
2342
|
-
<span class="k-label">{{messageFor('configuratorFieldsText')}}</span>
|
|
2506
|
+
<span [id]="contentLabelId('fields')" class="k-label">{{messageFor('configuratorFieldsText')}}</span>
|
|
2343
2507
|
</div>
|
|
2344
|
-
|
|
2345
2508
|
<div class="k-form-field">
|
|
2346
2509
|
<div class="k-fields-list-wrapper">
|
|
2347
2510
|
<kendo-treeview
|
|
2511
|
+
#treeview
|
|
2512
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('fields')"
|
|
2513
|
+
(focus)="treeview.focus()"
|
|
2348
2514
|
[nodes]="fields"
|
|
2349
2515
|
textField="caption"
|
|
2350
2516
|
[children]="children"
|
|
2351
2517
|
[hasChildren]="hasChildren"
|
|
2352
2518
|
kendoTreeViewExpandable
|
|
2353
2519
|
(childrenLoaded)="handleChildrenLoaded($event)"
|
|
2354
|
-
|
|
2520
|
+
(keydown.space)="onTreeViewSelect($event)">
|
|
2355
2521
|
<ng-template kendoTreeViewNodeTemplate let-dataItem>
|
|
2356
2522
|
<input kendoCheckBox
|
|
2357
2523
|
*ngIf="isSelectable(dataItem)"
|
|
2358
2524
|
type="checkbox"
|
|
2359
2525
|
kendoCheckBox
|
|
2526
|
+
tabindex="-1"
|
|
2360
2527
|
[checked]="isItemChecked(dataItem)"
|
|
2361
2528
|
(change)="handleCheckedChange($event, dataItem)"/>
|
|
2362
2529
|
{{ dataItem.caption }}
|
|
@@ -2373,24 +2540,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2373
2540
|
|
|
2374
2541
|
<ng-template #verticalTemplate>
|
|
2375
2542
|
<div class="k-form-field" kendoDropTarget axes="columnAxes">
|
|
2376
|
-
<span class="k-label">{{messageFor('configuratorColumnsText')}}</span>
|
|
2543
|
+
<span [id]="contentLabelId('columns')" class="k-label">{{messageFor('configuratorColumnsText')}}</span>
|
|
2377
2544
|
</div>
|
|
2378
2545
|
|
|
2379
2546
|
<kendo-chiplist
|
|
2380
2547
|
*ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
|
|
2548
|
+
#columnsChiplist
|
|
2381
2549
|
kendoDropTarget
|
|
2382
2550
|
axes="columnAxes"
|
|
2551
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
|
|
2383
2552
|
>
|
|
2384
2553
|
<ng-container *ngFor="let item of state.columnAxes">
|
|
2385
2554
|
<kendo-chip *ngIf="item.name.length === 1"
|
|
2386
2555
|
kendoChipDraggable
|
|
2387
2556
|
kendoDraggable
|
|
2388
2557
|
kendoDropTarget
|
|
2558
|
+
kendoChipKeyboardNavigation
|
|
2389
2559
|
[item]="item"
|
|
2390
2560
|
axes="columnAxes"
|
|
2391
2561
|
rounded="full"
|
|
2392
2562
|
[removable]="true"
|
|
2393
|
-
(remove)="onChipRemove(item, 'column')"
|
|
2563
|
+
(remove)="onChipRemove($event, item, 'column')"
|
|
2564
|
+
(reorder)="onReorder($event, 'column', item)"
|
|
2394
2565
|
>{{ getName(item.name) }}
|
|
2395
2566
|
<kendo-pivot-chip-menu
|
|
2396
2567
|
[chip]="item">
|
|
@@ -2404,24 +2575,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2404
2575
|
</ng-template>
|
|
2405
2576
|
|
|
2406
2577
|
<div class="k-form-field" kendoDropTarget axes="rowAxes">
|
|
2407
|
-
<span class="k-label">{{messageFor('configuratorRowsText')}}</span>
|
|
2578
|
+
<span [id]="contentLabelId('rows')" class="k-label">{{messageFor('configuratorRowsText')}}</span>
|
|
2408
2579
|
</div>
|
|
2409
2580
|
|
|
2410
2581
|
<kendo-chiplist
|
|
2411
2582
|
*ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
|
|
2583
|
+
#rowsChiplist
|
|
2412
2584
|
kendoDropTarget
|
|
2413
2585
|
axes="rowAxes"
|
|
2586
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
|
|
2414
2587
|
>
|
|
2415
2588
|
<ng-container *ngFor="let item of state.rowAxes">
|
|
2416
2589
|
<kendo-chip *ngIf="item.name.length === 1"
|
|
2417
2590
|
kendoChipDraggable
|
|
2418
2591
|
kendoDraggable
|
|
2419
2592
|
kendoDropTarget
|
|
2593
|
+
kendoChipKeyboardNavigation
|
|
2420
2594
|
[item]="item"
|
|
2421
2595
|
axes="rowAxes"
|
|
2422
2596
|
rounded="full"
|
|
2423
2597
|
[removable]="true"
|
|
2424
|
-
(remove)="onChipRemove(item, 'row')"
|
|
2598
|
+
(remove)="onChipRemove($event, item, 'row')"
|
|
2599
|
+
(reorder)="onReorder($event, 'row', item)"
|
|
2425
2600
|
>
|
|
2426
2601
|
{{ getName(item.name) }}
|
|
2427
2602
|
|
|
@@ -2443,23 +2618,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2443
2618
|
|
|
2444
2619
|
<ng-template #verticalMeasuresTemplate>
|
|
2445
2620
|
<div class="k-form-field" kendoDropTarget axes="measureAxes">
|
|
2446
|
-
<span class="k-label">{{messageFor('configuratorValuesText')}}</span>
|
|
2621
|
+
<span [id]="contentLabelId('values')" class="k-label">{{messageFor('configuratorValuesText')}}</span>
|
|
2447
2622
|
</div>
|
|
2448
2623
|
|
|
2449
2624
|
<kendo-chiplist
|
|
2450
2625
|
*ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
|
|
2451
2626
|
kendoDropTarget
|
|
2452
2627
|
axes="measureAxes"
|
|
2628
|
+
[attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
|
|
2453
2629
|
>
|
|
2454
2630
|
<kendo-chip *ngFor="let item of state.measureAxes"
|
|
2455
2631
|
kendoChipDraggable
|
|
2456
2632
|
kendoDraggable
|
|
2457
2633
|
kendoDropTarget
|
|
2634
|
+
kendoChipKeyboardNavigation
|
|
2458
2635
|
[item]="item"
|
|
2459
2636
|
axes="measureAxes"
|
|
2460
2637
|
rounded="full"
|
|
2461
2638
|
[removable]="true"
|
|
2462
|
-
(remove)="onChipRemove(item, 'measure')"
|
|
2639
|
+
(remove)="onChipRemove($event, item, 'measure')"
|
|
2640
|
+
(reorder)="onReorder($event, 'measure', item)"
|
|
2463
2641
|
>
|
|
2464
2642
|
{{ getName(item.name) }}
|
|
2465
2643
|
</kendo-chip>
|
|
@@ -2500,15 +2678,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
2500
2678
|
}
|
|
2501
2679
|
`]
|
|
2502
2680
|
}]
|
|
2503
|
-
}], ctorParameters: function () { return [{ type: PivotGridDataService }, { type: i1.LocalizationService }, { type: ConfiguratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { hostClass: [{
|
|
2681
|
+
}], ctorParameters: function () { return [{ type: PivotGridDataService }, { type: i1.LocalizationService }, { type: ConfiguratorService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { hostClass: [{
|
|
2504
2682
|
type: HostBinding,
|
|
2505
2683
|
args: ['class.k-pivotgrid-configurator']
|
|
2684
|
+
}], hostAriaRole: [{
|
|
2685
|
+
type: HostBinding,
|
|
2686
|
+
args: ['attr.role']
|
|
2687
|
+
}], headerTextId: [{
|
|
2688
|
+
type: HostBinding,
|
|
2689
|
+
args: ['attr.aria-labelledby']
|
|
2506
2690
|
}], orientation: [{
|
|
2507
2691
|
type: Input
|
|
2508
2692
|
}], sort: [{
|
|
2509
2693
|
type: Input
|
|
2510
2694
|
}], filter: [{
|
|
2511
2695
|
type: Input
|
|
2696
|
+
}], navigation: [{
|
|
2697
|
+
type: Input
|
|
2698
|
+
}], close: [{
|
|
2699
|
+
type: Output
|
|
2700
|
+
}], treeView: [{
|
|
2701
|
+
type: ViewChild,
|
|
2702
|
+
args: [TreeViewComponent]
|
|
2703
|
+
}], columnsList: [{
|
|
2704
|
+
type: ViewChild,
|
|
2705
|
+
args: ['columnsChiplist']
|
|
2706
|
+
}], rowsList: [{
|
|
2707
|
+
type: ViewChild,
|
|
2708
|
+
args: ['rowsChiplist']
|
|
2512
2709
|
}] } });
|
|
2513
2710
|
|
|
2514
2711
|
/**
|
|
@@ -2676,7 +2873,7 @@ class PivotGridComponent {
|
|
|
2676
2873
|
this.rtl = rtl;
|
|
2677
2874
|
this.direction = this.rtl ? 'rtl' : 'ltr';
|
|
2678
2875
|
}));
|
|
2679
|
-
dataService.wrapper = hostEl.nativeElement;
|
|
2876
|
+
dataService.wrapper = this.hostEl.nativeElement;
|
|
2680
2877
|
}
|
|
2681
2878
|
get rightPositionClass() {
|
|
2682
2879
|
var _a;
|
|
@@ -2769,10 +2966,32 @@ class PivotGridComponent {
|
|
|
2769
2966
|
messageFor(localizationToken) {
|
|
2770
2967
|
return this.localization.get(localizationToken);
|
|
2771
2968
|
}
|
|
2969
|
+
/**
|
|
2970
|
+
* @hidden
|
|
2971
|
+
*/
|
|
2972
|
+
toggleConfigurator() {
|
|
2973
|
+
this.showConfigurator = !this.showConfigurator;
|
|
2974
|
+
if (!this.navigable) {
|
|
2975
|
+
return;
|
|
2976
|
+
}
|
|
2977
|
+
if (this.showConfigurator) {
|
|
2978
|
+
this.zone.runOutsideAngular(() => setTimeout(() => this.initConfiguratorNavigation()));
|
|
2979
|
+
}
|
|
2980
|
+
else {
|
|
2981
|
+
this.stopConfiguratorNavigation();
|
|
2982
|
+
const el = this.navigation.current;
|
|
2983
|
+
if (el) {
|
|
2984
|
+
this.zone.runOutsideAngular(() => {
|
|
2985
|
+
setTimeout(() => this.navigation.focusElement(el, null));
|
|
2986
|
+
});
|
|
2987
|
+
}
|
|
2988
|
+
;
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2772
2991
|
initNavigation() {
|
|
2773
2992
|
this.stopNavigation();
|
|
2774
2993
|
this.navigation = new PivotGridNavigation({ tabIndex: 0 });
|
|
2775
|
-
this.navigation.start(this.
|
|
2994
|
+
this.navigation.start(this.table.nativeElement);
|
|
2776
2995
|
const firstCell = this.navigation.first;
|
|
2777
2996
|
if (firstCell) {
|
|
2778
2997
|
firstCell.setAttribute('tabindex', '0');
|
|
@@ -2793,6 +3012,21 @@ class PivotGridComponent {
|
|
|
2793
3012
|
this.navigation.stop();
|
|
2794
3013
|
}
|
|
2795
3014
|
}
|
|
3015
|
+
initConfiguratorNavigation() {
|
|
3016
|
+
this.stopConfiguratorNavigation();
|
|
3017
|
+
this.configuratorNavigation = new ConfiguratorNavigation({ tabIndex: 0 });
|
|
3018
|
+
this.configuratorNavigation.start(this.configuratorWrapper.nativeElement);
|
|
3019
|
+
this.configuratorNavigation.first.setAttribute('tabindex', '0');
|
|
3020
|
+
}
|
|
3021
|
+
stopConfiguratorNavigation() {
|
|
3022
|
+
if (this.configuratorNavigation) {
|
|
3023
|
+
const lastFocusedEl = this.configuratorNavigation.elements.find(el => el.hasAttribute('tabindex'));
|
|
3024
|
+
if (lastFocusedEl) {
|
|
3025
|
+
this.renderer.removeAttribute(lastFocusedEl, 'tabindex');
|
|
3026
|
+
}
|
|
3027
|
+
this.configuratorNavigation.stop();
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
2796
3030
|
}
|
|
2797
3031
|
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 });
|
|
2798
3032
|
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: [
|
|
@@ -2803,7 +3037,7 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
2803
3037
|
provide: L10N_PREFIX,
|
|
2804
3038
|
useValue: 'kendo.pivotgrid'
|
|
2805
3039
|
}
|
|
2806
|
-
], viewQueries: [{ propertyName: "colHeadersTable", first: true, predicate: ["colHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "rowHeadersTable", first: true, predicate: ["rowHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "valuesTable", first: true, predicate: ["valuesTable"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
|
|
3040
|
+
], viewQueries: [{ propertyName: "colHeadersTable", first: true, predicate: ["colHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "rowHeadersTable", first: true, predicate: ["rowHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "valuesTable", first: true, predicate: ["valuesTable"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "configuratorWrapper", first: true, predicate: ["configurator"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
|
|
2807
3041
|
<ng-container kendoPivotGridLocalizedMessages
|
|
2808
3042
|
i18n-loading="kendo.pivotgrid.loading|The loading text"
|
|
2809
3043
|
loading="Loading"
|
|
@@ -2927,19 +3161,22 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
2927
3161
|
<span class="k-loading-text">{{ loadingText }}</span>
|
|
2928
3162
|
</div>
|
|
2929
3163
|
</div>
|
|
2930
|
-
|
|
2931
3164
|
<kendo-pivotgrid-configurator
|
|
3165
|
+
#configurator
|
|
2932
3166
|
*ngIf="showConfigurator"
|
|
2933
|
-
[
|
|
3167
|
+
[navigation]="configuratorNavigation"
|
|
3168
|
+
[orientation]="configuratorSettings.orientation"
|
|
3169
|
+
(close)="toggleConfigurator()">
|
|
2934
3170
|
</kendo-pivotgrid-configurator>
|
|
2935
|
-
|
|
2936
3171
|
<div *ngIf="configurator"
|
|
3172
|
+
#configuratorButton
|
|
2937
3173
|
class="k-pivotgrid-configurator-button"
|
|
2938
|
-
|
|
3174
|
+
aria-hidden="true"
|
|
3175
|
+
(click)="toggleConfigurator()">
|
|
2939
3176
|
<span>{{messageFor('configuratorButtonText')}}<span class="k-icon k-i-gear k-color-inherit"></span>
|
|
2940
3177
|
</span>
|
|
2941
3178
|
</div>
|
|
2942
|
-
`, 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: ["orientation", "sort", "filter"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3179
|
+
`, 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: ["orientation", "sort", "filter", "navigation"], outputs: ["close"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2943
3180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PivotGridComponent, decorators: [{
|
|
2944
3181
|
type: Component,
|
|
2945
3182
|
args: [{
|
|
@@ -3077,15 +3314,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
3077
3314
|
<span class="k-loading-text">{{ loadingText }}</span>
|
|
3078
3315
|
</div>
|
|
3079
3316
|
</div>
|
|
3080
|
-
|
|
3081
3317
|
<kendo-pivotgrid-configurator
|
|
3318
|
+
#configurator
|
|
3082
3319
|
*ngIf="showConfigurator"
|
|
3083
|
-
[
|
|
3320
|
+
[navigation]="configuratorNavigation"
|
|
3321
|
+
[orientation]="configuratorSettings.orientation"
|
|
3322
|
+
(close)="toggleConfigurator()">
|
|
3084
3323
|
</kendo-pivotgrid-configurator>
|
|
3085
|
-
|
|
3086
3324
|
<div *ngIf="configurator"
|
|
3325
|
+
#configuratorButton
|
|
3087
3326
|
class="k-pivotgrid-configurator-button"
|
|
3088
|
-
|
|
3327
|
+
aria-hidden="true"
|
|
3328
|
+
(click)="toggleConfigurator()">
|
|
3089
3329
|
<span>{{messageFor('configuratorButtonText')}}<span class="k-icon k-i-gear k-color-inherit"></span>
|
|
3090
3330
|
</span>
|
|
3091
3331
|
</div>
|
|
@@ -3136,6 +3376,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
3136
3376
|
}], table: [{
|
|
3137
3377
|
type: ViewChild,
|
|
3138
3378
|
args: ['table', { read: ElementRef }]
|
|
3379
|
+
}], configuratorWrapper: [{
|
|
3380
|
+
type: ViewChild,
|
|
3381
|
+
args: ['configurator', { read: ElementRef }]
|
|
3139
3382
|
}], loaderSettings: [{
|
|
3140
3383
|
type: Input
|
|
3141
3384
|
}], configurator: [{
|
|
@@ -3245,6 +3488,7 @@ class PivotBaseBindingDirective {
|
|
|
3245
3488
|
this.subs.add(this.dataService.valuesRows.subscribe((data) => {
|
|
3246
3489
|
this.zone.run(() => {
|
|
3247
3490
|
this.dataService.aggregateData = data;
|
|
3491
|
+
this.dataLoaded.emit(data);
|
|
3248
3492
|
});
|
|
3249
3493
|
}));
|
|
3250
3494
|
this.dataService.directive = this;
|
|
@@ -3557,7 +3801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
3557
3801
|
|
|
3558
3802
|
/**
|
|
3559
3803
|
* Custom component messages override default component messages
|
|
3560
|
-
* ([see example]({% slug globalization_pivotgrid %}#toc-
|
|
3804
|
+
* ([see example]({% slug globalization_pivotgrid %}#toc-custom-messages)).
|
|
3561
3805
|
*/
|
|
3562
3806
|
class CustomMessagesComponent extends PivotGridMessages {
|
|
3563
3807
|
constructor(service) {
|
|
@@ -3704,7 +3948,8 @@ const DECLARATIONS = [
|
|
|
3704
3948
|
DraggableChipDirective,
|
|
3705
3949
|
DropTargetDirective,
|
|
3706
3950
|
LocalizedMessagesDirective,
|
|
3707
|
-
CustomMessagesComponent
|
|
3951
|
+
CustomMessagesComponent,
|
|
3952
|
+
ChipKeyboardNavigationDirective
|
|
3708
3953
|
];
|
|
3709
3954
|
const EXPORTS = [
|
|
3710
3955
|
PivotGridComponent,
|
|
@@ -3729,7 +3974,8 @@ PivotGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
3729
3974
|
DraggableChipDirective,
|
|
3730
3975
|
DropTargetDirective,
|
|
3731
3976
|
LocalizedMessagesDirective,
|
|
3732
|
-
CustomMessagesComponent
|
|
3977
|
+
CustomMessagesComponent,
|
|
3978
|
+
ChipKeyboardNavigationDirective], imports: [EventsModule,
|
|
3733
3979
|
IndicatorsModule,
|
|
3734
3980
|
TreeViewModule,
|
|
3735
3981
|
DraggableModule,
|