@progress/kendo-angular-dateinputs 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 +63 -1
- package/codemods/v19/dateinput-minmax.js +49 -0
- package/codemods/v19/dateinputs-rendering-changes.js +21 -0
- package/codemods/v19/datepicker-closebuttontitle.js +50 -0
- package/codemods/v19/datepicker-subtitle.js +5 -2
- package/codemods/v19/datepicker-title.js +3 -0
- package/codemods/v19/daterange-popup-subtitle.js +3 -0
- package/codemods/v19/daterange-popup-title.js +3 -0
- package/codemods/v19/datetimepicker-closebuttontitle.js +50 -0
- package/codemods/v19/datetimepicker-subtitle.js +3 -0
- package/codemods/v19/datetimepicker-title.js +3 -0
- package/codemods/v19/timepicker-closebuttontitle.js +50 -0
- package/codemods/v19/timepicker-subtitle.js +3 -0
- package/codemods/v19/timepicker-title.js +3 -0
- package/codemods/v23/calendar-rendering-changes.js +21 -0
- package/fesm2022/progress-kendo-angular-dateinputs.mjs +2 -2
- package/package-metadata.mjs +2 -2
- package/package.json +52 -20
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,49 @@
|
|
|
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
|
+
const dateinputPattern = /<kendo-dateinput[\s>]/;
|
|
11
|
+
function default_1(fileInfo, api) {
|
|
12
|
+
const filePath = fileInfo.path;
|
|
13
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
14
|
+
return fileInfo.source;
|
|
15
|
+
}
|
|
16
|
+
if (filePath.endsWith('.html')) {
|
|
17
|
+
if (dateinputPattern.test(fileInfo.source)) {
|
|
18
|
+
(0, utils_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
|
|
19
|
+
}
|
|
20
|
+
return fileInfo.source;
|
|
21
|
+
}
|
|
22
|
+
let patternDetected = false;
|
|
23
|
+
(0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => {
|
|
24
|
+
if (dateinputPattern.test(templateContent)) {
|
|
25
|
+
patternDetected = true;
|
|
26
|
+
}
|
|
27
|
+
return templateContent;
|
|
28
|
+
});
|
|
29
|
+
const j = api.jscodeshift;
|
|
30
|
+
const rootSource = j(fileInfo.source);
|
|
31
|
+
const hasImport = (0, utils_1.isImportedFromPackage)(rootSource, j, '@progress/kendo-angular-dateinputs', 'DateInputComponent');
|
|
32
|
+
if (patternDetected || hasImport) {
|
|
33
|
+
(0, utils_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
|
|
34
|
+
}
|
|
35
|
+
return fileInfo.source;
|
|
36
|
+
}
|
|
37
|
+
exports.aiInstructions = `The DateInput 'min' and 'max' inputs now default to January 1, 1900 and December 31, 2099 respectively, matching the defaults of other date input components.
|
|
38
|
+
|
|
39
|
+
Previously, 'min' and 'max' had no defaults (undefined), meaning no date range restriction was applied unless explicitly set.
|
|
40
|
+
If your application relies on the DateInput accepting dates outside the 1900-2099 range, explicitly set 'min' and 'max' to the desired boundary dates:
|
|
41
|
+
|
|
42
|
+
Before (unrestricted range by default):
|
|
43
|
+
<kendo-dateinput [(ngModel)]="value"></kendo-dateinput>
|
|
44
|
+
|
|
45
|
+
After (explicitly set the range if you need values outside 1900-2099):
|
|
46
|
+
<kendo-dateinput [(ngModel)]="value" [min]="minDate" [max]="maxDate"></kendo-dateinput>
|
|
47
|
+
|
|
48
|
+
public minDate: Date = new Date(1000, 0, 1);
|
|
49
|
+
public maxDate: Date = new Date(9999, 11, 31);`;
|
|
@@ -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-overflow-hidden. It has been removed from the k-actionsheet-content element in the DatePicker, DateRangePicker, DateTimePicker, and TimePicker.
|
|
11
|
+
Remove any CSS rules or overrides that target .k-actionsheet-content with the !k-overflow-hidden utility class.`;
|
|
12
|
+
const classes = ['k-overflow-hidden', 'k-actionsheet-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
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
38
|
+
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datepicker', 'clearTitle', 'adaptiveCloseButtonTitle'));
|
|
39
|
+
if (filePath.endsWith('.html')) {
|
|
40
|
+
if (htmlResult && htmlResult !== fileInfo.source) {
|
|
41
|
+
fs.writeFileSync(filePath, htmlResult, 'utf-8');
|
|
42
|
+
return htmlResult;
|
|
43
|
+
}
|
|
44
|
+
return fileInfo.source;
|
|
45
|
+
}
|
|
46
|
+
const j = api.jscodeshift;
|
|
47
|
+
const rootSource = j(htmlResult || fileInfo.source);
|
|
48
|
+
(0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dateinputs', 'DatePickerComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
|
|
49
|
+
return rootSource.toSource();
|
|
50
|
+
}
|
|
@@ -32,8 +32,11 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
|
-
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datepicker', '
|
|
39
|
+
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datepicker', 'subtitle', 'adaptiveSubtitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
38
41
|
if (htmlResult && htmlResult !== fileInfo.source) {
|
|
39
42
|
fs.writeFileSync(filePath, htmlResult, 'utf-8');
|
|
@@ -44,6 +47,6 @@ function default_1(fileInfo, api) {
|
|
|
44
47
|
// Handle TypeScript property transformations
|
|
45
48
|
const j = api.jscodeshift;
|
|
46
49
|
const rootSource = j(htmlResult || fileInfo.source);
|
|
47
|
-
(0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dateinputs', 'DatePickerComponent', '
|
|
50
|
+
(0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dateinputs', 'DatePickerComponent', 'subtitle', 'adaptiveSubtitle');
|
|
48
51
|
return rootSource.toSource();
|
|
49
52
|
}
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datepicker', 'title', 'adaptiveTitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-daterange-popup', 'subtitle', 'adaptiveSubtitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-daterange-popup', 'title', 'adaptiveTitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
38
|
+
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datetimepicker', 'clearTitle', 'adaptiveCloseButtonTitle'));
|
|
39
|
+
if (filePath.endsWith('.html')) {
|
|
40
|
+
if (htmlResult && htmlResult !== fileInfo.source) {
|
|
41
|
+
fs.writeFileSync(filePath, htmlResult, 'utf-8');
|
|
42
|
+
return htmlResult;
|
|
43
|
+
}
|
|
44
|
+
return fileInfo.source;
|
|
45
|
+
}
|
|
46
|
+
const j = api.jscodeshift;
|
|
47
|
+
const rootSource = j(htmlResult || fileInfo.source);
|
|
48
|
+
(0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dateinputs', 'DateTimePickerComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
|
|
49
|
+
return rootSource.toSource();
|
|
50
|
+
}
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datetimepicker', 'subtitle', 'adaptiveSubtitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-datetimepicker', 'title', 'adaptiveTitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
38
|
+
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-timepicker', 'clearTitle', 'adaptiveCloseButtonTitle'));
|
|
39
|
+
if (filePath.endsWith('.html')) {
|
|
40
|
+
if (htmlResult && htmlResult !== fileInfo.source) {
|
|
41
|
+
fs.writeFileSync(filePath, htmlResult, 'utf-8');
|
|
42
|
+
return htmlResult;
|
|
43
|
+
}
|
|
44
|
+
return fileInfo.source;
|
|
45
|
+
}
|
|
46
|
+
const j = api.jscodeshift;
|
|
47
|
+
const rootSource = j(htmlResult || fileInfo.source);
|
|
48
|
+
(0, utils_1.tsPropertyTransformer)(fileInfo.source, rootSource, j, '@progress/kendo-angular-dateinputs', 'TimePickerComponent', 'clearTitle', 'adaptiveCloseButtonTitle');
|
|
49
|
+
return rootSource.toSource();
|
|
50
|
+
}
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-timepicker', 'subtitle', 'adaptiveSubtitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -32,6 +32,9 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const utils_1 = require("../utils");
|
|
33
33
|
function default_1(fileInfo, api) {
|
|
34
34
|
const filePath = fileInfo.path;
|
|
35
|
+
if (!(0, utils_1.isApiChangeTarget)(filePath)) {
|
|
36
|
+
return fileInfo.source;
|
|
37
|
+
}
|
|
35
38
|
// Handle HTML files and inline templates
|
|
36
39
|
const htmlResult = (0, utils_1.htmlTransformer)(fileInfo, api, (templateContent) => (0, utils_1.attributeNameUpdate)(templateContent, 'kendo-timepicker', 'title', 'adaptiveTitle'));
|
|
37
40
|
if (filePath.endsWith('.html')) {
|
|
@@ -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 k-active class. It has been removed from the focused calendar cell.
|
|
11
|
+
Remove any CSS rules or test assertions that target focused calendar cells using .k-active. Use the k-focus class instead to style or query the focused cell.`;
|
|
12
|
+
const classes = ['k-active', 'k-calendar-td'];
|
|
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
|
+
}
|
|
@@ -36,8 +36,8 @@ const packageMetadata = {
|
|
|
36
36
|
productName: 'Kendo UI for Angular',
|
|
37
37
|
productCode: 'KENDOUIANGULAR',
|
|
38
38
|
productCodes: ['KENDOUIANGULAR'],
|
|
39
|
-
publishDate:
|
|
40
|
-
version: '23.4.0-develop.
|
|
39
|
+
publishDate: 1776175458,
|
|
40
|
+
version: '23.4.0-develop.3',
|
|
41
41
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
42
42
|
};
|
|
43
43
|
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "23.4.0-develop.
|
|
10
|
+
"publishDate": 1776175458,
|
|
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-dateinputs",
|
|
3
|
-
"version": "23.4.0-develop.
|
|
3
|
+
"version": "23.4.0-develop.3",
|
|
4
4
|
"description": "Kendo UI for Angular Date Inputs Package - Everything you need to add date selection functionality to apps (DatePicker, TimePicker, DateInput, DateRangePicker, DateTimePicker, Calendar, and MultiViewCalendar).",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -29,49 +29,81 @@
|
|
|
29
29
|
"migrations": {
|
|
30
30
|
"options": {
|
|
31
31
|
"parser": "tsx",
|
|
32
|
-
"pattern": "*.{ts,html}"
|
|
32
|
+
"pattern": "*.{ts,html,css,scss,sass,less}"
|
|
33
33
|
},
|
|
34
34
|
"codemods": {
|
|
35
35
|
"19": [
|
|
36
36
|
{
|
|
37
37
|
"description": "Migrate subtitle to adaptiveSubtitle for datepicker",
|
|
38
38
|
"file": "codemods/v19/datepicker-subtitle.js",
|
|
39
|
-
"prompt": "
|
|
39
|
+
"prompt": "false"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"description": "Migrate title to adaptiveTitle for datepicker",
|
|
43
43
|
"file": "codemods/v19/datepicker-title.js",
|
|
44
|
-
"prompt": "
|
|
44
|
+
"prompt": "false"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"description": "Migrate subtitle to adaptiveSubtitle for daterange-popup",
|
|
48
48
|
"file": "codemods/v19/daterange-popup-subtitle.js",
|
|
49
|
-
"prompt": "
|
|
49
|
+
"prompt": "false"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"description": "Migrate title to adaptiveTitle for daterange-popup",
|
|
53
53
|
"file": "codemods/v19/daterange-popup-title.js",
|
|
54
|
-
"prompt": "
|
|
54
|
+
"prompt": "false"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"description": "Migrate subtitle to adaptiveSubtitle for datetimepicker",
|
|
58
58
|
"file": "codemods/v19/datetimepicker-subtitle.js",
|
|
59
|
-
"prompt": "
|
|
59
|
+
"prompt": "false"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"description": "Migrate title to adaptiveTitle for datetimepicker",
|
|
63
63
|
"file": "codemods/v19/datetimepicker-title.js",
|
|
64
|
-
"prompt": "
|
|
64
|
+
"prompt": "false"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"description": "Migrate subtitle to adaptiveSubtitle for timepicker",
|
|
68
68
|
"file": "codemods/v19/timepicker-subtitle.js",
|
|
69
|
-
"prompt": "
|
|
69
|
+
"prompt": "false"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
"description": "Migrate title to adaptiveTitle for timepicker",
|
|
73
73
|
"file": "codemods/v19/timepicker-title.js",
|
|
74
|
-
"prompt": "
|
|
74
|
+
"prompt": "false"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"description": "The DatePicker's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
|
|
78
|
+
"file": "codemods/v19/datepicker-closebuttontitle.js",
|
|
79
|
+
"prompt": "false"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"description": "The DateTimePicker's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
|
|
83
|
+
"file": "codemods/v19/datetimepicker-closebuttontitle.js",
|
|
84
|
+
"prompt": "false"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"description": "The TimePicker's clearTitle input property is renamed to adaptiveCloseButtonTitle.",
|
|
88
|
+
"file": "codemods/v19/timepicker-closebuttontitle.js",
|
|
89
|
+
"prompt": "false"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"description": "The DateInputs components have rendering changes that may affect custom styling.",
|
|
93
|
+
"file": "codemods/v19/dateinputs-rendering-changes.js",
|
|
94
|
+
"instructionsOnly": true
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"description": "The DateInput min and max inputs now default to January 1, 1900 and December 31, 2099",
|
|
98
|
+
"file": "codemods/v19/dateinput-minmax.js",
|
|
99
|
+
"instructionsOnly": true
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"23": [
|
|
103
|
+
{
|
|
104
|
+
"description": "The Calendar component has rendering changes that may affect custom styling.",
|
|
105
|
+
"file": "codemods/v23/calendar-rendering-changes.js",
|
|
106
|
+
"instructionsOnly": true
|
|
75
107
|
}
|
|
76
108
|
]
|
|
77
109
|
}
|
|
@@ -79,7 +111,7 @@
|
|
|
79
111
|
"package": {
|
|
80
112
|
"productName": "Kendo UI for Angular",
|
|
81
113
|
"productCode": "KENDOUIANGULAR",
|
|
82
|
-
"publishDate":
|
|
114
|
+
"publishDate": 1776175458,
|
|
83
115
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
84
116
|
}
|
|
85
117
|
},
|
|
@@ -90,19 +122,19 @@
|
|
|
90
122
|
"@angular/forms": "19 - 21",
|
|
91
123
|
"@angular/platform-browser": "19 - 21",
|
|
92
124
|
"@progress/kendo-licensing": "^1.10.0",
|
|
93
|
-
"@progress/kendo-angular-buttons": "23.4.0-develop.
|
|
94
|
-
"@progress/kendo-angular-common": "23.4.0-develop.
|
|
95
|
-
"@progress/kendo-angular-utils": "23.4.0-develop.
|
|
96
|
-
"@progress/kendo-angular-intl": "23.4.0-develop.
|
|
97
|
-
"@progress/kendo-angular-l10n": "23.4.0-develop.
|
|
98
|
-
"@progress/kendo-angular-icons": "23.4.0-develop.
|
|
99
|
-
"@progress/kendo-angular-popup": "23.4.0-develop.
|
|
100
|
-
"@progress/kendo-angular-navigation": "23.4.0-develop.
|
|
125
|
+
"@progress/kendo-angular-buttons": "23.4.0-develop.3",
|
|
126
|
+
"@progress/kendo-angular-common": "23.4.0-develop.3",
|
|
127
|
+
"@progress/kendo-angular-utils": "23.4.0-develop.3",
|
|
128
|
+
"@progress/kendo-angular-intl": "23.4.0-develop.3",
|
|
129
|
+
"@progress/kendo-angular-l10n": "23.4.0-develop.3",
|
|
130
|
+
"@progress/kendo-angular-icons": "23.4.0-develop.3",
|
|
131
|
+
"@progress/kendo-angular-popup": "23.4.0-develop.3",
|
|
132
|
+
"@progress/kendo-angular-navigation": "23.4.0-develop.3",
|
|
101
133
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
102
134
|
},
|
|
103
135
|
"dependencies": {
|
|
104
136
|
"tslib": "^2.3.1",
|
|
105
|
-
"@progress/kendo-angular-schematics": "23.4.0-develop.
|
|
137
|
+
"@progress/kendo-angular-schematics": "23.4.0-develop.3",
|
|
106
138
|
"@progress/kendo-common": "^1.0.1",
|
|
107
139
|
"@progress/kendo-date-math": "^1.1.0",
|
|
108
140
|
"@progress/kendo-dateinputs-common": "^0.4.10"
|