@progress/kendo-angular-charts 23.4.0-develop.3 → 23.4.0
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.
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.aiInstructions = void 0;
|
|
8
8
|
exports.default = default_1;
|
|
9
|
-
const
|
|
9
|
+
const codemods_1 = require("@progress/kendo-angular-common/codemods");
|
|
10
10
|
const classes = ['k-chart', 'k-sankey'];
|
|
11
|
-
const pattern = (0,
|
|
11
|
+
const pattern = (0, codemods_1.makePattern)(classes);
|
|
12
12
|
function default_1(fileInfo) {
|
|
13
|
-
if ((0,
|
|
13
|
+
if ((0, codemods_1.isRenderingChangeTarget)(fileInfo.path)) {
|
|
14
14
|
if (pattern.test(fileInfo.source)) {
|
|
15
|
-
(0,
|
|
15
|
+
(0, codemods_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
return fileInfo.source;
|
|
@@ -3,29 +3,6 @@
|
|
|
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
|
-
};
|
|
29
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
7
|
exports.tsInterfaceTransformer = exports.tsPropertyValueTransformer = exports.tsPropertyTransformer = exports.tsComponentPropertyRemoval = exports.attributeRemoval = exports.attributeValueUpdate = exports.attributeNameValueUpdate = exports.attributeNameUpdate = exports.eventUpdate = exports.htmlTransformer = exports.blockTextElements = void 0;
|
|
31
8
|
exports.hasKendoInTemplate = hasKendoInTemplate;
|
|
@@ -35,8 +12,12 @@ exports.makePattern = makePattern;
|
|
|
35
12
|
exports.writeInstructionMarker = writeInstructionMarker;
|
|
36
13
|
exports.isApiChangeTarget = isApiChangeTarget;
|
|
37
14
|
exports.isRenderingChangeTarget = isRenderingChangeTarget;
|
|
38
|
-
|
|
39
|
-
const
|
|
15
|
+
exports.executeCodemodTest = executeCodemodTest;
|
|
16
|
+
const tslib_1 = require("tslib");
|
|
17
|
+
/// <reference types="node" />
|
|
18
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
19
|
+
const os = tslib_1.__importStar(require("os"));
|
|
20
|
+
const path = tslib_1.__importStar(require("path"));
|
|
40
21
|
exports.blockTextElements = {
|
|
41
22
|
script: true,
|
|
42
23
|
noscript: true,
|
|
@@ -320,12 +301,12 @@ const attributeRemoval = (templateContent, tagName, attributeName, propertyToRem
|
|
|
320
301
|
// If no propertyToRemove is specified, remove the entire attribute
|
|
321
302
|
if (!propertyToRemove) {
|
|
322
303
|
// Remove bound attributes [attribute]="value"
|
|
323
|
-
const boundAttributePattern = new RegExp(`(\\s
|
|
304
|
+
const boundAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
324
305
|
// Remove static attributes attribute="value"
|
|
325
|
-
const staticAttributePattern = new RegExp(`(\\s
|
|
326
|
-
// Apply removals
|
|
327
|
-
let result = templateContent.replace(boundAttributePattern, '');
|
|
328
|
-
result = result.replace(staticAttributePattern, '');
|
|
306
|
+
const staticAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
|
|
307
|
+
// Apply removals - keep tag prefix and suffix, remove the attribute
|
|
308
|
+
let result = templateContent.replace(boundAttributePattern, '$1$3');
|
|
309
|
+
result = result.replace(staticAttributePattern, '$1$3');
|
|
329
310
|
return result;
|
|
330
311
|
}
|
|
331
312
|
// Remove specific property from object literal attributes
|
|
@@ -1428,3 +1409,45 @@ function isRenderingChangeTarget(filePath) {
|
|
|
1428
1409
|
const ext = path.extname(filePath);
|
|
1429
1410
|
return ext === '.ts' || ext === '.html' || ext === '.css' || ext === '.scss' || ext === '.sass' || ext === '.less';
|
|
1430
1411
|
}
|
|
1412
|
+
/**
|
|
1413
|
+
* Executes a codemod transformation and compares the result with expected output
|
|
1414
|
+
*
|
|
1415
|
+
* @param codemod - The codemod function to execute
|
|
1416
|
+
* @param testDir - Directory containing the test files (__dirname from test file)
|
|
1417
|
+
* @param exampleFileName - Name of the input file (default: 'example.ts')
|
|
1418
|
+
* @param expectedFileName - Name of the expected output file (default: 'expected.ts')
|
|
1419
|
+
* @returns Object containing the transformation result and expected content
|
|
1420
|
+
*/
|
|
1421
|
+
function executeCodemodTest(codemod, testDir, exampleFileName = 'example.ts', expectedFileName = 'expected.ts') {
|
|
1422
|
+
const exampleFile = path.join(testDir, exampleFileName);
|
|
1423
|
+
const expectedFile = path.join(testDir, expectedFileName);
|
|
1424
|
+
const sourceCode = fs.readFileSync(exampleFile, 'utf-8');
|
|
1425
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codemod-test-'));
|
|
1426
|
+
const tmpFile = path.join(tmpDir, path.basename(exampleFile));
|
|
1427
|
+
fs.writeFileSync(tmpFile, sourceCode, 'utf-8');
|
|
1428
|
+
try {
|
|
1429
|
+
const fileInfo = {
|
|
1430
|
+
path: tmpFile,
|
|
1431
|
+
source: sourceCode
|
|
1432
|
+
};
|
|
1433
|
+
const jscodeshift = require('jscodeshift').withParser('tsx');
|
|
1434
|
+
const api = {
|
|
1435
|
+
jscodeshift,
|
|
1436
|
+
j: jscodeshift
|
|
1437
|
+
};
|
|
1438
|
+
const result = codemod(fileInfo, api);
|
|
1439
|
+
const expectedContent = fs.readFileSync(expectedFile, 'utf-8').trim();
|
|
1440
|
+
return {
|
|
1441
|
+
result: result?.trim(),
|
|
1442
|
+
expected: expectedContent,
|
|
1443
|
+
sourceCode,
|
|
1444
|
+
transformedSuccessfully: result !== undefined
|
|
1445
|
+
};
|
|
1446
|
+
}
|
|
1447
|
+
finally {
|
|
1448
|
+
try {
|
|
1449
|
+
fs.rmSync(tmpDir, { recursive: true });
|
|
1450
|
+
}
|
|
1451
|
+
catch { }
|
|
1452
|
+
}
|
|
1453
|
+
}
|
|
@@ -2914,8 +2914,8 @@ const packageMetadata = {
|
|
|
2914
2914
|
productName: 'Kendo UI for Angular',
|
|
2915
2915
|
productCode: 'KENDOUIANGULAR',
|
|
2916
2916
|
productCodes: ['KENDOUIANGULAR'],
|
|
2917
|
-
publishDate:
|
|
2918
|
-
version: '23.4.0
|
|
2917
|
+
publishDate: 1777036967,
|
|
2918
|
+
version: '23.4.0',
|
|
2919
2919
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
2920
2920
|
};
|
|
2921
2921
|
|
|
@@ -3980,9 +3980,9 @@ class ChartComponent {
|
|
|
3980
3980
|
}
|
|
3981
3981
|
|
|
3982
3982
|
@if (showLicenseWatermark) {
|
|
3983
|
-
<
|
|
3983
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
3984
3984
|
}
|
|
3985
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedChartMessagesDirective, selector: "[kendoChartLocalizedMessages]" }, { kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3985
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedChartMessagesDirective, selector: "[kendoChartLocalizedMessages]" }, { kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3986
3986
|
}
|
|
3987
3987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ChartComponent, decorators: [{
|
|
3988
3988
|
type: Component,
|
|
@@ -4029,7 +4029,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
4029
4029
|
}
|
|
4030
4030
|
|
|
4031
4031
|
@if (showLicenseWatermark) {
|
|
4032
|
-
<
|
|
4032
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
4033
4033
|
}
|
|
4034
4034
|
`,
|
|
4035
4035
|
standalone: true,
|
|
@@ -6190,9 +6190,9 @@ class StockChartComponent extends ChartComponent {
|
|
|
6190
6190
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
6191
6191
|
|
|
6192
6192
|
@if (showLicenseWatermark) {
|
|
6193
|
-
<
|
|
6193
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
6194
6194
|
}
|
|
6195
|
-
`, isInline: true, dependencies: [{ kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6195
|
+
`, isInline: true, dependencies: [{ kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6196
6196
|
}
|
|
6197
6197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: StockChartComponent, decorators: [{
|
|
6198
6198
|
type: Component,
|
|
@@ -6219,7 +6219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6219
6219
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
6220
6220
|
|
|
6221
6221
|
@if (showLicenseWatermark) {
|
|
6222
|
-
<
|
|
6222
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
6223
6223
|
}
|
|
6224
6224
|
`,
|
|
6225
6225
|
standalone: true,
|
|
@@ -9217,9 +9217,9 @@ class SparklineComponent extends ChartComponent {
|
|
|
9217
9217
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9218
9218
|
|
|
9219
9219
|
@if (showLicenseWatermark) {
|
|
9220
|
-
<
|
|
9220
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
9221
9221
|
}
|
|
9222
|
-
`, isInline: true, dependencies: [{ kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9222
|
+
`, isInline: true, dependencies: [{ kind: "component", type: CrosshairTooltipsContainerComponent, selector: "kendo-chart-crosshair-tooltips-container", inputs: ["popupSettings"] }, { kind: "component", type: TooltipPopupComponent, selector: "kendo-chart-tooltip-popup", inputs: ["animate", "classNames", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9223
9223
|
}
|
|
9224
9224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SparklineComponent, decorators: [{
|
|
9225
9225
|
type: Component,
|
|
@@ -9246,7 +9246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
9246
9246
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9247
9247
|
|
|
9248
9248
|
@if (showLicenseWatermark) {
|
|
9249
|
-
<
|
|
9249
|
+
<kendo-watermark-overlay [licenseMessage]="licenseMessage"></kendo-watermark-overlay>
|
|
9250
9250
|
}
|
|
9251
9251
|
`,
|
|
9252
9252
|
standalone: true,
|
|
@@ -13392,7 +13392,7 @@ class SankeyComponent {
|
|
|
13392
13392
|
@if (showLicenseWatermark) {
|
|
13393
13393
|
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
13394
13394
|
}
|
|
13395
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSankeyLocalizedMessages]" }, { kind: "component", type: SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: ["animate", "wrapperClass", "tooltipUnitFormat", "offset"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13395
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSankeyLocalizedMessages]" }, { kind: "component", type: SankeyTooltipPopupComponent, selector: "kendo-sankey-tooltip-popup", inputs: ["animate", "wrapperClass", "tooltipUnitFormat", "offset"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13396
13396
|
}
|
|
13397
13397
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SankeyComponent, decorators: [{
|
|
13398
13398
|
type: Component,
|
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
|
|
10
|
+
"publishDate": 1777036967,
|
|
11
|
+
"version": "23.4.0",
|
|
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-charts",
|
|
3
|
-
"version": "23.4.0
|
|
3
|
+
"version": "23.4.0",
|
|
4
4
|
"description": "Kendo UI Charts for Angular - A comprehensive package for creating beautiful and interactive data visualization. Every chart type, stock charts, and sparklines are included.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"package": {
|
|
58
58
|
"productName": "Kendo UI for Angular",
|
|
59
59
|
"productCode": "KENDOUIANGULAR",
|
|
60
|
-
"publishDate":
|
|
60
|
+
"publishDate": 1777036967,
|
|
61
61
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
62
62
|
}
|
|
63
63
|
},
|
|
@@ -67,18 +67,18 @@
|
|
|
67
67
|
"@angular/core": "19 - 21",
|
|
68
68
|
"@angular/platform-browser": "19 - 21",
|
|
69
69
|
"@progress/kendo-drawing": "^1.24.1",
|
|
70
|
-
"@progress/kendo-licensing": "^1.
|
|
71
|
-
"@progress/kendo-angular-common": "23.4.0
|
|
72
|
-
"@progress/kendo-angular-intl": "23.4.0
|
|
73
|
-
"@progress/kendo-angular-icons": "23.4.0
|
|
74
|
-
"@progress/kendo-angular-l10n": "23.4.0
|
|
75
|
-
"@progress/kendo-angular-popup": "23.4.0
|
|
76
|
-
"@progress/kendo-angular-navigation": "23.4.0
|
|
70
|
+
"@progress/kendo-licensing": "^1.11.0",
|
|
71
|
+
"@progress/kendo-angular-common": "23.4.0",
|
|
72
|
+
"@progress/kendo-angular-intl": "23.4.0",
|
|
73
|
+
"@progress/kendo-angular-icons": "23.4.0",
|
|
74
|
+
"@progress/kendo-angular-l10n": "23.4.0",
|
|
75
|
+
"@progress/kendo-angular-popup": "23.4.0",
|
|
76
|
+
"@progress/kendo-angular-navigation": "23.4.0",
|
|
77
77
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"tslib": "^2.3.1",
|
|
81
|
-
"@progress/kendo-angular-schematics": "23.4.0
|
|
81
|
+
"@progress/kendo-angular-schematics": "23.4.0",
|
|
82
82
|
"@progress/kendo-charts": "2.11.3",
|
|
83
83
|
"@progress/kendo-svg-icons": "^4.0.0"
|
|
84
84
|
},
|