@sap/ux-specification 1.136.15 → 1.136.17
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 +258 -165
- 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 +100 -10
- 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/scripts/schema/to-json-schema.d.ts.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +2 -13
- package/dist/specification/scripts/schema/to-json-schema.js.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 -6
- 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/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 +20 -0
- package/dist/specification/src/sync/common/rules.d.ts.map +1 -1
- package/dist/specification/src/sync/common/rules.js +22 -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 +84 -58
- 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.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +2 -2
- 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} +191 -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
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_TABLE_TYPE = void 0;
|
|
6
7
|
exports.addSelectionFields = addSelectionFields;
|
|
7
8
|
exports.getVisualFilters = getVisualFilters;
|
|
8
9
|
exports.addVisualFilters = addVisualFilters;
|
|
@@ -12,21 +13,23 @@ exports.addALPViews = addALPViews;
|
|
|
12
13
|
exports.applyLRSchemaAdjustments = applyLRSchemaAdjustments;
|
|
13
14
|
exports.addTagsToView = addTagsToView;
|
|
14
15
|
exports.addLRViewParts = addLRViewParts;
|
|
15
|
-
exports.getDefaultAnnotationPath = getDefaultAnnotationPath;
|
|
16
16
|
exports.addHeaderActions = addHeaderActions;
|
|
17
17
|
exports.addManifestPathsToPropertiesLR = addManifestPathsToPropertiesLR;
|
|
18
18
|
exports.generateListReportSchemaV4 = generateListReportSchemaV4;
|
|
19
|
-
const utils_1 = require("
|
|
20
|
-
const utils_2 = require("
|
|
19
|
+
const utils_1 = require("../../utils");
|
|
20
|
+
const utils_2 = require("../../utils");
|
|
21
21
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
22
22
|
const i18next_1 = __importDefault(require("i18next"));
|
|
23
|
-
const extensionLogger_1 = require("
|
|
24
|
-
const common_1 = require("
|
|
25
|
-
const actions_1 = require("
|
|
26
|
-
const
|
|
27
|
-
const App_1 = require("../sync-rules/App");
|
|
28
|
-
const Page_1 = require("../sync-rules/Page");
|
|
23
|
+
const extensionLogger_1 = require("../../../../extensionLogger");
|
|
24
|
+
const common_1 = require("../../../common");
|
|
25
|
+
const actions_1 = require("../actions");
|
|
26
|
+
const sync_rules_1 = require("../../sync-rules");
|
|
29
27
|
const ListReportUtils_1 = require("./ListReportUtils");
|
|
28
|
+
const controls_1 = require("../../export/controls");
|
|
29
|
+
/**
|
|
30
|
+
* Default table type when not specified in manifest.
|
|
31
|
+
*/
|
|
32
|
+
exports.DEFAULT_TABLE_TYPE = ux_specification_types_1.v4.TableTypeV4.ResponsiveTable;
|
|
30
33
|
const ROOT_PROPERTIES_ORDER = ['header', 'filterBar', 'chart', 'table'];
|
|
31
34
|
const UILINEITEM = '@UI.LineItem';
|
|
32
35
|
/**
|
|
@@ -40,6 +43,7 @@ const UILINEITEM = '@UI.LineItem';
|
|
|
40
43
|
* @returns {Definition} - the updated selection fields definition
|
|
41
44
|
*/
|
|
42
45
|
function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, selectionFieldsDefinition, qualifier) {
|
|
46
|
+
// No @validity check needed here
|
|
43
47
|
if (!selectionFieldsDefinition) {
|
|
44
48
|
selectionFieldsDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields];
|
|
45
49
|
selectionFieldsDefinition.additionalProperties = false;
|
|
@@ -51,8 +55,9 @@ function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, se
|
|
|
51
55
|
if (selectionFieldsAnnotation) {
|
|
52
56
|
let i = 0;
|
|
53
57
|
selectionFieldsAnnotation?.forEach((selectionField) => {
|
|
58
|
+
const value = selectionField.value ?? `UnknownField${i}`;
|
|
54
59
|
let description = selectionField.value;
|
|
55
|
-
const fieldDefinition = 'SelectionField::' + (0, common_1.prepareRef)(
|
|
60
|
+
const fieldDefinition = 'SelectionField::' + (0, common_1.prepareRef)(value);
|
|
56
61
|
if (selectionField.type === 'PropertyPath') {
|
|
57
62
|
description = (0, common_1.getLabelForPropertyPath)(selectionField, entityType);
|
|
58
63
|
}
|
|
@@ -68,10 +73,14 @@ function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, se
|
|
|
68
73
|
additionalProperties: false,
|
|
69
74
|
...(dataType && { dataType })
|
|
70
75
|
};
|
|
76
|
+
if (selectionField.value === undefined) {
|
|
77
|
+
// Add message about unresolvable value for selection field
|
|
78
|
+
(0, common_1.addMessageToSchema)(appSchema.definitions[fieldDefinition], {
|
|
79
|
+
text: i18next_1.default.t('UNRESOLVABLE_VALUE_OF_SELECTION_FIELD')
|
|
80
|
+
});
|
|
81
|
+
}
|
|
71
82
|
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.isViewNode] = true;
|
|
72
|
-
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.keys] = [
|
|
73
|
-
{ name: ux_specification_types_1.SchemaKeyName.value, value: `${selectionField.value}` }
|
|
74
|
-
];
|
|
83
|
+
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.value, value: `${value}` }];
|
|
75
84
|
if (selectionField.$target?.fullyQualifiedName.indexOf('@') > -1) {
|
|
76
85
|
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.target] = selectionField.$target.fullyQualifiedName
|
|
77
86
|
.split('@')[0]
|
|
@@ -130,6 +139,7 @@ function getPropertiesIndex(selectionFields, entityType) {
|
|
|
130
139
|
* @param selectionFields - The selection fields annotation to be processed
|
|
131
140
|
*/
|
|
132
141
|
function addVisualFilters(entityType, appSchema, visualFiltersManifest, selectionFields) {
|
|
142
|
+
// No @validity check needed here
|
|
133
143
|
const propertiesIndex = getPropertiesIndex(selectionFields, entityType);
|
|
134
144
|
const visualFilters = appSchema.definitions[ux_specification_types_1.DefinitionName.VisualFilters];
|
|
135
145
|
visualFilters.properties = {};
|
|
@@ -171,6 +181,8 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
|
|
|
171
181
|
};
|
|
172
182
|
(0, utils_2.addCustomFilterFieldDefinition)(appSchema, selectionFieldsDefinition, v4Page);
|
|
173
183
|
const customSectionDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CustomFilterFieldPosition];
|
|
184
|
+
// Instantiate for @validity check
|
|
185
|
+
new controls_1.CustomFilterFieldPosition().init();
|
|
174
186
|
if (typeof customSectionDefinition === 'object') {
|
|
175
187
|
(0, common_1.addDescriptiveEnumDefinition)(appSchema, selectionFieldsDefinition, {
|
|
176
188
|
schema: customSectionDefinition,
|
|
@@ -395,6 +407,8 @@ function addALPChartView(appSchema, chartAnnotationPath, targetAnnotation, annot
|
|
|
395
407
|
chartView[ux_specification_types_1.SchemaTag.artifactType] = ux_specification_types_1.ArtifactType.Manifest;
|
|
396
408
|
chartView[ux_specification_types_1.SchemaTag.key] = 'primary';
|
|
397
409
|
chartView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'primary' }];
|
|
410
|
+
// Instantiate for @validity check
|
|
411
|
+
new controls_1.ALPChart().init();
|
|
398
412
|
}
|
|
399
413
|
/**
|
|
400
414
|
* Adds the ALP views to the app-specific schema.
|
|
@@ -527,8 +541,9 @@ function addViewChartDefinitions(inputParameters, annotations) {
|
|
|
527
541
|
* @param viewKey - view key
|
|
528
542
|
* @param title - view title
|
|
529
543
|
* @param page - Represents the page in the application's structure where the view line items are to be added.
|
|
544
|
+
* @param app - Represents the overall application structure, providing access to the manifest.
|
|
530
545
|
*/
|
|
531
|
-
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title, page) {
|
|
546
|
+
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title, page, app) {
|
|
532
547
|
const idForChart = addViewChartDefinitions(inputParameters, UIAnnotations);
|
|
533
548
|
const chartViewDefinition = appSchema.definitions[idForChart];
|
|
534
549
|
chartViewDefinition.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
@@ -542,8 +557,8 @@ function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition
|
|
|
542
557
|
};
|
|
543
558
|
// Add "manifestPath" for table properties
|
|
544
559
|
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRChartView, chartViewDefinition, {
|
|
545
|
-
pageName: page.
|
|
546
|
-
manifest:
|
|
560
|
+
pageName: page.target.id,
|
|
561
|
+
manifest: app.manifest,
|
|
547
562
|
targetAnnotation: inputParameters.targetAnnotation,
|
|
548
563
|
viewConfig: {
|
|
549
564
|
key: viewKey,
|
|
@@ -573,96 +588,6 @@ function getLineItemRef(v4Page, entityType, viewKey, lineItemTerm, lineItemQuali
|
|
|
573
588
|
`@${lineItemTerm}${qualifier}`;
|
|
574
589
|
return entitySet ? `/${entitySet}/${lineItemReference}` : lineItemReference;
|
|
575
590
|
}
|
|
576
|
-
/**
|
|
577
|
-
* Adjusts the schema definition related to the creation fields in the list report (LR) table.
|
|
578
|
-
* This function modifies the app schema to handle the creation mode and relevant settings for the table.
|
|
579
|
-
*
|
|
580
|
-
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
581
|
-
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
582
|
-
*/
|
|
583
|
-
function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
584
|
-
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey } = schemaAdjustmentParameters;
|
|
585
|
-
// when the table view is created, the entity type may differ from the one used for the table
|
|
586
|
-
// schemaAdjustmentParameters contains the entity type used for the view
|
|
587
|
-
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term);
|
|
588
|
-
// set specific implementation for creation fields in the LR table
|
|
589
|
-
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
590
|
-
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
591
|
-
const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
|
|
592
|
-
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
593
|
-
const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
|
|
594
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey, appSchema);
|
|
595
|
-
const context = {
|
|
596
|
-
page: v4Page,
|
|
597
|
-
schema: creationModeDefinition,
|
|
598
|
-
parameters: {
|
|
599
|
-
lineItemRef,
|
|
600
|
-
tableDefinition
|
|
601
|
-
}
|
|
602
|
-
};
|
|
603
|
-
// for the AnalyticalTable we don't set the creation mode property
|
|
604
|
-
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForAnalyticalTable, context);
|
|
605
|
-
// the TreeTable has some specific properties in the creation mode
|
|
606
|
-
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForNonTreeTable, context);
|
|
607
|
-
// only in CreationDialog mode is the creationFields property allowed
|
|
608
|
-
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForNonCreationDialogMode, context);
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* Adjusts the schema definition related to the analytical configuration in the list report (LR) table.
|
|
612
|
-
* This function modifies the app schema to handle the analytical configuration and relevant settings for the table.
|
|
613
|
-
*
|
|
614
|
-
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
615
|
-
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
616
|
-
*/
|
|
617
|
-
function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
618
|
-
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
619
|
-
// when the table view is created, the entity type may differ from the one used for the table
|
|
620
|
-
// schemaAdjustmentParameters contains the entity type used for the view
|
|
621
|
-
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
622
|
-
// set specific implementation for analytical configuration in the LR table
|
|
623
|
-
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
624
|
-
const analyticalConfigurationDefinitionName = viewKey
|
|
625
|
-
? ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration
|
|
626
|
-
: ux_specification_types_1.DefinitionName.AnalyticalConfiguration;
|
|
627
|
-
const analyticalConfigurationDefinition = appSchema.definitions[analyticalConfigurationDefinitionName] ??
|
|
628
|
-
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionKey, appSchema);
|
|
629
|
-
const context = {
|
|
630
|
-
page: v4Page,
|
|
631
|
-
schema: analyticalConfigurationDefinition,
|
|
632
|
-
parameters: {
|
|
633
|
-
lineItemRef,
|
|
634
|
-
tableDefinition
|
|
635
|
-
}
|
|
636
|
-
};
|
|
637
|
-
// for the AnalyticalTable we set the analytical configuration property
|
|
638
|
-
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRAnalyticalConfigurationForNonAnalyticalTable, context);
|
|
639
|
-
}
|
|
640
|
-
/**
|
|
641
|
-
* Adjusts the schema definition related to the popin layout in the list report (LR) table.
|
|
642
|
-
* This function modifies the app schema to handle the popin layout and relevant settings for the table.
|
|
643
|
-
*
|
|
644
|
-
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
645
|
-
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
646
|
-
*/
|
|
647
|
-
function adjustPopinLayout(schemaAdjustmentParameters) {
|
|
648
|
-
const { entityType, appSchema, tableDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
649
|
-
// when the table view is created, the entity type may differ from the one used for the table
|
|
650
|
-
// schemaAdjustmentParameters contains the entity type used for the view
|
|
651
|
-
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
652
|
-
// set specific implementation for popinLayout in the LR table
|
|
653
|
-
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
654
|
-
const popinLayoutDefinition = tableDefinition.properties['popinLayout'];
|
|
655
|
-
const context = {
|
|
656
|
-
page: v4Page,
|
|
657
|
-
schema: popinLayoutDefinition,
|
|
658
|
-
parameters: {
|
|
659
|
-
lineItemRef,
|
|
660
|
-
tableDefinition
|
|
661
|
-
}
|
|
662
|
-
};
|
|
663
|
-
// for the ResponsiveTable (default table type) we allow to set the popin layout property
|
|
664
|
-
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRPopinLayoutForNonResponsiveTable, context);
|
|
665
|
-
}
|
|
666
591
|
/**
|
|
667
592
|
* Adjusts the schema for a table by making necessary changes such as populating creation fields,
|
|
668
593
|
* adjusting creation field definitions, and adding enum mappings for mass edit functionalities.
|
|
@@ -674,16 +599,85 @@ function applyLRSchemaAdjustments(schemaAdjustmentParameters) {
|
|
|
674
599
|
// in the future, all postgeneration adjustments for the LR Page should be done here
|
|
675
600
|
// populate the creation fields for the table with the data from the columns
|
|
676
601
|
(0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionKey, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
|
|
677
|
-
//
|
|
678
|
-
|
|
679
|
-
// remove unnecessary properties from the analytical configuration aggregation according to the table type
|
|
680
|
-
adjustAnalyticalConfiguration(schemaAdjustmentParameters);
|
|
681
|
-
adjustPopinLayout(schemaAdjustmentParameters);
|
|
602
|
+
// Apply decorator-based visibility rules for table properties
|
|
603
|
+
applyTableDecorators(schemaAdjustmentParameters);
|
|
682
604
|
// add columns to a enum, in this case enableMassEdit -> visibleFields and ignoredFields
|
|
683
605
|
(0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionKey, facetDefinitionKey, entityType);
|
|
684
606
|
// add the custom action and custom action menu definition
|
|
685
607
|
(0, actions_1.configureCustomActionDefinition)(schemaAdjustmentParameters);
|
|
686
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* Retrieves the table settings from the manifest for a given line item reference.
|
|
611
|
+
* The returned object includes both TableSettings and Table-level properties
|
|
612
|
+
* like creationMode, analyticalConfiguration, and popinLayout.
|
|
613
|
+
*
|
|
614
|
+
* @param v4Page - The V4 page configuration from manifest
|
|
615
|
+
* @param lineItemRef - The line item reference (e.g., '@UI.LineItem')
|
|
616
|
+
* @returns The table settings or undefined if not found
|
|
617
|
+
*/
|
|
618
|
+
function getTableSettingsFromManifest(v4Page, lineItemRef) {
|
|
619
|
+
return v4Page?.options?.settings?.controlConfiguration?.[lineItemRef ?? '']?.[ux_specification_types_1.PropertyName.tableSettings];
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Applies decorator-based visibility rules to table and creation mode definitions.
|
|
623
|
+
* This function uses the @hide and @message decorators defined on the Table and TableCreationModeLR classes
|
|
624
|
+
* to conditionally hide properties and show warning messages based on table type and settings.
|
|
625
|
+
*
|
|
626
|
+
* @param schemaAdjustmentParameters - Parameters containing schema, page, and table definition information
|
|
627
|
+
*/
|
|
628
|
+
function applyTableDecorators(schemaAdjustmentParameters) {
|
|
629
|
+
const { appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey, entityType, dataForLineItem } = schemaAdjustmentParameters;
|
|
630
|
+
// Get the line item reference for looking up table settings in manifest
|
|
631
|
+
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem?.lineItemAnnotation?.qualifier);
|
|
632
|
+
// Get table settings from manifest and build custom context for decorator evaluation
|
|
633
|
+
const tableSettings = getTableSettingsFromManifest(v4Page, lineItemRef);
|
|
634
|
+
const customContext = {
|
|
635
|
+
...tableSettings,
|
|
636
|
+
type: tableSettings?.type ?? exports.DEFAULT_TABLE_TYPE
|
|
637
|
+
};
|
|
638
|
+
// Get the table definition to apply decorators to
|
|
639
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
640
|
+
// Get the creation mode definition
|
|
641
|
+
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
642
|
+
const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
|
|
643
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey, appSchema);
|
|
644
|
+
// Set up the $ref for creationMode property
|
|
645
|
+
if (tableDefinition?.properties?.[ux_specification_types_1.PropertyName.creationMode]) {
|
|
646
|
+
const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
|
|
647
|
+
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
648
|
+
}
|
|
649
|
+
// Apply decorators to the Table definition (creationMode, analyticalConfiguration, popinLayout)
|
|
650
|
+
// Create a Table instance and apply its decorators to the specific table definition
|
|
651
|
+
new controls_1.Table().init(customContext, tableDefinition);
|
|
652
|
+
// Apply decorators to the TableCreationModeLR definition (creationFields, createInPlace, isCreateEnabled)
|
|
653
|
+
new controls_1.TableCreationModeLR().init(customContext, creationModeDefinition);
|
|
654
|
+
// Apply analyticalConfiguration decorators only when the property is specified in manifest
|
|
655
|
+
const hasAnalyticalConfiguration = tableSettings?.analyticalConfiguration !== undefined;
|
|
656
|
+
if (!hasAnalyticalConfiguration) {
|
|
657
|
+
return;
|
|
658
|
+
}
|
|
659
|
+
if (viewKey) {
|
|
660
|
+
// Multi-view: create a view-specific definition to isolate decorator messages per view
|
|
661
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration, viewKey, appSchema);
|
|
662
|
+
const definitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration, viewKey);
|
|
663
|
+
const definition = appSchema.definitions[definitionKey];
|
|
664
|
+
if (definition) {
|
|
665
|
+
new controls_1.ViewAnalyticalConfiguration().init(customContext, definition);
|
|
666
|
+
// Update the table's $ref to point to the view-specific definition
|
|
667
|
+
const analyticalConfigProp = tableDefinition?.properties?.[ux_specification_types_1.PropertyName.analyticalConfiguration];
|
|
668
|
+
if (analyticalConfigProp) {
|
|
669
|
+
analyticalConfigProp.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration, viewKey);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
else {
|
|
674
|
+
// Single table: use the shared definition
|
|
675
|
+
const definition = appSchema.definitions[ux_specification_types_1.DefinitionName.AnalyticalConfiguration];
|
|
676
|
+
if (definition) {
|
|
677
|
+
new controls_1.AnalyticalConfiguration().init(customContext, definition);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
687
681
|
/**
|
|
688
682
|
* Modifies the app schema, adds the right line item settings as derived from the visualization.
|
|
689
683
|
*
|
|
@@ -695,11 +689,13 @@ function applyLRSchemaAdjustments(schemaAdjustmentParameters) {
|
|
|
695
689
|
* @param generateParameters.serviceAVT - OData service AVT information
|
|
696
690
|
* @param generateParameters.entityType - entity type of the current page
|
|
697
691
|
* @param {Page} page - Represents the page in the application's structure where the view line items are to be added.
|
|
692
|
+
* @param app - the application object containing manifest and other app-specific information.
|
|
698
693
|
* @param {ExtensionLogger} logger - Logger for recording informational or error messages during the schema adjustment process.
|
|
699
694
|
*/
|
|
700
|
-
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page, logger) {
|
|
695
|
+
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page, app, logger) {
|
|
701
696
|
const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
|
|
702
|
-
const
|
|
697
|
+
const schemaIdForColumns = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
|
|
698
|
+
const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${schemaIdForColumns}>`;
|
|
703
699
|
const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
|
|
704
700
|
delete lrTableView[ux_specification_types_1.SchemaTag.isViewNode];
|
|
705
701
|
lrTableView[ux_specification_types_1.SchemaTag.annotationPath] = inputParameters.targetAnnotation;
|
|
@@ -710,14 +706,14 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
710
706
|
lrTableView['entitySet'] = inputParameters.entitySet;
|
|
711
707
|
}
|
|
712
708
|
//Copy toolbar
|
|
713
|
-
(0, common_1.addDefinitionRef)(lrTableView.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar,
|
|
709
|
+
(0, common_1.addDefinitionRef)(lrTableView.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar, schemaIdForColumns);
|
|
714
710
|
const title = `Table View (key: ${inputParameters.viewKey})`;
|
|
715
711
|
viewsDefinition.properties[inputParameters.viewKey] = {
|
|
716
712
|
$ref: `${common_1.DEFINITION_LINK_PREFIX}${tableId}`,
|
|
717
713
|
description: inputParameters.title || title,
|
|
718
714
|
title
|
|
719
715
|
};
|
|
720
|
-
(0, common_1.addDefinitionRef)(lrTableView.properties.columns,
|
|
716
|
+
(0, common_1.addDefinitionRef)(lrTableView.properties.columns, schemaIdForColumns);
|
|
721
717
|
lrTableView.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
722
718
|
lrTableView.properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
723
719
|
lrTableView.properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
@@ -728,30 +724,29 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
728
724
|
lineItemAnnotation: inputParameters.targetEntityType?.annotations.UI[annotationTerm],
|
|
729
725
|
entityType: inputParameters.targetEntityType,
|
|
730
726
|
oDataServiceAVT: serviceAVT,
|
|
731
|
-
lineItemId:
|
|
727
|
+
lineItemId: schemaIdForColumns
|
|
732
728
|
};
|
|
733
729
|
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn, ux_specification_types_1.DefinitionName.ViewCustomColumn, ux_specification_types_1.DefinitionName.ViewCustomAction);
|
|
734
730
|
// Table toolbar actions with custom actions
|
|
735
731
|
const sectionIdPrefix = inputParameters.entitySet ? `/${inputParameters.entitySet}/` : '';
|
|
736
732
|
const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
|
|
737
|
-
const
|
|
738
|
-
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${viewId}>`;
|
|
733
|
+
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${schemaIdForColumns}>`;
|
|
739
734
|
// Anchor selection
|
|
740
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition,
|
|
741
|
-
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${
|
|
735
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, schemaIdForColumns, inputParameters.appSchema);
|
|
736
|
+
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${schemaIdForColumns}>`;
|
|
742
737
|
const customActionDefinition = inputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
743
738
|
customActionDefinition.properties.position.$ref =
|
|
744
739
|
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
745
740
|
const schemaAdjustmentParameters = {
|
|
746
741
|
logger: logger,
|
|
747
742
|
appSchema: inputParameters.appSchema,
|
|
748
|
-
v4Page: page.
|
|
743
|
+
v4Page: page.target,
|
|
749
744
|
tableDefinitionKey: tableId,
|
|
750
|
-
facetDefinitionKey:
|
|
745
|
+
facetDefinitionKey: schemaIdForColumns,
|
|
751
746
|
viewKey: inputParameters.viewKey,
|
|
752
747
|
entityType: inputParameters.targetEntityType || entityType,
|
|
753
748
|
dataForLineItem,
|
|
754
|
-
sectionActionsDefinitionKey:
|
|
749
|
+
sectionActionsDefinitionKey: schemaIdForActions,
|
|
755
750
|
scopedCustomActionDefinitionKey: customActionDefinitionKey,
|
|
756
751
|
customActionDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomAction,
|
|
757
752
|
sectionIdInManifest,
|
|
@@ -760,14 +755,16 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
760
755
|
applyLRSchemaAdjustments(schemaAdjustmentParameters);
|
|
761
756
|
// Add "manifestPath" for table properties
|
|
762
757
|
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRTableView, lrTableView, {
|
|
763
|
-
pageName: page.
|
|
764
|
-
manifest:
|
|
758
|
+
pageName: page.target.id,
|
|
759
|
+
manifest: app.manifest,
|
|
765
760
|
targetAnnotation: inputParameters.targetAnnotation,
|
|
766
761
|
viewConfig: {
|
|
767
762
|
key: inputParameters.viewKey,
|
|
768
763
|
entitySet: inputParameters.entitySet
|
|
769
764
|
}
|
|
770
|
-
});
|
|
765
|
+
}, true);
|
|
766
|
+
// Add "manifestPath" for view actions
|
|
767
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(inputParameters.appSchema, page.target.id, schemaIdForActions, app.getManifest(), inputParameters.targetAnnotation, inputParameters.entitySet);
|
|
771
768
|
}
|
|
772
769
|
/**
|
|
773
770
|
* Adds the schema tags to a given view.
|
|
@@ -792,17 +789,20 @@ function addTagsToView(viewsDefinition, viewKey, namespace, view) {
|
|
|
792
789
|
* @param commonInputParameters - list of input parameters as collected by the calling instance
|
|
793
790
|
* @param visualization - visualization of the annotation
|
|
794
791
|
* @param v4Page - the given page in manifest
|
|
792
|
+
* @param manifest - The application manifest
|
|
795
793
|
* @param logger - extension logger
|
|
796
794
|
*/
|
|
797
|
-
function addViewCustomExtensions(commonInputParameters, visualization, v4Page, logger) {
|
|
798
|
-
const
|
|
795
|
+
function addViewCustomExtensions(commonInputParameters, visualization, v4Page, manifest, logger) {
|
|
796
|
+
const schemaIdForColumns = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${commonInputParameters.viewKey}`;
|
|
799
797
|
const sectionIdPrefix = commonInputParameters.entitySet ? `/${commonInputParameters.entitySet}/` : '';
|
|
800
798
|
const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
|
|
801
|
-
const viewColumnDefinition = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomColumn,
|
|
802
|
-
(0, common_1.addDefinitionRef)(viewColumnDefinition.properties.position, ux_specification_types_1.DefinitionName.ViewPosition,
|
|
803
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewPosition,
|
|
804
|
-
(0, utils_2.addCustomColumnDefinition)(commonInputParameters.appSchema, v4Page, logger, `${ux_specification_types_1.DefinitionName.ViewCustomColumn}<${
|
|
805
|
-
(0, utils_2.addFragmentEnumForAnchor)(commonInputParameters.appSchema,
|
|
799
|
+
const viewColumnDefinition = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomColumn, schemaIdForColumns, commonInputParameters.appSchema);
|
|
800
|
+
(0, common_1.addDefinitionRef)(viewColumnDefinition.properties.position, ux_specification_types_1.DefinitionName.ViewPosition, schemaIdForColumns);
|
|
801
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewPosition, schemaIdForColumns, commonInputParameters.appSchema);
|
|
802
|
+
(0, utils_2.addCustomColumnDefinition)(commonInputParameters.appSchema, v4Page, logger, `${ux_specification_types_1.DefinitionName.ViewCustomColumn}<${schemaIdForColumns}>`, schemaIdForColumns, sectionIdInManifest);
|
|
803
|
+
(0, utils_2.addFragmentEnumForAnchor)(commonInputParameters.appSchema, schemaIdForColumns, v4Page, `${ux_specification_types_1.DefinitionName.ViewPosition}<${schemaIdForColumns}>`, sectionIdInManifest);
|
|
804
|
+
// Add "manifestPath" for view columns
|
|
805
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(commonInputParameters.appSchema, v4Page.id, schemaIdForColumns, manifest, commonInputParameters.targetAnnotation, commonInputParameters.entitySet);
|
|
806
806
|
// Remove generic position
|
|
807
807
|
if (commonInputParameters.appSchema.definitions.Position) {
|
|
808
808
|
delete commonInputParameters.appSchema.definitions.Position;
|
|
@@ -819,18 +819,19 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
|
|
|
819
819
|
* @param generateParameters.entityType - entity type of the current page
|
|
820
820
|
* @param generateParameters.logger - extension logger
|
|
821
821
|
* @param page - the current page object
|
|
822
|
+
* @param app - the application object containing manifest and other app-specific information.
|
|
822
823
|
* @param uiAnnotations - UI annotations of the given entityType
|
|
823
824
|
* @param view - the given view
|
|
824
825
|
*/
|
|
825
|
-
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, uiAnnotations, view) {
|
|
826
|
+
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, app, uiAnnotations, view) {
|
|
826
827
|
if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
|
|
827
828
|
//Add Line item view
|
|
828
|
-
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page, logger);
|
|
829
|
-
addViewCustomExtensions(commonInputParameters, visualization, page.
|
|
829
|
+
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page, app, logger);
|
|
830
|
+
addViewCustomExtensions(commonInputParameters, visualization, page.target, app.getManifest(), logger);
|
|
830
831
|
}
|
|
831
832
|
else if (visualization?.indexOf('Chart') > -1) {
|
|
832
833
|
//Add Chart view
|
|
833
|
-
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title, page);
|
|
834
|
+
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title, page, app);
|
|
834
835
|
}
|
|
835
836
|
else if (view['template']) {
|
|
836
837
|
const titleOnHover = view['label'] || `Custom View (key: ${commonInputParameters.viewKey})`;
|
|
@@ -854,17 +855,16 @@ function addLRViewParts(visualization, viewsDefinition, commonInputParameters, {
|
|
|
854
855
|
/**
|
|
855
856
|
* Checks for the default annotation path to use for LR table.
|
|
856
857
|
*
|
|
857
|
-
* @param
|
|
858
|
-
* @param entityType - actual entity type (AVT information)
|
|
859
|
-
* @param templateType - The type of template being used (e.g., ListReportObjectPageV4 or AnalyticalListPageV4)
|
|
858
|
+
* @param page - the current page object
|
|
860
859
|
* @returns annotation term
|
|
861
860
|
*/
|
|
862
|
-
function getDefaultAnnotationPath(
|
|
863
|
-
|
|
861
|
+
function getDefaultAnnotationPath(page) {
|
|
862
|
+
const { entity: { type: entityType }, template: { type: templateType }, target } = page;
|
|
863
|
+
if (target?.options?.settings?.views?.paths && templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
864
864
|
return;
|
|
865
865
|
}
|
|
866
|
-
if (
|
|
867
|
-
return
|
|
866
|
+
if (target?.options?.settings?.defaultTemplateAnnotationPath) {
|
|
867
|
+
return target?.options?.settings.defaultTemplateAnnotationPath;
|
|
868
868
|
}
|
|
869
869
|
if (templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
870
870
|
return (entityType?.annotations.UI?.SelectionPresentationVariant?.term ||
|
|
@@ -904,8 +904,9 @@ function addHeaderActions(appSchema, v4Page, logger) {
|
|
|
904
904
|
* @param definitionName - The name of the definition/class whose properties are being processed.
|
|
905
905
|
* @param definition - The definition object containing property schemas.
|
|
906
906
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
907
|
+
* @param handleRelative - A flag indicating whether to use relative paths for definition properties.
|
|
907
908
|
*/
|
|
908
|
-
function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, pathParams) {
|
|
909
|
+
function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, pathParams, handleRelative = false) {
|
|
909
910
|
let targetAnnotation = undefined;
|
|
910
911
|
if (pathParams.targetAnnotation) {
|
|
911
912
|
const annotationParts = pathParams.targetAnnotation?.split('/');
|
|
@@ -921,8 +922,13 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
921
922
|
}
|
|
922
923
|
(0, utils_1.addManifestPathsToProperties)(appSchema, definitionName, definition, {
|
|
923
924
|
...pathParams,
|
|
924
|
-
pathsParts: [
|
|
925
|
-
|
|
925
|
+
pathsParts: [
|
|
926
|
+
pathParams.sectionId ? undefined : targetAnnotation,
|
|
927
|
+
pathParams.columnKey ? pathParams.columnKey : '',
|
|
928
|
+
targetAnnotation,
|
|
929
|
+
pathParams.viewConfig
|
|
930
|
+
]
|
|
931
|
+
}, handleRelative);
|
|
926
932
|
}
|
|
927
933
|
/**
|
|
928
934
|
* Adds 'manifestPath' to static nodes in schema.
|
|
@@ -931,6 +937,8 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
931
937
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
932
938
|
*/
|
|
933
939
|
function addManifestPathsToStaticNodes(appSchema, pathParams) {
|
|
940
|
+
// Add "manifestPath" for current page
|
|
941
|
+
appSchema['manifestPath'] = (0, utils_1.getPageManifestPath)(pathParams);
|
|
934
942
|
// Root level - rules stored on page class level
|
|
935
943
|
addManifestPathsToPropertiesLR(appSchema, ux_specification_types_1.PageTypeV4.ListReport, appSchema, pathParams);
|
|
936
944
|
// Other definitions
|
|
@@ -955,17 +963,24 @@ class ListReportPage {
|
|
|
955
963
|
* @param contextPath - context path of the page
|
|
956
964
|
*/
|
|
957
965
|
constructor(generateParameters, schema, templateName, contextPath) {
|
|
958
|
-
|
|
959
|
-
this.
|
|
960
|
-
this.
|
|
966
|
+
const template = { name: templateName, type: generateParameters.templateType };
|
|
967
|
+
this.appSchema = new sync_rules_1.AppSchema(schema);
|
|
968
|
+
this.app = (0, sync_rules_1.createApp)(generateParameters.manifest, generateParameters.serviceAVT, generateParameters.logger);
|
|
969
|
+
this.page = new sync_rules_1.Page(this.app, template, generateParameters.entitySet, generateParameters.entityType, contextPath);
|
|
970
|
+
this.logger = this.app.logger;
|
|
971
|
+
this.page.addConfig({
|
|
972
|
+
isALP: template.type === ux_specification_types_1.TemplateType.AnalyticalListPageV4,
|
|
973
|
+
views: this.page.target?.options?.settings.views,
|
|
974
|
+
defaultAnnotation: getDefaultAnnotationPath(this.page)
|
|
975
|
+
});
|
|
961
976
|
}
|
|
962
977
|
/**
|
|
963
978
|
* Cleans up the schema by hiding specific properties and removing unnecessary definitions.
|
|
964
979
|
*/
|
|
965
980
|
cleanup() {
|
|
966
|
-
this.
|
|
967
|
-
this.
|
|
968
|
-
(0, common_1.updatePropertyIndices)(this.
|
|
981
|
+
this.appSchema.hide(this.appSchema.getRootProperty([ux_specification_types_1.PropertyName.defaultTemplateAnnotationPath]));
|
|
982
|
+
this.appSchema.cleanup(['GenericColumns', 'Action']);
|
|
983
|
+
(0, common_1.updatePropertyIndices)(this.appSchema.get(), ROOT_PROPERTIES_ORDER);
|
|
969
984
|
}
|
|
970
985
|
/**
|
|
971
986
|
* Generates the finalized schema for the List Report page.
|
|
@@ -973,20 +988,33 @@ class ListReportPage {
|
|
|
973
988
|
* @returns The finalized schema for List Report page
|
|
974
989
|
*/
|
|
975
990
|
generate() {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
991
|
+
const params = {
|
|
992
|
+
appSchema: this.appSchema,
|
|
993
|
+
app: this.app,
|
|
994
|
+
page: this.page,
|
|
995
|
+
logger: this.logger
|
|
996
|
+
};
|
|
997
|
+
new ListReportUtils_1.GeneralListReportSettings(params).init();
|
|
998
|
+
if (!this.page.target) {
|
|
999
|
+
return this.appSchema.get();
|
|
979
1000
|
}
|
|
980
|
-
new
|
|
981
|
-
new
|
|
982
|
-
new
|
|
1001
|
+
new controls_1.Header(params).init();
|
|
1002
|
+
new controls_1.HeaderActions(params).init();
|
|
1003
|
+
new controls_1.CustomHeaderAction(params).init();
|
|
1004
|
+
new ListReportUtils_1.FilterBar(params).init();
|
|
1005
|
+
new ListReportUtils_1.TableAndViews(params).init();
|
|
983
1006
|
// Add "manifestPath" for properties in static nodes
|
|
984
|
-
addManifestPathsToStaticNodes(this.
|
|
985
|
-
pageName: this.page.
|
|
1007
|
+
addManifestPathsToStaticNodes(this.appSchema.get(), {
|
|
1008
|
+
pageName: this.page.target.id,
|
|
986
1009
|
manifest: this.app.getManifest()
|
|
987
1010
|
});
|
|
1011
|
+
// Add "manifestPath" for custom header actions
|
|
1012
|
+
const definitionNames = [ux_specification_types_1.DefinitionName.HeaderActions];
|
|
1013
|
+
definitionNames.forEach((definitionName) => {
|
|
1014
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(this.appSchema.get(), this.page.target.id, definitionName, this.app.getManifest());
|
|
1015
|
+
});
|
|
988
1016
|
this.cleanup();
|
|
989
|
-
return this.
|
|
1017
|
+
return this.appSchema.get();
|
|
990
1018
|
}
|
|
991
1019
|
}
|
|
992
1020
|
/**
|
|
@@ -1003,7 +1031,7 @@ function generateListReportSchemaV4(generateParameters, genericSchema, templateN
|
|
|
1003
1031
|
const listReport = new ListReportPage(generateParameters, genericSchema, templateName, contextPath);
|
|
1004
1032
|
if (!listReport.app.getManifest()) {
|
|
1005
1033
|
listReport.cleanup();
|
|
1006
|
-
return listReport.
|
|
1034
|
+
return listReport.appSchema.get();
|
|
1007
1035
|
}
|
|
1008
1036
|
return listReport.generate();
|
|
1009
1037
|
}
|