@progress/kendo-angular-dropdowns 23.4.0-develop.2 → 23.4.0-develop.3

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/utils.js CHANGED
@@ -3,11 +3,40 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
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
+ };
6
29
  Object.defineProperty(exports, "__esModule", { value: true });
7
30
  exports.tsInterfaceTransformer = exports.tsPropertyValueTransformer = exports.tsPropertyTransformer = exports.tsComponentPropertyRemoval = exports.attributeRemoval = exports.attributeValueUpdate = exports.attributeNameValueUpdate = exports.attributeNameUpdate = exports.eventUpdate = exports.htmlTransformer = exports.blockTextElements = void 0;
8
31
  exports.hasKendoInTemplate = hasKendoInTemplate;
9
32
  exports.isImportedFromPackage = isImportedFromPackage;
10
33
  exports.tsPropertyRemoval = tsPropertyRemoval;
34
+ exports.makePattern = makePattern;
35
+ exports.writeInstructionMarker = writeInstructionMarker;
36
+ exports.isApiChangeTarget = isApiChangeTarget;
37
+ exports.isRenderingChangeTarget = isRenderingChangeTarget;
38
+ const fs = __importStar(require("node:fs"));
39
+ const path = __importStar(require("node:path"));
11
40
  exports.blockTextElements = {
12
41
  script: true,
13
42
  noscript: true,
@@ -575,7 +604,7 @@ const tsComponentPropertyRemoval = (source, root, j, packageName, componentType,
575
604
  localVariables.add(path.node.id.name);
576
605
  }
577
606
  });
578
- // Find array variables of type componentType[]
607
+ // Find array variables of type componentType[]
579
608
  // This handles cases like: const arr: ChatComponent[] = [...]; arr[0].property = value;
580
609
  const arrayVariables = new Set();
