@progress/kendo-angular-grid 19.0.0-develop.23 → 19.0.0-develop.25
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/codemods/template-transformer/index.js +94 -0
- package/codemods/utils.js +131 -0
- package/codemods/v19/grid-kendogridgroupbinding.js +51 -0
- package/codemods/v19/index.js +51 -0
- package/column-menu/column-menu-item.component.d.ts +16 -3
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +33 -11
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
- package/esm2022/grid.component.mjs +65 -9
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +2 -0
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +14 -3
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +1 -0
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +56 -8
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +14 -4
- package/fesm2022/progress-kendo-angular-grid.mjs +192 -44
- package/grid.component.d.ts +13 -0
- package/package.json +41 -21
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +5 -0
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +10 -2
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +5 -0
- package/schematics/ngAdd/index.js +4 -4
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.templateTransformer = void 0;
|
|
8
|
+
const node_html_parser_1 = require("node-html-parser");
|
|
9
|
+
function templateTransformer(root, j, ...processFns) {
|
|
10
|
+
root
|
|
11
|
+
.find(j.ClassDeclaration)
|
|
12
|
+
.forEach(classPath => {
|
|
13
|
+
// Skip if no decorators
|
|
14
|
+
const classNode = classPath.node;
|
|
15
|
+
if (!classNode.decorators || !classNode.decorators.length)
|
|
16
|
+
return;
|
|
17
|
+
// Find Component decorator
|
|
18
|
+
const componentDecorator = classNode.decorators.find((decorator) => {
|
|
19
|
+
if (decorator.expression && decorator.expression.type === 'CallExpression') {
|
|
20
|
+
const callee = decorator.expression.callee;
|
|
21
|
+
// Handle direct Component identifier
|
|
22
|
+
if (callee.type === 'Identifier' && callee.name === 'Component') {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
// Handle angular.core.Component or similar
|
|
26
|
+
if (callee.type === 'MemberExpression' &&
|
|
27
|
+
callee.property &&
|
|
28
|
+
callee.property.type === 'Identifier' &&
|
|
29
|
+
callee.property.name === 'Component') {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
});
|
|
35
|
+
if (!componentDecorator || !componentDecorator.expression)
|
|
36
|
+
return;
|
|
37
|
+
const expression = componentDecorator.expression;
|
|
38
|
+
if (expression.type !== 'CallExpression' || !expression.arguments.length)
|
|
39
|
+
return;
|
|
40
|
+
const componentOptions = expression.arguments[0];
|
|
41
|
+
if (componentOptions.type !== 'ObjectExpression')
|
|
42
|
+
return;
|
|
43
|
+
// Find template and templateUrl properties
|
|
44
|
+
const props = componentOptions.properties || [];
|
|
45
|
+
const templateProp = props.find((prop) => (prop.key.type === 'Identifier' && prop.key.name === 'template') ||
|
|
46
|
+
(prop.key.type === 'StringLiteral' && prop.key.value === 'template'));
|
|
47
|
+
// const templateUrlProp = props.find((prop: any) =>
|
|
48
|
+
// (prop.key.type === 'Identifier' && prop.key.name === 'templateUrl') ||
|
|
49
|
+
// (prop.key.type === 'StringLiteral' && prop.key.value === 'templateUrl')
|
|
50
|
+
// );
|
|
51
|
+
// Process inline template
|
|
52
|
+
if (templateProp) {
|
|
53
|
+
// Extract template based on node type
|
|
54
|
+
let originalTemplate;
|
|
55
|
+
if (templateProp.value.type === 'StringLiteral' || templateProp.value.type === 'Literal') {
|
|
56
|
+
originalTemplate = templateProp.value.value;
|
|
57
|
+
}
|
|
58
|
+
else if (templateProp.value.type === 'TemplateLiteral') {
|
|
59
|
+
// For template literals, join quasis
|
|
60
|
+
if (templateProp.value.quasis && templateProp.value.quasis.length) {
|
|
61
|
+
originalTemplate = templateProp.value.quasis
|
|
62
|
+
.map((q) => q.value.cooked || q.value.raw)
|
|
63
|
+
.join('');
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.warn('Could not process TemplateLiteral properly');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.warn(`Unsupported template type: ${templateProp.value.type}`);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const root = (0, node_html_parser_1.parse)(originalTemplate);
|
|
75
|
+
processFns.forEach(fn => {
|
|
76
|
+
fn(root);
|
|
77
|
+
});
|
|
78
|
+
// Transform template using Angular compiler
|
|
79
|
+
const transformedTemplate = root.toString();
|
|
80
|
+
if (transformedTemplate !== originalTemplate) {
|
|
81
|
+
// Update template property
|
|
82
|
+
if (templateProp.value.type === 'TemplateLiteral') {
|
|
83
|
+
// For template literals, create a new template literal
|
|
84
|
+
templateProp.value = j.templateLiteral([j.templateElement({ cooked: transformedTemplate, raw: transformedTemplate }, true)], []);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// For string literals, update the value
|
|
88
|
+
templateProp.value.value = transformedTemplate;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.templateTransformer = templateTransformer;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.htmlAttributeTransformer = exports.tsPropertyTransformer = exports.templateAttributeTransformer = void 0;
|
|
11
|
+
const node_html_parser_1 = __importDefault(require("node-html-parser"));
|
|
12
|
+
const templateAttributeTransformer = (root, tagName, attributeName, newAttributeName) => {
|
|
13
|
+
const elements = Array.from(root.getElementsByTagName(tagName)) || [];
|
|
14
|
+
for (const element of elements) {
|
|
15
|
+
// Handle bound attributes like [title]="foo" or [title]="'foo'"
|
|
16
|
+
const boundAttr = element.getAttribute(`[${attributeName}]`);
|
|
17
|
+
if (boundAttr) {
|
|
18
|
+
element.setAttribute(`[${newAttributeName}]`, boundAttr);
|
|
19
|
+
element.removeAttribute(`[${attributeName}]`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.templateAttributeTransformer = templateAttributeTransformer;
|
|
24
|
+
const tsPropertyTransformer = (root, j, componentType, propertyName, newPropertyName) => {
|
|
25
|
+
// Find all class properties that are of type DropDownListComponent
|
|
26
|
+
const properties = new Set();
|
|
27
|
+
// Find properties with type annotations
|
|
28
|
+
root
|
|
29
|
+
.find(j.ClassProperty, {
|
|
30
|
+
typeAnnotation: {
|
|
31
|
+
typeAnnotation: {
|
|
32
|
+
typeName: {
|
|
33
|
+
name: componentType
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
.forEach(path => {
|
|
39
|
+
if (path.node.key.type === 'Identifier') {
|
|
40
|
+
properties.add(path.node.key.name);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// Find function parameters of type componentType
|
|
44
|
+
const parameters = new Set();
|
|
45
|
+
root
|
|
46
|
+
.find(j.FunctionDeclaration)
|
|
47
|
+
.forEach(path => {
|
|
48
|
+
if (path.node.params) {
|
|
49
|
+
path.node.params.forEach(param => {
|
|
50
|
+
if (param.type === 'Identifier' &&
|
|
51
|
+
param.typeAnnotation &&
|
|
52
|
+
param.typeAnnotation.typeAnnotation?.type === 'TSTypeReference' &&
|
|
53
|
+
param.typeAnnotation.typeAnnotation.typeName.type === 'Identifier' &&
|
|
54
|
+
param.typeAnnotation.typeAnnotation.typeName.name === componentType) {
|
|
55
|
+
parameters.add(param.name);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
// Also check method declarations in classes
|
|
61
|
+
root
|
|
62
|
+
.find(j.ClassMethod)
|
|
63
|
+
.forEach(path => {
|
|
64
|
+
if (path.node.params) {
|
|
65
|
+
path.node.params.forEach(param => {
|
|
66
|
+
if (param.type === 'Identifier' &&
|
|
67
|
+
param.typeAnnotation &&
|
|
68
|
+
param.typeAnnotation.typeAnnotation?.type === 'TSTypeReference' &&
|
|
69
|
+
param.typeAnnotation.typeAnnotation.typeName.type === 'Identifier' &&
|
|
70
|
+
param.typeAnnotation.typeAnnotation.typeName.name === componentType) {
|
|
71
|
+
parameters.add(param.name);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
// Find all member expressions where title property is accessed on any componentType instance
|
|
77
|
+
root
|
|
78
|
+
.find(j.MemberExpression, {
|
|
79
|
+
property: {
|
|
80
|
+
type: 'Identifier',
|
|
81
|
+
name: propertyName
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
.filter(path => {
|
|
85
|
+
// Filter to only include accesses on properties that are componentType instances
|
|
86
|
+
if (path.node.object.type === 'MemberExpression' &&
|
|
87
|
+
path.node.object.property.type === 'Identifier') {
|
|
88
|
+
// handle properties of this
|
|
89
|
+
if (path.node.object.object.type === 'ThisExpression' &&
|
|
90
|
+
properties.has(path.node.object.property.name)) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Handle function parameters
|
|
95
|
+
if (path.node.object.type === 'Identifier' &&
|
|
96
|
+
parameters.has(path.node.object.name)) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
})
|
|
101
|
+
.forEach(path => {
|
|
102
|
+
// Replace old property name with new property name
|
|
103
|
+
if (path.node.property.type === 'Identifier') {
|
|
104
|
+
path.node.property.name = newPropertyName;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
exports.tsPropertyTransformer = tsPropertyTransformer;
|
|
109
|
+
const htmlAttributeTransformer = (fileInfo, tagName, oldName, newName) => {
|
|
110
|
+
const fileContent = fileInfo.source;
|
|
111
|
+
const root = (0, node_html_parser_1.default)(fileContent);
|
|
112
|
+
let modified = false;
|
|
113
|
+
// Locate elements using [oldName] binding and update the old attribute to the new one
|
|
114
|
+
const elements = Array.from(root.querySelectorAll(tagName));
|
|
115
|
+
for (const element of elements) {
|
|
116
|
+
const boundTitleAttr = element.getAttribute(`[${oldName}]`);
|
|
117
|
+
if (boundTitleAttr) {
|
|
118
|
+
element.removeAttribute(`[${oldName}]`);
|
|
119
|
+
element.setAttribute(`[${newName}]`, boundTitleAttr);
|
|
120
|
+
modified = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Return modified content if changes were made
|
|
124
|
+
if (modified) {
|
|
125
|
+
const updatedContent = root.toString();
|
|
126
|
+
return updatedContent;
|
|
127
|
+
}
|
|
128
|
+
// Return original content if no changes were made or if there was an error
|
|
129
|
+
return fileContent;
|
|
130
|
+
};
|
|
131
|
+
exports.htmlAttributeTransformer = htmlAttributeTransformer;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const template_transformer_1 = require("../template-transformer");
|
|
31
|
+
const fs = __importStar(require("fs"));
|
|
32
|
+
const utils_1 = require("../utils");
|
|
33
|
+
function default_1(fileInfo, api) {
|
|
34
|
+
const filePath = fileInfo.path;
|
|
35
|
+
// Check if the file is an HTML file
|
|
36
|
+
if (filePath.endsWith('.html')) {
|
|
37
|
+
let updatedContent = fileInfo.source;
|
|
38
|
+
updatedContent = (0, utils_1.htmlAttributeTransformer)({ ...fileInfo, source: updatedContent }, 'kendo-grid', 'kendoGridGroupBinding', 'kendoGridBinding');
|
|
39
|
+
// Only write to file once after all transformations
|
|
40
|
+
fs.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const j = api.jscodeshift;
|
|
44
|
+
const rootSource = j(fileInfo.source);
|
|
45
|
+
(0, template_transformer_1.templateTransformer)(rootSource, j, (root) => {
|
|
46
|
+
// Using node-html-parser to parse and manipulate the template: https://github.com/taoqf/node-html-parser
|
|
47
|
+
(0, utils_1.templateAttributeTransformer)(root, 'kendo-grid', 'kendoGridGroupBinding', 'kendoGridBinding');
|
|
48
|
+
});
|
|
49
|
+
return rootSource.toSource();
|
|
50
|
+
}
|
|
51
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
"use strict";
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const template_transformer_1 = require("../template-transformer");
|
|
31
|
+
const fs = __importStar(require("fs"));
|
|
32
|
+
const utils_1 = require("../utils");
|
|
33
|
+
function default_1(fileInfo, api) {
|
|
34
|
+
const filePath = fileInfo.path;
|
|
35
|
+
// Check if the file is an HTML file
|
|
36
|
+
if (filePath.endsWith('.html')) {
|
|
37
|
+
let updatedContent = fileInfo.source;
|
|
38
|
+
updatedContent = (0, utils_1.htmlAttributeTransformer)({ ...fileInfo, source: updatedContent }, 'kendo-grid', 'kendoGridGroupBinding', 'kendoGridBinding');
|
|
39
|
+
// Only write to file once after all transformations
|
|
40
|
+
fs.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const j = api.jscodeshift;
|
|
44
|
+
const rootSource = j(fileInfo.source);
|
|
45
|
+
(0, template_transformer_1.templateTransformer)(rootSource, j, (root) => {
|
|
46
|
+
// Using node-html-parser to parse and manipulate the template: https://github.com/taoqf/node-html-parser
|
|
47
|
+
(0, utils_1.templateAttributeTransformer)(root, 'kendo-grid', 'kendoGridGroupBinding', 'kendoGridBinding');
|
|
48
|
+
});
|
|
49
|
+
return rootSource.toSource();
|
|
50
|
+
}
|
|
51
|
+
exports.default = default_1;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { EventEmitter, OnChanges, AfterViewInit, NgZone } from '@angular/core';
|
|
5
|
+
import { EventEmitter, OnChanges, AfterViewInit, NgZone, ElementRef } from '@angular/core';
|
|
6
6
|
import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
|
|
7
7
|
import { SVGIcon } from '@progress/kendo-svg-icons';
|
|
8
8
|
import { ColumnMenuService } from './column-menu.service';
|
|
@@ -28,6 +28,7 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
28
28
|
private ngZone;
|
|
29
29
|
ctx: ContextService;
|
|
30
30
|
adaptiveGridService: AdaptiveGridService;
|
|
31
|
+
element: ElementRef;
|
|
31
32
|
/**
|
|
32
33
|
* @hidden
|
|
33
34
|
*/
|
|
@@ -57,6 +58,14 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
57
58
|
* Defines the [SVG icon](slug:svgicon_list) to be rendered within the item.
|
|
58
59
|
*/
|
|
59
60
|
svgIcon: SVGIcon;
|
|
61
|
+
/**
|
|
62
|
+
* @hidden
|
|
63
|
+
*/
|
|
64
|
+
indicatorIcon: string;
|
|
65
|
+
/**
|
|
66
|
+
* @hidden
|
|
67
|
+
*/
|
|
68
|
+
indicatorSVGIcon: SVGIcon;
|
|
60
69
|
/**
|
|
61
70
|
* Specifies the item text.
|
|
62
71
|
*/
|
|
@@ -73,6 +82,10 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
73
82
|
* Specifies if the item is expanded.
|
|
74
83
|
*/
|
|
75
84
|
expanded: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* @hidden
|
|
87
|
+
*/
|
|
88
|
+
focused: boolean;
|
|
76
89
|
/**
|
|
77
90
|
* Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) class.
|
|
78
91
|
* Required to include the item in the column menu keyboard navigation sequence.
|
|
@@ -95,7 +108,7 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
95
108
|
get hasFilters(): boolean;
|
|
96
109
|
get expandedIcon(): string;
|
|
97
110
|
get expandedSvgIcon(): SVGIcon;
|
|
98
|
-
constructor(ngZone: NgZone, ctx: ContextService, adaptiveGridService: AdaptiveGridService);
|
|
111
|
+
constructor(ngZone: NgZone, ctx: ContextService, adaptiveGridService: AdaptiveGridService, element: ElementRef);
|
|
99
112
|
ngAfterViewInit(): void;
|
|
100
113
|
ngOnChanges(changes: any): void;
|
|
101
114
|
/**
|
|
@@ -116,5 +129,5 @@ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges
|
|
|
116
129
|
onClick(e: any): void;
|
|
117
130
|
private updateContentState;
|
|
118
131
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuItemComponent, never>;
|
|
119
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-grid-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "service": { "alias": "service"; "required": false; }; "column": { "alias": "column"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
|
|
132
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-grid-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "indicatorIcon": { "alias": "indicatorIcon"; "required": false; }; "indicatorSVGIcon": { "alias": "indicatorSVGIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "service": { "alias": "service"; "required": false; }; "column": { "alias": "column"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
|
|
120
133
|
}
|
|
@@ -660,7 +660,7 @@ export class AdaptiveRendererComponent {
|
|
|
660
660
|
{{messageFor('filterFilterButton')}}
|
|
661
661
|
</button>
|
|
662
662
|
</ng-template>
|
|
663
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "component", type: ActionSheetViewComponent, selector: "kendo-actionsheet-view", inputs: ["title", "subtitle", "titleId"] }, { kind: "component", type: FilterToolbarToolComponent, selector: "kendo-filter-toolbar-tool", outputs: ["close"] }, { kind: "component", type: ButtonDirective, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]" }, { kind: "directive", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]" }, { kind: "directive", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]" }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }] });
|
|
663
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "component", type: ActionSheetViewComponent, selector: "kendo-actionsheet-view", inputs: ["title", "subtitle", "titleId"] }, { kind: "component", type: FilterToolbarToolComponent, selector: "kendo-filter-toolbar-tool", outputs: ["close"] }, { kind: "component", type: ButtonDirective, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]" }, { kind: "directive", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]" }, { kind: "directive", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]" }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: FormComponent, selector: "kendo-grid-external-form", inputs: ["controls", "formSettings", "formGroup", "actionButtons"], outputs: ["formSubmit"] }] });
|
|
664
664
|
}
|
|
665
665
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
|
|
666
666
|
type: Component,
|
|
@@ -58,7 +58,7 @@ export class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
58
58
|
[svgIcon]="displayInlineFlexIcon"
|
|
59
59
|
(itemClick)="autoSizeAllColumns()"
|
|
60
60
|
></kendo-grid-columnmenu-item>
|
|
61
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
61
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
62
62
|
}
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeAllColumnsComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
@@ -64,7 +64,7 @@ export class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
64
64
|
[svgIcon]="maxWidthIcon"
|
|
65
65
|
(itemClick)="autoSizeColumn()"
|
|
66
66
|
></kendo-grid-columnmenu-item>
|
|
67
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
67
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuAutoSizeColumnComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -118,7 +118,7 @@ export class ColumnMenuChooserComponent extends ColumnMenuItemBase {
|
|
|
118
118
|
</kendo-grid-columnlist>
|
|
119
119
|
</ng-template>
|
|
120
120
|
</kendo-grid-columnmenu-item>
|
|
121
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
121
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
122
122
|
}
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
@@ -97,7 +97,7 @@ export class ColumnMenuFilterComponent extends ColumnMenuItemBase {
|
|
|
97
97
|
</kendo-grid-filter-menu-container>
|
|
98
98
|
</ng-template>
|
|
99
99
|
</kendo-grid-columnmenu-item>
|
|
100
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
|
|
100
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }] });
|
|
101
101
|
}
|
|
102
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuFilterComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, Input, Output, EventEmitter, ContentChild, NgZone } from '@angular/core';
|
|
5
|
+
import { Component, Input, Output, EventEmitter, ContentChild, NgZone, ElementRef } from '@angular/core';
|
|
6
6
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
7
7
|
import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
|
|
8
8
|
import { chevronDownIcon, chevronRightIcon, chevronUpIcon, filterIcon, sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
|
|
@@ -37,6 +37,7 @@ export class ColumnMenuItemComponent {
|
|
|
37
37
|
ngZone;
|
|
38
38
|
ctx;
|
|
39
39
|
adaptiveGridService;
|
|
40
|
+
element;
|
|
40
41
|
/**
|
|
41
42
|
* @hidden
|
|
42
43
|
*/
|
|
@@ -66,6 +67,14 @@ export class ColumnMenuItemComponent {
|
|
|
66
67
|
* Defines the [SVG icon](slug:svgicon_list) to be rendered within the item.
|
|
67
68
|
*/
|
|
68
69
|
svgIcon;
|
|
70
|
+
/**
|
|
71
|
+
* @hidden
|
|
72
|
+
*/
|
|
73
|
+
indicatorIcon;
|
|
74
|
+
/**
|
|
75
|
+
* @hidden
|
|
76
|
+
*/
|
|
77
|
+
indicatorSVGIcon;
|
|
69
78
|
/**
|
|
70
79
|
* Specifies the item text.
|
|
71
80
|
*/
|
|
@@ -82,6 +91,10 @@ export class ColumnMenuItemComponent {
|
|
|
82
91
|
* Specifies if the item is expanded.
|
|
83
92
|
*/
|
|
84
93
|
expanded;
|
|
94
|
+
/**
|
|
95
|
+
* @hidden
|
|
96
|
+
*/
|
|
97
|
+
focused;
|
|
85
98
|
/**
|
|
86
99
|
* Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) class.
|
|
87
100
|
* Required to include the item in the column menu keyboard navigation sequence.
|
|
@@ -116,10 +129,11 @@ export class ColumnMenuItemComponent {
|
|
|
116
129
|
}
|
|
117
130
|
return this.expanded ? this.chevronUpIcon : this.chevronDownIcon;
|
|
118
131
|
}
|
|
119
|
-
constructor(ngZone, ctx, adaptiveGridService) {
|
|
132
|
+
constructor(ngZone, ctx, adaptiveGridService, element) {
|
|
120
133
|
this.ngZone = ngZone;
|
|
121
134
|
this.ctx = ctx;
|
|
122
135
|
this.adaptiveGridService = adaptiveGridService;
|
|
136
|
+
this.element = element;
|
|
123
137
|
}
|
|
124
138
|
ngAfterViewInit() {
|
|
125
139
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
@@ -177,8 +191,8 @@ export class ColumnMenuItemComponent {
|
|
|
177
191
|
updateContentState() {
|
|
178
192
|
this.contentState = this.expanded ? 'expanded' : 'collapsed';
|
|
179
193
|
}
|
|
180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
194
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuItemComponent, deps: [{ token: i0.NgZone }, { token: i1.ContextService }, { token: i2.AdaptiveGridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
195
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuItemComponent, isStandalone: true, selector: "kendo-grid-columnmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", indicatorIcon: "indicatorIcon", indicatorSVGIcon: "indicatorSVGIcon", text: "text", selected: "selected", disabled: "disabled", expanded: "expanded", focused: "focused", service: "service", column: "column" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ColumnMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
182
196
|
<div *ngIf="contentTemplate; else content" class="k-expander">
|
|
183
197
|
<ng-container [ngTemplateOutlet]="content"></ng-container>
|
|
184
198
|
</div>
|
|
@@ -190,6 +204,7 @@ export class ColumnMenuItemComponent {
|
|
|
190
204
|
(keydown.enter)="onClick($event)"
|
|
191
205
|
[class.k-selected]="selected"
|
|
192
206
|
[class.k-disabled]="disabled"
|
|
207
|
+
[class.k-focus]="focused"
|
|
193
208
|
role="button"
|
|
194
209
|
[attr.aria-expanded]="expanded"
|
|
195
210
|
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
@@ -198,11 +213,11 @@ export class ColumnMenuItemComponent {
|
|
|
198
213
|
[name]="icon"
|
|
199
214
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
200
215
|
{{ text }}
|
|
201
|
-
<span *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir"
|
|
216
|
+
<span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
|
|
202
217
|
class="k-columnmenu-indicators">
|
|
203
218
|
<kendo-icon-wrapper
|
|
204
|
-
[name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
205
|
-
[svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
219
|
+
[name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
220
|
+
[svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
206
221
|
</kendo-icon-wrapper>
|
|
207
222
|
<span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
|
|
208
223
|
</span>
|
|
@@ -288,6 +303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
288
303
|
(keydown.enter)="onClick($event)"
|
|
289
304
|
[class.k-selected]="selected"
|
|
290
305
|
[class.k-disabled]="disabled"
|
|
306
|
+
[class.k-focus]="focused"
|
|
291
307
|
role="button"
|
|
292
308
|
[attr.aria-expanded]="expanded"
|
|
293
309
|
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
@@ -296,11 +312,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
296
312
|
[name]="icon"
|
|
297
313
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
298
314
|
{{ text }}
|
|
299
|
-
<span *ngIf="ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir"
|
|
315
|
+
<span *ngIf="(ctx.grid.isActionSheetExpanded && adaptiveGridService.viewType === 'sortToolbarTool' && sortDescriptor(column.field).dir) || indicatorIcon || indicatorSVGIcon"
|
|
300
316
|
class="k-columnmenu-indicators">
|
|
301
317
|
<kendo-icon-wrapper
|
|
302
|
-
[name]="sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
303
|
-
[svgIcon]="sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
318
|
+
[name]="indicatorIcon ? indicatorIcon : sortDescriptor(column.field).dir === 'asc' ? 'sort-asc-small' : 'sort-desc-small'"
|
|
319
|
+
[svgIcon]="indicatorSVGIcon ? indicatorSVGIcon : sortDescriptor(column.field).dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon">
|
|
304
320
|
</kendo-icon-wrapper>
|
|
305
321
|
<span *ngIf="showSortNumbering(column)" class="k-sort-index">{{sortOrder(column.field)}}</span>
|
|
306
322
|
</span>
|
|
@@ -327,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
327
343
|
standalone: true,
|
|
328
344
|
imports: [IconWrapperComponent, NgIf, NgTemplateOutlet]
|
|
329
345
|
}]
|
|
330
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ContextService }, { type: i2.AdaptiveGridService }]; }, propDecorators: { itemClick: [{
|
|
346
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ContextService }, { type: i2.AdaptiveGridService }, { type: i0.ElementRef }]; }, propDecorators: { itemClick: [{
|
|
331
347
|
type: Output
|
|
332
348
|
}], expand: [{
|
|
333
349
|
type: Output
|
|
@@ -337,6 +353,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
337
353
|
type: Input
|
|
338
354
|
}], svgIcon: [{
|
|
339
355
|
type: Input
|
|
356
|
+
}], indicatorIcon: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], indicatorSVGIcon: [{
|
|
359
|
+
type: Input
|
|
340
360
|
}], text: [{
|
|
341
361
|
type: Input
|
|
342
362
|
}], selected: [{
|
|
@@ -345,6 +365,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
345
365
|
type: Input
|
|
346
366
|
}], expanded: [{
|
|
347
367
|
type: Input
|
|
368
|
+
}], focused: [{
|
|
369
|
+
type: Input
|
|
348
370
|
}], service: [{
|
|
349
371
|
type: Input
|
|
350
372
|
}], column: [{
|
|
@@ -89,7 +89,7 @@ export class ColumnMenuLockComponent extends ColumnMenuItemBase {
|
|
|
89
89
|
(itemClick)="toggleColumn()"
|
|
90
90
|
[disabled]="disabled">
|
|
91
91
|
</kendo-grid-columnmenu-item>
|
|
92
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
92
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
93
93
|
}
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuLockComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
@@ -138,7 +138,7 @@ export class ColumnMenuPositionComponent extends ColumnMenuItemBase {
|
|
|
138
138
|
</kendo-grid-columnmenu-stick>
|
|
139
139
|
</ng-template>
|
|
140
140
|
</kendo-grid-columnmenu-item>
|
|
141
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
|
|
141
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }] });
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuPositionComponent, decorators: [{
|
|
144
144
|
type: Component,
|