@progress/kendo-angular-dropdowns 25.0.0-develop.26 → 25.0.0-develop.27
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/libs/common/src/codemods/utils.js +15 -0
- package/codemods/libs/dropdowns/codemods/v25/dropdowns-rendering-changes.js +41 -0
- package/codemods/libs/dropdowns/codemods/v25/multiselect-summaryTag.js +34 -0
- package/fesm2022/progress-kendo-angular-dropdowns.mjs +2 -2
- package/package-metadata.mjs +2 -2
- package/package.json +22 -11
- package/schematics/ngAdd/index.js +2 -2
|
@@ -13,6 +13,7 @@ exports.writeInstructionMarker = writeInstructionMarker;
|
|
|
13
13
|
exports.isApiChangeTarget = isApiChangeTarget;
|
|
14
14
|
exports.isRenderingChangeTarget = isRenderingChangeTarget;
|
|
15
15
|
exports.executeCodemodTest = executeCodemodTest;
|
|
16
|
+
exports.removeAttributeFromDirectiveHost = removeAttributeFromDirectiveHost;
|
|
16
17
|
const tslib_1 = require("tslib");
|
|
17
18
|
/// <reference types="node" />
|
|
18
19
|
const fs = tslib_1.__importStar(require("fs"));
|
|
@@ -1486,3 +1487,17 @@ function executeCodemodTest(codemod, testDir, exampleFileName = 'example.ts', ex
|
|
|
1486
1487
|
catch { }
|
|
1487
1488
|
}
|
|
1488
1489
|
}
|
|
1490
|
+
function removeAttributeFromDirectiveHost(templateContent, directiveAttr, attrToRemove) {
|
|
1491
|
+
const escapedDirective = directiveAttr.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
1492
|
+
const escapedAttr = attrToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
1493
|
+
const boundPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
1494
|
+
const staticPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
1495
|
+
// Also match when the attribute appears before the directive
|
|
1496
|
+
const boundPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
|
|
1497
|
+
const staticPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
|
|
1498
|
+
let result = templateContent.replace(boundPattern, '$1$3');
|
|
1499
|
+
result = result.replace(staticPattern, '$1$3');
|
|
1500
|
+
result = result.replace(boundPatternBefore, '$1$3');
|
|
1501
|
+
result = result.replace(staticPatternBefore, '$1$3');
|
|
1502
|
+
return result;
|
|
1503
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2026 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.aiInstructions = void 0;
|
|
8
|
+
exports.default = default_1;
|
|
9
|
+
const codemods_1 = require("@progress/kendo-angular-common/codemods");
|
|
10
|
+
exports.aiInstructions = `Review your stylesheets, test files, and any code that references these Dropdowns classes:
|
|
11
|
+
|
|
12
|
+
k-table-tfoot / k-table-row / k-table-td (MultiColumnComboBox) — The footer-template wrapper changed from <table><tfoot><tr><td>…</td></tr></tfoot></table> to a single <span class="k-table-td">…</span>.
|
|
13
|
+
Update selectors targeting .k-table-tfoot or .k-table-row in MultiColumnComboBox footer context.
|
|
14
|
+
|
|
15
|
+
k-icon (DropDownList/DropDownTree/MultiSelectTree/MultiSelect) — removed from the <kendo-icon-wrapper> used for the filter/search icon and "clear" (x) icon.
|
|
16
|
+
Remove selectors targeting .k-icon on dropdown icon wrappers.
|
|
17
|
+
|
|
18
|
+
k-no-data — The "no results" block moved from being a sibling after <kendo-list> to being projected inside the list wrapper.
|
|
19
|
+
Update selectors that rely on .k-no-data being a sibling of the list element.
|
|
20
|
+
|
|
21
|
+
k-text-center (AdaptiveRenderer) — removed from the actionsheet title bar (.k-actionsheet-titlebar).
|
|
22
|
+
Remove selectors targeting .k-text-center in adaptive popup title context.
|
|
23
|
+
|
|
24
|
+
k-searchbox (AdaptiveRenderer) — removed from the adaptive filter <kendo-textbox>.
|
|
25
|
+
Remove selectors targeting .k-searchbox in adaptive popup context.
|
|
26
|
+
|
|
27
|
+
k-list-container (AdaptiveRenderer) — DropDownTree and MultiSelectTree no longer render this wrapper in adaptive view.
|
|
28
|
+
Update selectors that depend on .k-list-container being present in adaptive DropDownTree/MultiSelectTree.
|
|
29
|
+
|
|
30
|
+
k-text-ellipsis (MultiSelect/MultiSelectTree) — removed from the .k-chip-label span.
|
|
31
|
+
Remove selectors targeting .k-text-ellipsis on chip labels.`;
|
|
32
|
+
const classes = ['k-table-tfoot', 'k-no-data', 'k-text-center', 'k-searchbox', 'k-list-container', 'k-text-ellipsis'];
|
|
33
|
+
const pattern = (0, codemods_1.makePattern)(classes);
|
|
34
|
+
function default_1(fileInfo) {
|
|
35
|
+
if ((0, codemods_1.isRenderingChangeTarget)(fileInfo.path)) {
|
|
36
|
+
if (pattern.test(fileInfo.source)) {
|
|
37
|
+
(0, codemods_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return fileInfo.source;
|
|
41
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2026 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.default = default_1;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
10
|
+
const codemods_1 = require("@progress/kendo-angular-common/codemods");
|
|
11
|
+
function transformSummaryTag(templateContent) {
|
|
12
|
+
// Rename bound [kendoMultiSelectSummaryTag]="value" to [summaryTagAfter]="value"
|
|
13
|
+
const boundPattern = /(<kendo-multiselect(?=[\s/>])[^>]*?\s+)\[kendoMultiSelectSummaryTag\]\s*=\s*("(?:[^"\\]|\\.)*?"|'(?:[^'\\]|\\.)*?')([^>]*?>)/gi;
|
|
14
|
+
let result = templateContent.replace(boundPattern, '$1[summaryTagAfter]=$2$3');
|
|
15
|
+
// Convert bare kendoMultiSelectSummaryTag (no value) to [summaryTagAfter]="0"
|
|
16
|
+
const barePattern = /(<kendo-multiselect(?=[\s/>])[^>]*?\s+)kendoMultiSelectSummaryTag(\s+[^>=]|\s*[/>])/gi;
|
|
17
|
+
result = result.replace(barePattern, '$1[summaryTagAfter]="0"$2');
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
function default_1(fileInfo, api) {
|
|
21
|
+
const filePath = fileInfo.path;
|
|
22
|
+
if (!(0, codemods_1.isApiChangeTarget)(filePath)) {
|
|
23
|
+
return fileInfo.source;
|
|
24
|
+
}
|
|
25
|
+
const htmlResult = (0, codemods_1.htmlTransformer)(fileInfo, api, (templateContent) => transformSummaryTag(templateContent));
|
|
26
|
+
if (filePath.endsWith('.html')) {
|
|
27
|
+
if (htmlResult && htmlResult !== fileInfo.source) {
|
|
28
|
+
fs.writeFileSync(filePath, htmlResult, 'utf-8');
|
|
29
|
+
return htmlResult;
|
|
30
|
+
}
|
|
31
|
+
return fileInfo.source;
|
|
32
|
+
}
|
|
33
|
+
return htmlResult || fileInfo.source;
|
|
34
|
+
}
|
|
@@ -37,8 +37,8 @@ const packageMetadata = {
|
|
|
37
37
|
productName: 'Kendo UI for Angular',
|
|
38
38
|
productCode: 'KENDOUIANGULAR',
|
|
39
39
|
productCodes: ['KENDOUIANGULAR'],
|
|
40
|
-
publishDate:
|
|
41
|
-
version: '25.0.0-develop.
|
|
40
|
+
publishDate: 1786387429,
|
|
41
|
+
version: '25.0.0-develop.27',
|
|
42
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
43
43
|
};
|
|
44
44
|
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "25.0.0-develop.
|
|
10
|
+
"publishDate": 1786387429,
|
|
11
|
+
"version": "25.0.0-develop.27",
|
|
12
12
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-dropdowns",
|
|
3
|
-
"version": "25.0.0-develop.
|
|
3
|
+
"version": "25.0.0-develop.27",
|
|
4
4
|
"description": "A wide variety of native Angular dropdown components including AutoComplete, ComboBox, DropDownList, DropDownTree, MultiColumnComboBox, MultiSelect, and MultiSelectTree ",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -115,13 +115,24 @@
|
|
|
115
115
|
"file": "codemods/v21/dropdowns-rendering-changes.js",
|
|
116
116
|
"instructionsOnly": true
|
|
117
117
|
}
|
|
118
|
+
],
|
|
119
|
+
"25": [
|
|
120
|
+
{
|
|
121
|
+
"description": "The kendoMultiSelectSummaryTag directive is replaced by the summaryTagAfter input on MultiSelect.",
|
|
122
|
+
"file": "codemods/v25/multiselect-summaryTag.js"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"description": "The Dropdowns components have rendering changes that may affect custom styling.",
|
|
126
|
+
"file": "codemods/v25/dropdowns-rendering-changes.js",
|
|
127
|
+
"instructionsOnly": true
|
|
128
|
+
}
|
|
118
129
|
]
|
|
119
130
|
}
|
|
120
131
|
},
|
|
121
132
|
"package": {
|
|
122
133
|
"productName": "Kendo UI for Angular",
|
|
123
134
|
"productCode": "KENDOUIANGULAR",
|
|
124
|
-
"publishDate":
|
|
135
|
+
"publishDate": 1786387429,
|
|
125
136
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
126
137
|
}
|
|
127
138
|
},
|
|
@@ -132,19 +143,19 @@
|
|
|
132
143
|
"@angular/forms": "20 - 22",
|
|
133
144
|
"@angular/platform-browser": "20 - 22",
|
|
134
145
|
"@progress/kendo-licensing": "^1.11.0",
|
|
135
|
-
"@progress/kendo-angular-common": "25.0.0-develop.
|
|
136
|
-
"@progress/kendo-angular-utils": "25.0.0-develop.
|
|
137
|
-
"@progress/kendo-angular-l10n": "25.0.0-develop.
|
|
138
|
-
"@progress/kendo-angular-navigation": "25.0.0-develop.
|
|
139
|
-
"@progress/kendo-angular-popup": "25.0.0-develop.
|
|
140
|
-
"@progress/kendo-angular-icons": "25.0.0-develop.
|
|
141
|
-
"@progress/kendo-angular-inputs": "25.0.0-develop.
|
|
142
|
-
"@progress/kendo-angular-treeview": "25.0.0-develop.
|
|
146
|
+
"@progress/kendo-angular-common": "25.0.0-develop.27",
|
|
147
|
+
"@progress/kendo-angular-utils": "25.0.0-develop.27",
|
|
148
|
+
"@progress/kendo-angular-l10n": "25.0.0-develop.27",
|
|
149
|
+
"@progress/kendo-angular-navigation": "25.0.0-develop.27",
|
|
150
|
+
"@progress/kendo-angular-popup": "25.0.0-develop.27",
|
|
151
|
+
"@progress/kendo-angular-icons": "25.0.0-develop.27",
|
|
152
|
+
"@progress/kendo-angular-inputs": "25.0.0-develop.27",
|
|
153
|
+
"@progress/kendo-angular-treeview": "25.0.0-develop.27",
|
|
143
154
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
144
155
|
},
|
|
145
156
|
"dependencies": {
|
|
146
157
|
"tslib": "^2.3.1",
|
|
147
|
-
"@progress/kendo-angular-schematics": "25.0.0-develop.
|
|
158
|
+
"@progress/kendo-angular-schematics": "25.0.0-develop.27",
|
|
148
159
|
"@progress/kendo-common": "^1.0.1"
|
|
149
160
|
},
|
|
150
161
|
"schematics": "./schematics/collection.json",
|
|
@@ -9,9 +9,9 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
9
9
|
function default_1(options) {
|
|
10
10
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
|
|
11
11
|
// peers of the treeview
|
|
12
|
-
'@progress/kendo-angular-inputs': '25.0.0-develop.
|
|
12
|
+
'@progress/kendo-angular-inputs': '25.0.0-develop.27',
|
|
13
13
|
// peers of inputs
|
|
14
|
-
'@progress/kendo-angular-intl': '25.0.0-develop.
|
|
14
|
+
'@progress/kendo-angular-intl': '25.0.0-develop.27',
|
|
15
15
|
'@progress/kendo-drawing': '^1.17.2',
|
|
16
16
|
// Peer dependency of icons
|
|
17
17
|
'@progress/kendo-svg-icons': '^4.0.0'
|