581
610
  root.find(j.VariableDeclarator).forEach((path) => {
@@ -1366,3 +1395,36 @@ function isComponentTypeMatch(root, j, node, componentType) {
1366
1395
  }
1367
1396
  return false;
1368
1397
  }
1398
+ // Matches CSS class names in CSS selectors (.foo) and as whitespace/quote-delimited
1399
+ // tokens within attribute values, covering both single-class ("foo") and multi-class ("foo bar") cases.
1400
+ function makePattern(classes) {
1401
+ return new RegExp(classes.map(c => String.raw `\.${c}\b|(?<=["'\s])${c}(?=["'\s])`).join('|'));
1402
+ }
1403
+ function writeInstructionMarker(instruction, codemodFilename, affectedFile) {
1404
+ // Write to node_modules/.kendo/migration/<basename(codemodFilename)>
1405
+ // kendo-cli reads the marker by looking up basename(codemod.file) in that directory
1406
+ const markerDir = path.join(process.cwd(), 'node_modules', '.kendo', 'migration');
1407
+ const markerPath = path.join(markerDir, path.basename(codemodFilename));
1408
+ try {
1409
+ fs.mkdirSync(markerDir, { recursive: true });
1410
+ const existing = fs.existsSync(markerPath) ? fs.readFileSync(markerPath, 'utf8') : '';
1411
+ let content = existing;
1412
+ if (!existing.includes(instruction)) {
1413
+ content += instruction + '\n';
1414
+ }
1415
+ const fileLine = ` - ${path.relative(process.cwd(), affectedFile)}`;
1416
+ if (!content.includes(fileLine)) {
1417
+ content += fileLine + '\n';
1418
+ }
1419
+ fs.writeFileSync(markerPath, content);
1420
+ }
1421
+ catch { /* suppress error */ }
1422
+ }
1423
+ function isApiChangeTarget(filePath) {
1424
+ const ext = path.extname(filePath);
1425
+ return ext === '.ts' || ext === '.html';
1426
+ }
1427
+ function isRenderingChangeTarget(filePath) {
1428
+ const ext = path.extname(filePath);
1429
+ return ext === '.ts' || ext === '.html' || ext === '.css' || ext === '.scss' || ext === '.sass' || ext === '.less';
1430
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-autocomplete', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'AutoCompleteComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-combobox', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'ComboBoxComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-dropdownlist', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'DropDownListComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-dropdowntree', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'DropDownTreeComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-multicolumncombobox', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'MultiColumnComboBoxComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-multiselect', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'MultiSelectComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,47 @@
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
+ 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
+ exports.default = default_1;
31
+ const fs = __importStar(require("fs"));
32
+ const utils_1 = require("../utils");
33
+ function default_1(fileInfo, api) {
34
+ const filePath = fileInfo.path;
35
+ const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-multiselecttree', 'clearTitle', 'adaptiveCloseButtonTitle'));
36
+ if (filePath.endsWith('.html')) {
37
+ if (htmlResult && htmlResult !== fileInfo.source) {
38
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
39
+ return htmlResult;
40
+ }
41
+ return fileInfo.source;
42
+ }
43
+ const j = api.jscodeshift;
44
+ const rootSource = j(htmlResult || fileInfo.source);
45
+ (0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dropdowns', 'MultiSelectTreeComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
46
+ return rootSource.toSource();
47
+ }
@@ -0,0 +1,21 @@
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 utils_1 = require("../utils");
10
+ exports.aiInstructions = `Review your stylesheets, test files, and any code that references the class k-list-ul inside k-list-content. The single ul.k-list-ul element is now replaced with multiple ul.k-list-ul elements, one per group, inside div.k-list-content.
11
+ Update any CSS rules or test assertions that assume a single ul.k-list-ul inside .k-list-content.`;
12
+ const classes = ['k-list-ul', 'k-list-content'];
13
+ const pattern = (0, utils_1.makePattern)(classes);
14
+ function default_1(fileInfo) {
15
+ if ((0, utils_1.isRenderingChangeTarget)(fileInfo.path)) {
16
+ if (pattern.test(fileInfo.source)) {
17
+ (0, utils_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
18
+ }
19
+ }
20
+ return fileInfo.source;
21
+ }
@@ -37,8 +37,8 @@ const packageMetadata = {
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCode: 'KENDOUIANGULAR',
39
39
  productCodes: ['KENDOUIANGULAR'],
40
- publishDate: 1776172196,
41
- version: '23.4.0-develop.2',
40
+ publishDate: 1776175466,
41
+ version: '23.4.0-develop.3',
42
42
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
43
43
  };
44
44
 
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1776172196,
11
- "version": "23.4.0-develop.2",
10
+ "publishDate": 1776175466,
11
+ "version": "23.4.0-develop.3",
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": "23.4.0-develop.2",
3
+ "version": "23.4.0-develop.3",
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",
@@ -20,79 +20,121 @@
20
20
  "migrations": {
21
21
  "options": {
22
22
  "parser": "tsx",
23
- "pattern": "*.{ts,html}"
23
+ "pattern": "*.{ts,html,css,scss,sass,less}"
24
24
  },
25
25
  "codemods": {
26
26
  "19": [
27
27
  {
28
28
  "description": "Migrate subtitle to adaptiveSubtitle for autocomplete",
29
29
  "file": "codemods/v19/autocomplete-subtitle.js",
30
- "prompt": "true"
30
+ "prompt": "false"
31
31
  },
32
32
  {
33
33
  "description": "Migrate title to adaptiveTitle for autocomplete",
34
34
  "file": "codemods/v19/autocomplete-title.js",
35
- "prompt": "true"
35
+ "prompt": "false"
36
36
  },
37
37
  {
38
38
  "description": "Migrate subtitle to adaptiveSubtitle for combobox",
39
39
  "file": "codemods/v19/combobox-subtitle.js",
40
- "prompt": "true"
40
+ "prompt": "false"
41
41
  },
42
42
  {
43
43
  "description": "Migrate title to adaptiveTitle for combobox",
44
44
  "file": "codemods/v19/combobox-title.js",
45
- "prompt": "true"
45
+ "prompt": "false"
46
46
  },
47
47
  {
48
48
  "description": "Migrate subtitle to adaptiveSubtitle for dropdownlist",
49
49
  "file": "codemods/v19/dropdownlist-subtitle.js",
50
- "prompt": "true"
50
+ "prompt": "false"
51
51
  },
52
52
  {
53
53
  "description": "Migrate title to adaptiveTitle for dropdownlist",
54
54
  "file": "codemods/v19/dropdownlist-title.js",
55
- "prompt": "true"
55
+ "prompt": "false"
56
56
  },
57
57
  {
58
58
  "description": "Migrate subtitle to adaptiveSubtitle for dropdowntree",
59
59
  "file": "codemods/v19/dropdowntree-subtitle.js",
60
- "prompt": "true"
60
+ "prompt": "false"
61
61
  },
62
62
  {
63
63
  "description": "Migrate title to adaptiveTitle for dropdowntree",
64
64
  "file": "codemods/v19/dropdowntree-title.js",
65
- "prompt": "true"
65
+ "prompt": "false"
66
66
  },
67
67
  {
68
68
  "description": "Migrate subtitle to adaptiveSubtitle for multicolumncombobox",
69
69
  "file": "codemods/v19/multicolumncombobox-subtitle.js",
70
- "prompt": "true"
70
+ "prompt": "false"
71
71
  },
72
72
  {
73
73
  "description": "Migrate title to adaptiveTitle for multicolumncombobox",
74
74
  "file": "codemods/v19/multicolumncombobox-title.js",
75
- "prompt": "true"
75
+ "prompt": "false"
76
76
  },
77
77
  {
78
78
  "description": "Migrate subtitle to adaptiveSubtitle for multiselect",
79
79
  "file": "codemods/v19/multiselect-subtitle.js",
80
- "prompt": "true"
80
+ "prompt": "false"
81
81
  },
82
82
  {
83
83
  "description": "Migrate title to adaptiveTitle for multiselect",
84
84
  "file": "codemods/v19/multiselect-title.js",
85
- "prompt": "true"
85
+ "prompt": "false"
86
86
  },
87
87
  {
88
88
  "description": "Migrate subtitle to adaptiveSubtitle for multiselecttree",
89
89
  "file": "codemods/v19/multiselecttree-subtitle.js",
90
- "prompt": "true"
90
+ "prompt": "false"
91
91
  },
92
92
  {
93
93
  "description": "Migrate title to adaptiveTitle for multiselecttree",
94
94
  "file": "codemods/v19/multiselecttree-title.js",
95
- "prompt": "true"
95
+ "prompt": "false"
96
+ },
97
+ {
98
+ "description": "The AutoComplete's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
99
+ "file": "codemods/v19/autocomplete-closebuttontitle.js",
100
+ "prompt": "false"
101
+ },
102
+ {
103
+ "description": "The ComboBox's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
104
+ "file": "codemods/v19/combobox-closebuttontitle.js",
105
+ "prompt": "false"
106
+ },
107
+ {
108
+ "description": "The DropDownList's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
109
+ "file": "codemods/v19/dropdownlist-closebuttontitle.js",
110
+ "prompt": "false"
111
+ },
112
+ {
113
+ "description": "The DropDownTree's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
114
+ "file": "codemods/v19/dropdowntree-closebuttontitle.js",
115
+ "prompt": "false"
116
+ },
117
+ {
118
+ "description": "The MultiColumnComboBox's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
119
+ "file": "codemods/v19/multicolumncombobox-closebuttontitle.js",
120
+ "prompt": "false"
121
+ },
122
+ {
123
+ "description": "The MultiSelect's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
124
+ "file": "codemods/v19/multiselect-closebuttontitle.js",
125
+ "prompt": "false"
126
+ },
127
+ {
128
+ "description": "The MultiSelectTree's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
129
+ "file": "codemods/v19/multiselecttree-closebuttontitle.js",
130
+ "prompt": "false"
131
+ }
132
+ ],
133
+ "21": [
134
+ {
135
+ "description": "The DropDowns components have rendering changes that may affect custom styling.",
136
+ "file": "codemods/v21/dropdowns-rendering-changes.js",
137
+ "instructionsOnly": true
96
138
  }
97
139
  ]
98
140
  }
@@ -100,7 +142,7 @@
100
142
  "package": {
101
143
  "productName": "Kendo UI for Angular",
102
144
  "productCode": "KENDOUIANGULAR",
103
- "publishDate": 1776172196,
145
+ "publishDate": 1776175466,
104
146
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
105
147
  }
106
148
  },
@@ -111,18 +153,18 @@
111
153
  "@angular/forms": "19 - 21",
112
154
  "@angular/platform-browser": "19 - 21",
113
155
  "@progress/kendo-licensing": "^1.10.0",
114
- "@progress/kendo-angular-common": "23.4.0-develop.2",
115
- "@progress/kendo-angular-utils": "23.4.0-develop.2",
116
- "@progress/kendo-angular-l10n": "23.4.0-develop.2",
117
- "@progress/kendo-angular-navigation": "23.4.0-develop.2",
118
- "@progress/kendo-angular-popup": "23.4.0-develop.2",
119
- "@progress/kendo-angular-icons": "23.4.0-develop.2",
120
- "@progress/kendo-angular-treeview": "23.4.0-develop.2",
156
+ "@progress/kendo-angular-common": "23.4.0-develop.3",
157
+ "@progress/kendo-angular-utils": "23.4.0-develop.3",
158
+ "@progress/kendo-angular-l10n": "23.4.0-develop.3",
159
+ "@progress/kendo-angular-navigation": "23.4.0-develop.3",
160
+ "@progress/kendo-angular-popup": "23.4.0-develop.3",
161
+ "@progress/kendo-angular-icons": "23.4.0-develop.3",
162
+ "@progress/kendo-angular-treeview": "23.4.0-develop.3",
121
163
  "rxjs": "^6.5.3 || ^7.0.0"
122
164
  },
123
165
  "dependencies": {
124
166
  "tslib": "^2.3.1",
125
- "@progress/kendo-angular-schematics": "23.4.0-develop.2",
167
+ "@progress/kendo-angular-schematics": "23.4.0-develop.3",
126
168
  "@progress/kendo-common": "^1.0.1"
127
169
  },
128
170
  "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': '23.4.0-develop.2',
12
+ '@progress/kendo-angular-inputs': '23.4.0-develop.3',
13
13
  // peers of inputs
14
- '@progress/kendo-angular-intl': '23.4.0-develop.2',
14
+ '@progress/kendo-angular-intl': '23.4.0-develop.3',
15
15
  '@progress/kendo-drawing': '^1.17.2',
16
16
  // Peer dependency of icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'