@progress/kendo-angular-dropdowns 25.0.0-develop.26 → 25.0.0-develop.28

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.
@@ -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
+ }