@sap/ux-specification 1.139.7 → 1.139.9
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/CHANGELOG.md +169 -87
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +280 -274
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/AnalyticalListPageConfig.json +3 -3
- package/dist/schemas/v2/ListReportConfig.json +5 -5
- package/dist/schemas/v2/ListReportNewConfig.json +1 -1
- package/dist/schemas/v2/ObjectPageConfig.json +5 -5
- package/dist/schemas/v4/ApplicationV4.json +1 -1
- package/dist/schemas/v4/BuildingBlocksConfig.json +96 -6
- package/dist/schemas/v4/ListReportConfig.json +24 -6
- package/dist/schemas/v4/ObjectPageConfig.json +32 -8
- package/dist/specification/package.json +14 -12
- package/dist/specification/scripts/extractDocu.js +18 -1
- package/dist/specification/scripts/extractDocu.js.map +1 -1
- package/dist/specification/scripts/generate-validity-report.d.ts +15 -0
- package/dist/specification/scripts/generate-validity-report.d.ts.map +1 -0
- package/dist/specification/scripts/generate-validity-report.js +367 -0
- package/dist/specification/scripts/generate-validity-report.js.map +1 -0
- package/dist/specification/scripts/macros/corrections.d.ts +40 -0
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +114 -7
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +14 -1
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/macros/types.d.ts +1 -0
- package/dist/specification/scripts/macros/types.d.ts.map +1 -1
- package/dist/specification/src/api.js +1 -1
- package/dist/specification/src/i18n/i18n.d.ts.map +1 -1
- package/dist/specification/src/i18n/i18n.js +2 -1
- package/dist/specification/src/i18n/i18n.js.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +8 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +10 -7
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +503 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +497 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +116 -24
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +308 -78
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.d.ts +1 -0
- package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.js +1 -0
- package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
- package/dist/specification/src/sync/common/dist_tag.json +8 -3
- package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +3 -1
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +2 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +5 -1
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +2 -1
- package/dist/specification/src/sync/common/rules.d.ts +25 -0
- package/dist/specification/src/sync/common/rules.d.ts.map +1 -1
- package/dist/specification/src/sync/common/rules.js +27 -2
- package/dist/specification/src/sync/common/rules.js.map +1 -1
- package/dist/specification/src/sync/common/utils.d.ts +22 -6
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +122 -18
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +9 -7
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.js +3 -1
- package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +58 -2
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts +1 -9
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.js +30 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.js +2 -0
- package/dist/specification/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js +2 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts +28 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.js +37 -0
- package/dist/specification/src/sync/v2/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +12 -2
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +19 -2
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +31 -2
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +44 -4
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts +4 -3
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.js +7 -3
- package/dist/specification/src/sync/v4/export/controls/Header.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js +7 -0
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +0 -13
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +32 -17
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +90 -60
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js +2 -2
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +4 -3
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +25 -3
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +20 -12
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +16 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +10 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.js +1 -1
- package/dist/specification/src/sync/v4/generate/index.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +73 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +354 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.d.ts → list-report/listReport.d.ts} +27 -16
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.js → list-report/listReport.js} +193 -163
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +145 -44
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js +2 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.js +5 -3
- package/dist/specification/src/sync/v4/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +9 -7
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js +4 -8
- package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +2 -9
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +2 -11
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +219 -96
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +557 -211
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +17 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js +15 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts +1 -0
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js +17 -9
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts +5 -0
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js +21 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/utils.js +4 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/index.d.ts +2 -0
- package/dist/specification/src/sync/v4/utils/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/utils/index.js +18 -0
- package/dist/specification/src/sync/v4/utils/index.js.map +1 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts +9 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +17 -2
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/specification/test/test-projects/v2sttaProdMan2/webapp/manifest.json +550 -0
- package/dist/specification/test/test-projects/v4new/webapp/manifest.json +147 -0
- package/dist/specification/test/test-utils/utils.d.ts +71 -0
- package/dist/specification/test/test-utils/utils.d.ts.map +1 -0
- package/dist/specification/test/test-utils/utils.js +400 -0
- package/dist/specification/test/test-utils/utils.js.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +131 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js +661 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -0
- package/dist/types/src/apiTypes.d.ts +2 -3
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +119 -13
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v2/controls/Table.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/Table.d.ts +3 -3
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/package.json +14 -12
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts +0 -107
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js +0 -394
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
/**
|
|
3
|
+
* @file Script to generate a validity decorator overview report
|
|
4
|
+
*
|
|
5
|
+
* This script generates a markdown report showing:
|
|
6
|
+
* - All classes with @validity decorated properties
|
|
7
|
+
* - Expected vs Actual visibility across UI5 versions
|
|
8
|
+
* - A diff table highlighting implementation gaps
|
|
9
|
+
*
|
|
10
|
+
* Usage: npx ts-node packages/specification/scripts/generate-validity-report.ts
|
|
11
|
+
*
|
|
12
|
+
* Output: packages/specification/doc/validity-overview.md
|
|
13
|
+
*/
|
|
14
|
+
import 'reflect-metadata';
|
|
15
|
+
//# sourceMappingURL=generate-validity-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-validity-report.d.ts","sourceRoot":"","sources":["../../../scripts/generate-validity-report.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* @file Script to generate a validity decorator overview report
|
|
5
|
+
*
|
|
6
|
+
* This script generates a markdown report showing:
|
|
7
|
+
* - All classes with @validity decorated properties
|
|
8
|
+
* - Expected vs Actual visibility across UI5 versions
|
|
9
|
+
* - A diff table highlighting implementation gaps
|
|
10
|
+
*
|
|
11
|
+
* Usage: npx ts-node packages/specification/scripts/generate-validity-report.ts
|
|
12
|
+
*
|
|
13
|
+
* Output: packages/specification/doc/validity-overview.md
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
require("reflect-metadata");
|
|
50
|
+
const fs = __importStar(require("fs"));
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
53
|
+
const api_1 = require("../src/api");
|
|
54
|
+
const Table_1 = require("../src/sync/v4/export/controls/Table");
|
|
55
|
+
const HeaderAction_1 = require("../src/sync/v4/export/controls/HeaderAction");
|
|
56
|
+
const Header_1 = require("../src/sync/v4/export/controls/Header");
|
|
57
|
+
const FilterBar_1 = require("../src/sync/v4/export/controls/FilterBar");
|
|
58
|
+
const ToolBarAction_1 = require("../src/sync/v4/export/controls/ToolBarAction");
|
|
59
|
+
const ObjectPageTable_1 = require("../src/sync/v4/export/controls/ObjectPageTable");
|
|
60
|
+
const validity_test_utils_1 = require("../test/unit/decorators/validity-test-utils");
|
|
61
|
+
/** UI5 versions to test property visibility against */
|
|
62
|
+
const TEST_VERSIONS = ['1.84.0', '1.96.0', '1.108.0', '1.124.0', '1.136.0', '1.142.0', validity_test_utils_1.VERSION_LATEST];
|
|
63
|
+
const CLASSES_TO_REPORT = [
|
|
64
|
+
{ name: 'Table', classRef: Table_1.TableSettings, schemaName: 'Table', definitionFinder: validity_test_utils_1.findTableDefinition },
|
|
65
|
+
{ name: 'Header', classRef: Header_1.Header },
|
|
66
|
+
{ name: 'HeaderActions', classRef: Header_1.HeaderActions },
|
|
67
|
+
{ name: 'CustomHeaderAction', classRef: HeaderAction_1.CustomHeaderAction },
|
|
68
|
+
{ name: 'CustomFilterFieldPosition', classRef: FilterBar_1.CustomFilterFieldPosition },
|
|
69
|
+
{ name: 'ViewToolBarAction', classRef: ToolBarAction_1.ViewToolBarAction },
|
|
70
|
+
{ name: 'ToolBarAction', classRef: ToolBarAction_1.ToolBarAction },
|
|
71
|
+
{ name: 'ALPChart', classRef: Table_1.ALPChart, schemaName: 'ALPChart' },
|
|
72
|
+
{ name: 'ObjectPageTable', classRef: ObjectPageTable_1.ObjectPageTableRowCountable, schemaName: 'ObjectPageTable' }
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Counts the number of mismatches (gaps) in the diff results.
|
|
76
|
+
*
|
|
77
|
+
* @param diffMarkdown - The markdown string containing the diff table
|
|
78
|
+
* @returns An object with gaps (mismatch count) and total (total cell count)
|
|
79
|
+
*/
|
|
80
|
+
function countGaps(diffMarkdown) {
|
|
81
|
+
const lines = diffMarkdown.split('\n').filter((line) => line.startsWith('|') && !line.includes('---'));
|
|
82
|
+
// Skip header line
|
|
83
|
+
const dataLines = lines.slice(1);
|
|
84
|
+
let gaps = 0;
|
|
85
|
+
let total = 0;
|
|
86
|
+
for (const line of dataLines) {
|
|
87
|
+
const matches = line.match(/⚠️/g);
|
|
88
|
+
const checkmarks = line.match(/✅/g);
|
|
89
|
+
if (matches) {
|
|
90
|
+
gaps += matches.length;
|
|
91
|
+
}
|
|
92
|
+
if (checkmarks) {
|
|
93
|
+
total += checkmarks.length;
|
|
94
|
+
}
|
|
95
|
+
if (matches) {
|
|
96
|
+
total += matches.length;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return { gaps, total };
|
|
100
|
+
}
|
|
101
|
+
async function generateReport() {
|
|
102
|
+
console.log('Generating validity decorator overview report...\n');
|
|
103
|
+
// Load generic schema
|
|
104
|
+
console.log('Loading generic schema...');
|
|
105
|
+
const genericSchema = (await (0, api_1.getGenericSchema)(ux_specification_types_1.FioriElementsVersion.v4, ux_specification_types_1.SchemaType.ListReport));
|
|
106
|
+
// Generate schemas for all versions
|
|
107
|
+
console.log('Generating schemas for versions:', TEST_VERSIONS.join(', '));
|
|
108
|
+
const schemaResults = await (0, validity_test_utils_1.generateSchemasForVersions)(genericSchema, ux_specification_types_1.SchemaType.ListReport, TEST_VERSIONS);
|
|
109
|
+
const reports = [];
|
|
110
|
+
// Process each class
|
|
111
|
+
for (const config of CLASSES_TO_REPORT) {
|
|
112
|
+
console.log(`Processing ${config.name}...`);
|
|
113
|
+
const validityProperties = (0, validity_test_utils_1.getValidityProperties)(genericSchema, config.classRef, config.schemaName || config.classRef.name);
|
|
114
|
+
// Get enum validity information
|
|
115
|
+
const enumValidityInfos = (0, validity_test_utils_1.getEnumValidityFromClass)(config.classRef);
|
|
116
|
+
const enumValidityTable = (0, validity_test_utils_1.formatEnumValidityTableMarkdown)(enumValidityInfos, TEST_VERSIONS);
|
|
117
|
+
if (validityProperties.length === 0) {
|
|
118
|
+
reports.push({
|
|
119
|
+
name: config.name,
|
|
120
|
+
hasValidityProperties: false,
|
|
121
|
+
propertyCount: 0,
|
|
122
|
+
expectedTable: '',
|
|
123
|
+
actualTable: '',
|
|
124
|
+
diffTable: '',
|
|
125
|
+
gapCount: 0,
|
|
126
|
+
totalCells: 0,
|
|
127
|
+
enumValidityTable,
|
|
128
|
+
enumValueCount: enumValidityInfos.length
|
|
129
|
+
});
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const definitionFinder = config.definitionFinder || (0, validity_test_utils_1.findDefinitionByName)(config.schemaName || config.name);
|
|
133
|
+
// Generate tables
|
|
134
|
+
const expectedTableData = (0, validity_test_utils_1.generateExpectedVisibilityTable)(validityProperties, TEST_VERSIONS);
|
|
135
|
+
const actualTableData = (0, validity_test_utils_1.generateActualVisibilityTable)(validityProperties, TEST_VERSIONS, schemaResults, definitionFinder);
|
|
136
|
+
const diffTableData = (0, validity_test_utils_1.generateDiffVisibilityTable)(validityProperties, TEST_VERSIONS, schemaResults, definitionFinder);
|
|
137
|
+
const expectedTable = (0, validity_test_utils_1.formatVisibilityTableMarkdown)(expectedTableData, TEST_VERSIONS);
|
|
138
|
+
const actualTable = (0, validity_test_utils_1.formatVisibilityTableMarkdown)(actualTableData, TEST_VERSIONS);
|
|
139
|
+
const diffTable = (0, validity_test_utils_1.formatDiffTableMarkdown)(diffTableData, TEST_VERSIONS);
|
|
140
|
+
const { gaps, total } = countGaps(diffTable);
|
|
141
|
+
reports.push({
|
|
142
|
+
name: config.name,
|
|
143
|
+
hasValidityProperties: true,
|
|
144
|
+
propertyCount: validityProperties.length,
|
|
145
|
+
expectedTable,
|
|
146
|
+
actualTable,
|
|
147
|
+
diffTable,
|
|
148
|
+
gapCount: gaps,
|
|
149
|
+
totalCells: total,
|
|
150
|
+
enumValidityTable,
|
|
151
|
+
enumValueCount: enumValidityInfos.length
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// Calculate summary stats
|
|
155
|
+
const totalGaps = reports.reduce((sum, r) => sum + r.gapCount, 0);
|
|
156
|
+
const totalCells = reports.reduce((sum, r) => sum + r.totalCells, 0);
|
|
157
|
+
const classesWithGaps = reports.filter((r) => r.gapCount > 0);
|
|
158
|
+
const classesWithoutValidity = reports.filter((r) => !r.hasValidityProperties);
|
|
159
|
+
const totalEnumValues = reports.reduce((sum, r) => sum + r.enumValueCount, 0);
|
|
160
|
+
const classesWithEnumValidity = reports.filter((r) => r.enumValueCount > 0);
|
|
161
|
+
// Generate markdown
|
|
162
|
+
const md = [];
|
|
163
|
+
md.push('# @validity Decorator Implementation Overview');
|
|
164
|
+
md.push('');
|
|
165
|
+
md.push(`> Generated: ${new Date().toISOString()}`);
|
|
166
|
+
md.push('');
|
|
167
|
+
md.push('This report shows the implementation status of the `@validity` decorator across all decorated classes.');
|
|
168
|
+
md.push('It compares expected visibility (based on decorator metadata) with actual visibility (from generated schemas).');
|
|
169
|
+
md.push('');
|
|
170
|
+
// Summary
|
|
171
|
+
md.push('## Summary');
|
|
172
|
+
md.push('');
|
|
173
|
+
md.push('| Metric | Value |');
|
|
174
|
+
md.push('| ------ | ----- |');
|
|
175
|
+
md.push(`| Total Classes Analyzed | ${reports.length} |`);
|
|
176
|
+
md.push(`| Classes with @validity Properties | ${reports.filter((r) => r.hasValidityProperties).length} |`);
|
|
177
|
+
md.push(`| Classes without @validity Properties | ${classesWithoutValidity.length} |`);
|
|
178
|
+
md.push(`| Total Property/Version Cells | ${totalCells} |`);
|
|
179
|
+
md.push(`| Implementation Gaps (mismatches) | ${totalGaps} |`);
|
|
180
|
+
md.push(`| Implementation Coverage | ${totalCells > 0 ? ((1 - totalGaps / totalCells) * 100).toFixed(1) : 100}% |`);
|
|
181
|
+
md.push(`| Total Enum Values with Version Requirements | ${totalEnumValues} |`);
|
|
182
|
+
md.push(`| Classes with Enum Validity | ${classesWithEnumValidity.length} |`);
|
|
183
|
+
md.push('');
|
|
184
|
+
// Overall status table
|
|
185
|
+
md.push('### Class Status Overview');
|
|
186
|
+
md.push('');
|
|
187
|
+
md.push('| Class | Status | Properties | Gaps | Coverage | Enum Values |');
|
|
188
|
+
md.push('| ----- | ------ | ---------- | ---- | -------- | ----------- |');
|
|
189
|
+
for (const r of reports) {
|
|
190
|
+
let status;
|
|
191
|
+
let coverage;
|
|
192
|
+
if (!r.hasValidityProperties) {
|
|
193
|
+
status = '⬜ No @validity';
|
|
194
|
+
coverage = 'N/A';
|
|
195
|
+
}
|
|
196
|
+
else if (r.gapCount === 0) {
|
|
197
|
+
status = '✅ Complete';
|
|
198
|
+
coverage = '100%';
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
status = '⚠️ Gaps';
|
|
202
|
+
coverage = `${((1 - r.gapCount / r.totalCells) * 100).toFixed(1)}%`;
|
|
203
|
+
}
|
|
204
|
+
md.push(`| [${r.name}](#${r.name.toLowerCase()}) | ${status} | ${r.propertyCount || '-'} | ${r.gapCount || '-'} | ${coverage} | ${r.enumValueCount || '-'} |`);
|
|
205
|
+
}
|
|
206
|
+
md.push('');
|
|
207
|
+
// Gap overview
|
|
208
|
+
if (classesWithGaps.length > 0) {
|
|
209
|
+
md.push('## Implementation Gaps');
|
|
210
|
+
md.push('');
|
|
211
|
+
md.push('Classes with mismatches between expected and actual visibility:');
|
|
212
|
+
md.push('');
|
|
213
|
+
md.push('| Class | Properties | Gaps | Gap % |');
|
|
214
|
+
md.push('| ----- | ---------- | ---- | ----- |');
|
|
215
|
+
for (const r of classesWithGaps) {
|
|
216
|
+
const gapPct = ((r.gapCount / r.totalCells) * 100).toFixed(1);
|
|
217
|
+
md.push(`| [${r.name}](#${r.name.toLowerCase()}) | ${r.propertyCount} | ${r.gapCount} | ${gapPct}% |`);
|
|
218
|
+
}
|
|
219
|
+
md.push('');
|
|
220
|
+
// Quick overview of all diff tables
|
|
221
|
+
md.push('### Quick Diff Overview');
|
|
222
|
+
md.push('');
|
|
223
|
+
md.push('Only showing classes with implementation gaps. See [detailed reports](#detailed-class-reports) for full information.');
|
|
224
|
+
md.push('');
|
|
225
|
+
for (const r of classesWithGaps) {
|
|
226
|
+
md.push('<details open>');
|
|
227
|
+
md.push(`<summary><strong>${r.name}</strong> - ${r.gapCount} gaps (${r.propertyCount} properties)</summary>`);
|
|
228
|
+
md.push('');
|
|
229
|
+
md.push('```');
|
|
230
|
+
md.push(r.diffTable);
|
|
231
|
+
md.push('```');
|
|
232
|
+
md.push('');
|
|
233
|
+
md.push('</details>');
|
|
234
|
+
md.push('');
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Classes without validity properties
|
|
238
|
+
if (classesWithoutValidity.length > 0) {
|
|
239
|
+
md.push('## Classes Without @validity Properties');
|
|
240
|
+
md.push('');
|
|
241
|
+
md.push('These classes have no properties decorated with `@validity`:');
|
|
242
|
+
md.push('');
|
|
243
|
+
for (const r of classesWithoutValidity) {
|
|
244
|
+
md.push(`- **${r.name}**`);
|
|
245
|
+
}
|
|
246
|
+
md.push('');
|
|
247
|
+
}
|
|
248
|
+
// Legend
|
|
249
|
+
md.push('## Legend');
|
|
250
|
+
md.push('');
|
|
251
|
+
md.push('### Expected/Actual Tables');
|
|
252
|
+
md.push(`- ${validity_test_utils_1.EMOJI_VISIBLE} = Property is visible (version >= since, or "-" for always visible)`);
|
|
253
|
+
md.push(`- ${validity_test_utils_1.EMOJI_HIDDEN} = Property is hidden (version < since)`);
|
|
254
|
+
md.push(`- ${validity_test_utils_1.EMOJI_NOT_FOUND} = Property not found in schema definition`);
|
|
255
|
+
md.push('');
|
|
256
|
+
md.push('### Diff Tables');
|
|
257
|
+
md.push(`- ${validity_test_utils_1.EMOJI_MATCH} = Match (expected === actual)`);
|
|
258
|
+
md.push(`- ${validity_test_utils_1.EMOJI_DIFF} = Mismatch (expected !== actual) - **Implementation gap**`);
|
|
259
|
+
md.push('');
|
|
260
|
+
// Detailed class reports
|
|
261
|
+
md.push('## Detailed Class Reports');
|
|
262
|
+
md.push('');
|
|
263
|
+
for (const r of reports) {
|
|
264
|
+
md.push(`### ${r.name}`);
|
|
265
|
+
md.push('');
|
|
266
|
+
if (!r.hasValidityProperties && r.enumValueCount === 0) {
|
|
267
|
+
md.push('*No @validity decorated properties found.*');
|
|
268
|
+
md.push('');
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
if (!r.hasValidityProperties && r.enumValueCount > 0) {
|
|
272
|
+
md.push('*No @validity decorated properties, but has enum values with version requirements.*');
|
|
273
|
+
md.push('');
|
|
274
|
+
// Show enum validity section
|
|
275
|
+
md.push('<details open>');
|
|
276
|
+
md.push(`<summary>🔢 <strong>Enum Value Validity</strong> - ${r.enumValueCount} enum values with version requirements</summary>`);
|
|
277
|
+
md.push('');
|
|
278
|
+
md.push('```');
|
|
279
|
+
md.push(r.enumValidityTable);
|
|
280
|
+
md.push('```');
|
|
281
|
+
md.push('');
|
|
282
|
+
md.push('</details>');
|
|
283
|
+
md.push('');
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
md.push(`**Properties:** ${r.propertyCount} | **Gaps:** ${r.gapCount} | **Coverage:** ${((1 - r.gapCount / r.totalCells) * 100).toFixed(1)}%`);
|
|
287
|
+
md.push('');
|
|
288
|
+
// Expected Visibility - collapsible
|
|
289
|
+
md.push('<details>');
|
|
290
|
+
md.push('<summary><strong>Expected Visibility</strong> (based on @validity decorator metadata)</summary>');
|
|
291
|
+
md.push('');
|
|
292
|
+
md.push('```');
|
|
293
|
+
md.push(r.expectedTable);
|
|
294
|
+
md.push('```');
|
|
295
|
+
md.push('');
|
|
296
|
+
md.push('</details>');
|
|
297
|
+
md.push('');
|
|
298
|
+
// Actual Visibility - collapsible
|
|
299
|
+
md.push('<details>');
|
|
300
|
+
md.push('<summary><strong>Actual Visibility</strong> (from generated version-specific schemas)</summary>');
|
|
301
|
+
md.push('');
|
|
302
|
+
md.push('```');
|
|
303
|
+
md.push(r.actualTable);
|
|
304
|
+
md.push('```');
|
|
305
|
+
md.push('');
|
|
306
|
+
md.push('</details>');
|
|
307
|
+
md.push('');
|
|
308
|
+
// Differences - open by default if there are gaps
|
|
309
|
+
const openAttr = r.gapCount > 0 ? ' open' : '';
|
|
310
|
+
md.push(`<details${openAttr}>`);
|
|
311
|
+
if (r.gapCount === 0) {
|
|
312
|
+
md.push('<summary>✅ <strong>Differences</strong> - No implementation gaps</summary>');
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
md.push(`<summary>⚠️ <strong>Differences</strong> - ${r.gapCount} implementation gaps found</summary>`);
|
|
316
|
+
}
|
|
317
|
+
md.push('');
|
|
318
|
+
md.push('```');
|
|
319
|
+
md.push(r.diffTable);
|
|
320
|
+
md.push('```');
|
|
321
|
+
md.push('');
|
|
322
|
+
md.push('</details>');
|
|
323
|
+
md.push('');
|
|
324
|
+
// Enum Validity - only if there are enum values with version requirements
|
|
325
|
+
if (r.enumValueCount > 0) {
|
|
326
|
+
md.push('<details>');
|
|
327
|
+
md.push(`<summary>🔢 <strong>Enum Value Validity</strong> - ${r.enumValueCount} enum values with version requirements</summary>`);
|
|
328
|
+
md.push('');
|
|
329
|
+
md.push('```');
|
|
330
|
+
md.push(r.enumValidityTable);
|
|
331
|
+
md.push('```');
|
|
332
|
+
md.push('');
|
|
333
|
+
md.push('</details>');
|
|
334
|
+
md.push('');
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// Action items
|
|
338
|
+
if (classesWithGaps.length > 0) {
|
|
339
|
+
md.push('## Action Items');
|
|
340
|
+
md.push('');
|
|
341
|
+
md.push('To fix implementation gaps, ensure the schema generation respects the `@validity(since)` decorator:');
|
|
342
|
+
md.push('');
|
|
343
|
+
md.push('1. Properties should be **hidden** when `minUI5Version < since`');
|
|
344
|
+
md.push('2. Properties should be **visible** when `minUI5Version >= since`');
|
|
345
|
+
md.push('');
|
|
346
|
+
md.push('Check the following files for potential fixes:');
|
|
347
|
+
md.push('');
|
|
348
|
+
md.push('- `packages/specification/src/sync/common/decoration/decorators.ts` - Decorator implementation');
|
|
349
|
+
md.push('- `packages/specification/src/sync/v4/export/` - Export control classes');
|
|
350
|
+
md.push('');
|
|
351
|
+
}
|
|
352
|
+
// Write file
|
|
353
|
+
const outputPath = path.join(__dirname, '..', 'doc', 'validity-overview.md');
|
|
354
|
+
const outputDir = path.dirname(outputPath);
|
|
355
|
+
if (!fs.existsSync(outputDir)) {
|
|
356
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
357
|
+
}
|
|
358
|
+
fs.writeFileSync(outputPath, md.join('\n'));
|
|
359
|
+
console.log(`\nReport written to: ${outputPath}`);
|
|
360
|
+
console.log(`\nSummary: ${totalGaps} gaps found across ${classesWithGaps.length} classes`);
|
|
361
|
+
}
|
|
362
|
+
// Run the report
|
|
363
|
+
generateReport().catch((err) => {
|
|
364
|
+
console.error('Error generating report:', err);
|
|
365
|
+
process.exit(1);
|
|
366
|
+
});
|
|
367
|
+
//# sourceMappingURL=generate-validity-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-validity-report.js","sourceRoot":"","sources":["../../../scripts/generate-validity-report.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4BAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAE7B,wEAA+E;AAC/E,oCAA8C;AAE9C,gEAA+E;AAC/E,8EAAiF;AACjF,kEAA8E;AAC9E,wEAAqF;AACrF,gFAAgG;AAChG,oFAA6F;AAE7F,qFAkBqD;AAErD,uDAAuD;AACvD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oCAAc,CAAC,CAAC;AAUvG,MAAM,iBAAiB,GAAkB;IACrC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAa,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,yCAAmB,EAAE;IACtG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAM,EAAE;IACpC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAa,EAAE;IAClD,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iCAAkB,EAAE;IAC5D,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,qCAAyB,EAAE;IAC1E,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iCAAiB,EAAE;IAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,6BAAa,EAAE;IAClD,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;IAChE,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,6CAA2B,EAAE,UAAU,EAAE,iBAAiB,EAAE;CACpG,CAAC;AAeF;;;;;GAKG;AACH,SAAS,SAAS,CAAC,YAAoB;IACnC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvG,mBAAmB;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;QAC3B,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,cAAc;IACzB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAElE,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,CAAC,MAAM,IAAA,sBAAgB,EACzC,6CAAoB,CAAC,EAAE,EACvB,mCAAU,CAAC,UAAU,CACxB,CAA0B,CAAC;IAE5B,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,MAAM,IAAA,gDAA0B,EAAC,aAAa,EAAE,mCAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5G,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,qBAAqB;IACrB,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QAE5C,MAAM,kBAAkB,GAAG,IAAA,2CAAqB,EAC5C,aAAa,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC5C,CAAC;QAEF,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,IAAA,8CAAwB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,IAAA,qDAA+B,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAE5F,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,qBAAqB,EAAE,KAAK;gBAC5B,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,EAAE;gBACjB,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,iBAAiB;gBACjB,cAAc,EAAE,iBAAiB,CAAC,MAAM;aAC3C,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAA,0CAAoB,EAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3G,kBAAkB;QAClB,MAAM,iBAAiB,GAAG,IAAA,qDAA+B,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAC7F,MAAM,eAAe,GAAG,IAAA,mDAA6B,EACjD,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,gBAAgB,CACnB,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,iDAA2B,EAC7C,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,gBAAgB,CACnB,CAAC;QAEF,MAAM,aAAa,GAAG,IAAA,mDAA6B,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,IAAA,mDAA6B,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAA,6CAAuB,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAExE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAE7C,OAAO,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,qBAAqB,EAAE,IAAI;YAC3B,aAAa,EAAE,kBAAkB,CAAC,MAAM;YACxC,aAAa;YACb,WAAW;YACX,SAAS;YACT,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,iBAAiB;YACjB,cAAc,EAAE,iBAAiB,CAAC,MAAM;SAC3C,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAE5E,oBAAoB;IACpB,MAAM,EAAE,GAAa,EAAE,CAAC;IAExB,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACzD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACpD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;IAClH,EAAE,CAAC,IAAI,CACH,gHAAgH,CACnH,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,UAAU;IACV,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9B,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9B,EAAE,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1D,EAAE,CAAC,IAAI,CAAC,yCAAyC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5G,EAAE,CAAC,IAAI,CAAC,4CAA4C,sBAAsB,CAAC,MAAM,IAAI,CAAC,CAAC;IACvF,EAAE,CAAC,IAAI,CAAC,oCAAoC,UAAU,IAAI,CAAC,CAAC;IAC5D,EAAE,CAAC,IAAI,CAAC,wCAAwC,SAAS,IAAI,CAAC,CAAC;IAC/D,EAAE,CAAC,IAAI,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACpH,EAAE,CAAC,IAAI,CAAC,mDAAmD,eAAe,IAAI,CAAC,CAAC;IAChF,EAAE,CAAC,IAAI,CAAC,kCAAkC,uBAAuB,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9E,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,uBAAuB;IACvB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC3E,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,MAAc,CAAC;QACnB,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,GAAG,gBAAgB,CAAC;YAC1B,QAAQ,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,YAAY,CAAC;YACtB,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,SAAS,CAAC;YACnB,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACxE,CAAC;QACD,EAAE,CAAC,IAAI,CACH,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,MAAM,MAAM,CAAC,CAAC,aAAa,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,IAAI,GAAG,MAAM,QAAQ,MAAM,CAAC,CAAC,cAAc,IAAI,GAAG,IAAI,CACxJ,CAAC;IACN,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,eAAe;IACf,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC3E,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACjD,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9D,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,aAAa,MAAM,CAAC,CAAC,QAAQ,MAAM,MAAM,KAAK,CAAC,CAAC;QAC3G,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,oCAAoC;QACpC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CACH,sHAAsH,CACzH,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1B,EAAE,CAAC,IAAI,CACH,oBAAoB,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,aAAa,wBAAwB,CACvG,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACnD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QACxE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,sBAAsB,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,SAAS;IACT,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtC,EAAE,CAAC,IAAI,CAAC,KAAK,mCAAa,sEAAsE,CAAC,CAAC;IAClG,EAAE,CAAC,IAAI,CAAC,KAAK,kCAAY,yCAAyC,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,CAAC,KAAK,qCAAe,4CAA4C,CAAC,CAAC;IAC1E,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3B,EAAE,CAAC,IAAI,CAAC,KAAK,iCAAW,gCAAgC,CAAC,CAAC;IAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,gCAAU,4DAA4D,CAAC,CAAC;IACrF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,yBAAyB;IACzB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,IAAI,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YACrD,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,SAAS;QACb,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACnD,EAAE,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;YAC/F,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,6BAA6B;YAC7B,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1B,EAAE,CAAC,IAAI,CACH,sDAAsD,CAAC,CAAC,cAAc,kDAAkD,CAC3H,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC7B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,SAAS;QACb,CAAC;QAED,EAAE,CAAC,IAAI,CACH,mBAAmB,CAAC,CAAC,aAAa,gBAAgB,CAAC,CAAC,QAAQ,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACxI,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,oCAAoC;QACpC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrB,EAAE,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;QAC3G,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACzB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,kCAAkC;QAClC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrB,EAAE,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;QAC3G,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACvB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,kDAAkD;QAClD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,EAAE,CAAC,IAAI,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACJ,EAAE,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,QAAQ,sCAAsC,CAAC,CAAC;QAC5G,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,0EAA0E;QAC1E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrB,EAAE,CAAC,IAAI,CACH,sDAAsD,CAAC,CAAC,cAAc,kDAAkD,CAC3H,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC7B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,eAAe;IACf,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;QAC/G,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC3E,EAAE,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAC7E,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;QAC1G,EAAE,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACnF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,aAAa;IACb,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,sBAAsB,eAAe,CAAC,MAAM,UAAU,CAAC,CAAC;AAC/F,CAAC;AAED,iBAAiB;AACjB,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -8,6 +8,46 @@ interface APICorrection {
|
|
|
8
8
|
})>;
|
|
9
9
|
metadata?: UI5Symbol;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Describes a map of enum entries that may depend on another property.
|
|
13
|
+
*/
|
|
14
|
+
interface MacrosEnumEntriesMap {
|
|
15
|
+
/**
|
|
16
|
+
* Name of the property whose value determines which enum entries are valid.
|
|
17
|
+
*/
|
|
18
|
+
dependentProperty: string;
|
|
19
|
+
/**
|
|
20
|
+
* Map of dependent property values to their corresponding enum entries.
|
|
21
|
+
*/
|
|
22
|
+
values: {
|
|
23
|
+
[key: string]: string[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Map defining enum entries for macro controls and their properties.
|
|
28
|
+
*
|
|
29
|
+
* Structure:
|
|
30
|
+
* - First key: control name
|
|
31
|
+
* - Second key: property name
|
|
32
|
+
* - Value: describing dependent values and enum entries
|
|
33
|
+
*/
|
|
34
|
+
export declare const MACROS_ENUM_ENTRIES_MAP: {
|
|
35
|
+
[key: string]: {
|
|
36
|
+
[key: string]: MacrosEnumEntriesMap;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Returns the enum entries for a given control and property.
|
|
41
|
+
* If a dependent value is provided and exists in the map, only the enum entries
|
|
42
|
+
* associated with that dependent value are returned.
|
|
43
|
+
* Otherwise, all enum entries for the property are returned as a flat array.
|
|
44
|
+
*
|
|
45
|
+
* @param control - The macro control class name
|
|
46
|
+
* @param property - The property name of the control
|
|
47
|
+
* @param dependentValue - Optional value of the dependent property
|
|
48
|
+
* @returns An array of enum entry strings, or `undefined` if the control or property is not found
|
|
49
|
+
*/
|
|
50
|
+
export declare function getEnumEntriesFromMap(control: string, property: string, dependentValue?: string): string[] | undefined;
|
|
11
51
|
export declare const macrosCorrection: {
|
|
12
52
|
[key: string]: APICorrection;
|
|
13
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corrections.d.ts","sourceRoot":"","sources":["../../../../scripts/macros/corrections.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAA8B,WAAW,EAAE,MAAM,SAAS,CAAC;AAG7G,UAAU,aAAa;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"corrections.d.ts","sourceRoot":"","sources":["../../../../scripts/macros/corrections.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAA8B,WAAW,EAAE,MAAM,SAAS,CAAC;AAG7G,UAAU,aAAa;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;CAmB1D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACxB,MAAM,EAAE,GAAG,SAAS,CAiBtB;AAED,eAAO,MAAM,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CA6J5D,CAAC;AA4KF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAuBrD"}
|
|
@@ -1,9 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.macrosCorrection = void 0;
|
|
3
|
+
exports.macrosCorrection = exports.MACROS_ENUM_ENTRIES_MAP = void 0;
|
|
4
|
+
exports.getEnumEntriesFromMap = getEnumEntriesFromMap;
|
|
4
5
|
exports.applyCorrections = applyCorrections;
|
|
5
6
|
const types_1 = require("./types");
|
|
6
7
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
8
|
+
/**
|
|
9
|
+
* Map defining enum entries for macro controls and their properties.
|
|
10
|
+
*
|
|
11
|
+
* Structure:
|
|
12
|
+
* - First key: control name
|
|
13
|
+
* - Second key: property name
|
|
14
|
+
* - Value: describing dependent values and enum entries
|
|
15
|
+
*/
|
|
16
|
+
exports.MACROS_ENUM_ENTRIES_MAP = {
|
|
17
|
+
'sap.fe.macros.richtexteditor.ButtonGroup': {
|
|
18
|
+
buttons: {
|
|
19
|
+
dependentProperty: 'name',
|
|
20
|
+
values: {
|
|
21
|
+
'font-style': ['bold', 'italic', 'underline', 'strikethrough'],
|
|
22
|
+
font: ['fontfamily', 'fontsize', 'forecolor', 'backcolor'],
|
|
23
|
+
clipboard: ['cut', 'copy', 'paste'],
|
|
24
|
+
structure: ['bullist', 'numlist', 'outdent', 'indent'],
|
|
25
|
+
undo: ['undo', 'redo'],
|
|
26
|
+
insert: ['image', 'emoticons'],
|
|
27
|
+
link: ['link', 'unlink'],
|
|
28
|
+
'text-align': ['alignleft', 'aligncenter', 'alignright', 'alignjustify'],
|
|
29
|
+
table: ['table'],
|
|
30
|
+
styleselect: ['styleselect']
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Returns the enum entries for a given control and property.
|
|
37
|
+
* If a dependent value is provided and exists in the map, only the enum entries
|
|
38
|
+
* associated with that dependent value are returned.
|
|
39
|
+
* Otherwise, all enum entries for the property are returned as a flat array.
|
|
40
|
+
*
|
|
41
|
+
* @param control - The macro control class name
|
|
42
|
+
* @param property - The property name of the control
|
|
43
|
+
* @param dependentValue - Optional value of the dependent property
|
|
44
|
+
* @returns An array of enum entry strings, or `undefined` if the control or property is not found
|
|
45
|
+
*/
|
|
46
|
+
function getEnumEntriesFromMap(control, property, dependentValue) {
|
|
47
|
+
const controlEntry = exports.MACROS_ENUM_ENTRIES_MAP[control];
|
|
48
|
+
const propertyEntry = controlEntry?.[property];
|
|
49
|
+
if (!propertyEntry) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const values = propertyEntry.values;
|
|
53
|
+
if (dependentValue && values[dependentValue]) {
|
|
54
|
+
// Return specific entries matching value of dependent property
|
|
55
|
+
return values[dependentValue];
|
|
56
|
+
}
|
|
57
|
+
// Merge and return all entries
|
|
58
|
+
const result = [];
|
|
59
|
+
for (const name in values) {
|
|
60
|
+
result.push(...values[name]);
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
7
64
|
exports.macrosCorrection = {
|
|
8
65
|
'sap.fe.macros.Page': {
|
|
9
66
|
defaultAggregation: 'items'
|
|
@@ -127,21 +184,70 @@ exports.macrosCorrection = {
|
|
|
127
184
|
visibility: types_1.UI5Visibility.hidden
|
|
128
185
|
}
|
|
129
186
|
]
|
|
187
|
+
},
|
|
188
|
+
'sap.fe.macros.controls.BaseAction': {
|
|
189
|
+
properties: [
|
|
190
|
+
{
|
|
191
|
+
name: 'text',
|
|
192
|
+
extend: true,
|
|
193
|
+
// Correct from any to string while fix is not applied from fe team
|
|
194
|
+
type: 'string'
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'visible',
|
|
198
|
+
extend: true,
|
|
199
|
+
// Correct from any to boolean while fix is not applied from fe team
|
|
200
|
+
type: 'boolean'
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
'sap.fe.macros.RichTextEditor': {
|
|
205
|
+
properties: [
|
|
206
|
+
{
|
|
207
|
+
name: 'required',
|
|
208
|
+
extend: true,
|
|
209
|
+
// Correct from any to boolean while fix is not applied from fe team
|
|
210
|
+
type: 'boolean'
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: 'value',
|
|
214
|
+
extend: true,
|
|
215
|
+
// Correct from any to string while fix is not applied from fe team
|
|
216
|
+
type: 'string'
|
|
217
|
+
}
|
|
218
|
+
]
|
|
130
219
|
}
|
|
131
220
|
};
|
|
132
221
|
const placementEnum = [ux_specification_types_1.v4.Placement.After, ux_specification_types_1.v4.Placement.Before];
|
|
133
222
|
const enumsEntries = {
|
|
134
223
|
'sap.fe.macros.FilterField': {
|
|
135
|
-
placement:
|
|
224
|
+
placement: {
|
|
225
|
+
options: placementEnum
|
|
226
|
+
}
|
|
136
227
|
},
|
|
137
228
|
'sap.fe.macros.table.Action': {
|
|
138
|
-
placement:
|
|
229
|
+
placement: {
|
|
230
|
+
options: placementEnum
|
|
231
|
+
}
|
|
139
232
|
},
|
|
140
233
|
'sap.fe.macros.table.Column': {
|
|
141
|
-
placement:
|
|
234
|
+
placement: {
|
|
235
|
+
options: placementEnum
|
|
236
|
+
}
|
|
142
237
|
},
|
|
143
238
|
'sap.fe.macros.Table': {
|
|
144
|
-
variantManagement:
|
|
239
|
+
variantManagement: {
|
|
240
|
+
options: ['None', 'Page', 'Control']
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
'sap.fe.macros.richtexteditor.ButtonGroup': {
|
|
244
|
+
buttons: {
|
|
245
|
+
options: getEnumEntriesFromMap('sap.fe.macros.richtexteditor.ButtonGroup', 'buttons'),
|
|
246
|
+
multiSelect: true
|
|
247
|
+
},
|
|
248
|
+
name: {
|
|
249
|
+
options: Object.keys(exports.MACROS_ENUM_ENTRIES_MAP['sap.fe.macros.richtexteditor.ButtonGroup'].buttons.values)
|
|
250
|
+
}
|
|
145
251
|
}
|
|
146
252
|
};
|
|
147
253
|
/**
|
|
@@ -189,7 +295,7 @@ function applyCorrectionForNode(node, correction) {
|
|
|
189
295
|
for (const aggregation of correction.removeAggregations || []) {
|
|
190
296
|
const aggregationIndex = node.aggregations.findIndex((existingAggregation) => existingAggregation.name === aggregation);
|
|
191
297
|
if (aggregationIndex !== -1) {
|
|
192
|
-
node.aggregations.splice(aggregationIndex);
|
|
298
|
+
node.aggregations.splice(aggregationIndex, 1);
|
|
193
299
|
}
|
|
194
300
|
}
|
|
195
301
|
for (const property of correction.properties || []) {
|
|
@@ -230,7 +336,8 @@ function applyCorrectionForEnums(api) {
|
|
|
230
336
|
property = symbol[types_1.CLASS_SYMBOL_METADATA_PROPERTY].properties.find((ui5Property) => ui5Property.name === name);
|
|
231
337
|
}
|
|
232
338
|
if (property) {
|
|
233
|
-
property.allowedValues = properties[name];
|
|
339
|
+
property.allowedValues = properties[name].options;
|
|
340
|
+
property.multiSelect = properties[name].multiSelect;
|
|
234
341
|
}
|
|
235
342
|
}
|
|
236
343
|
}
|