@sap/ux-specification 1.136.14 → 1.136.16
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 +250 -146
- 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 +269 -266
- 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 +120 -41
- package/dist/schemas/v4/ListReportConfig.json +275 -34
- package/dist/schemas/v4/ObjectPageConfig.json +417 -138
- package/dist/specification/package.json +13 -11
- 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 +98 -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 +11 -2
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/macros/types.d.ts +2 -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.d.ts.map +1 -1
- package/dist/specification/src/api.js +2 -1
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/sync/common/DataFieldStrategy.d.ts +38 -8
- package/dist/specification/src/sync/common/DataFieldStrategy.d.ts.map +1 -1
- package/dist/specification/src/sync/common/DataFieldStrategy.js +64 -11
- package/dist/specification/src/sync/common/DataFieldStrategy.js.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +0 -4
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +0 -3
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
- package/dist/specification/src/sync/common/appProvider.d.ts +0 -1
- package/dist/specification/src/sync/common/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/common/appProvider.js +0 -1
- package/dist/specification/src/sync/common/appProvider.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 +149 -23
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +369 -74
- 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 +0 -1
- package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +0 -3
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +3 -3
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +6 -3
- 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/import/utils.d.ts +0 -1
- package/dist/specification/src/sync/common/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/import/utils.js +0 -1
- package/dist/specification/src/sync/common/import/utils.js.map +1 -1
- package/dist/specification/src/sync/common/rules.js +0 -1
- package/dist/specification/src/sync/common/rules.js.map +1 -1
- package/dist/specification/src/sync/common/utils.d.ts +35 -8
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +206 -22
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
- package/dist/specification/src/sync/v2/export/exportPageGeneric.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 +48 -0
- 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 +2 -0
- 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/generate/schemaAdaptation.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +28 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.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/importPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.js +5 -6
- package/dist/specification/src/sync/v2/import/importPage.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 +21 -3
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +28 -3
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/actions.d.ts +39 -0
- package/dist/specification/src/sync/v4/export/actions.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/export/actions.js +99 -0
- package/dist/specification/src/sync/v4/export/actions.js.map +1 -0
- 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/ObjectPageForm.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts +2 -4
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js +2 -21
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts +2 -2
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -3
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js +52 -9
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.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/ObjectPageToolBarAction.d.ts +15 -3
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js +53 -10
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +24 -18
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +40 -49
- 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/ToolBar.d.ts +9 -2
- package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.js +39 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +17 -4
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +76 -19
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts +7 -0
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +125 -14
- 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/export/types.d.ts +2 -0
- package/dist/specification/src/sync/v4/export/types.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts +35 -0
- package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/actions.js +112 -0
- package/dist/specification/src/sync/v4/generate/actions.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +3 -3
- 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 +11 -3
- 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/extensions.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js +3 -2
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.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 +25 -3
- 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 +11 -2
- 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} +46 -19
- 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} +195 -316
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts +0 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +148 -56
- 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/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.js +16 -3
- package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.d.ts +0 -1
- package/dist/specification/src/sync/v4/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.js +5 -4
- 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 +177 -46
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +498 -152
- 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 +112 -26
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +374 -46
- 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 +5 -5
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js +1 -0
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +162 -15
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +41 -2
- 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/CustomAction.d.ts +133 -19
- package/dist/types/src/v4/controls/CustomAction.d.ts.map +1 -1
- package/dist/types/src/v4/controls/CustomAction.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -2
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +22 -3
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts.map +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/ObjectPageToolBar.d.ts +2 -2
- package/dist/types/src/v4/controls/ObjectPageToolBar.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/dist/types/src/v4/controls/ToolBar.d.ts +3 -3
- package/dist/types/src/v4/controls/ToolBar.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 -392
- 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
|
@@ -9,23 +9,22 @@ exports.addVisualFilters = addVisualFilters;
|
|
|
9
9
|
exports.applyCustomFilterFields = applyCustomFilterFields;
|
|
10
10
|
exports.analyzeViewAnnotation = analyzeViewAnnotation;
|
|
11
11
|
exports.addALPViews = addALPViews;
|
|
12
|
-
exports.
|
|
12
|
+
exports.applyLRSchemaAdjustments = applyLRSchemaAdjustments;
|
|
13
13
|
exports.addTagsToView = addTagsToView;
|
|
14
14
|
exports.addLRViewParts = addLRViewParts;
|
|
15
|
-
exports.getDefaultAnnotationPath = getDefaultAnnotationPath;
|
|
16
15
|
exports.addHeaderActions = addHeaderActions;
|
|
17
16
|
exports.addManifestPathsToPropertiesLR = addManifestPathsToPropertiesLR;
|
|
18
17
|
exports.generateListReportSchemaV4 = generateListReportSchemaV4;
|
|
19
|
-
const utils_1 = require("
|
|
20
|
-
const utils_2 = require("
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
19
|
+
const utils_2 = require("../../utils");
|
|
21
20
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
22
21
|
const i18next_1 = __importDefault(require("i18next"));
|
|
23
|
-
const extensionLogger_1 = require("
|
|
24
|
-
const common_1 = require("
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const Page_1 = require("../sync-rules/Page");
|
|
22
|
+
const extensionLogger_1 = require("../../../../extensionLogger");
|
|
23
|
+
const common_1 = require("../../../common");
|
|
24
|
+
const actions_1 = require("../actions");
|
|
25
|
+
const sync_rules_1 = require("../../sync-rules");
|
|
28
26
|
const ListReportUtils_1 = require("./ListReportUtils");
|
|
27
|
+
const controls_1 = require("../../export/controls");
|
|
29
28
|
const ROOT_PROPERTIES_ORDER = ['header', 'filterBar', 'chart', 'table'];
|
|
30
29
|
const UILINEITEM = '@UI.LineItem';
|
|
31
30
|
/**
|
|
@@ -39,6 +38,7 @@ const UILINEITEM = '@UI.LineItem';
|
|
|
39
38
|
* @returns {Definition} - the updated selection fields definition
|
|
40
39
|
*/
|
|
41
40
|
function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, selectionFieldsDefinition, qualifier) {
|
|
41
|
+
// No @validity check needed here
|
|
42
42
|
if (!selectionFieldsDefinition) {
|
|
43
43
|
selectionFieldsDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields];
|
|
44
44
|
selectionFieldsDefinition.additionalProperties = false;
|
|
@@ -50,8 +50,9 @@ function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, se
|
|
|
50
50
|
if (selectionFieldsAnnotation) {
|
|
51
51
|
let i = 0;
|
|
52
52
|
selectionFieldsAnnotation?.forEach((selectionField) => {
|
|
53
|
+
const value = selectionField.value ?? `UnknownField${i}`;
|
|
53
54
|
let description = selectionField.value;
|
|
54
|
-
const fieldDefinition = 'SelectionField::' + (0, common_1.prepareRef)(
|
|
55
|
+
const fieldDefinition = 'SelectionField::' + (0, common_1.prepareRef)(value);
|
|
55
56
|
if (selectionField.type === 'PropertyPath') {
|
|
56
57
|
description = (0, common_1.getLabelForPropertyPath)(selectionField, entityType);
|
|
57
58
|
}
|
|
@@ -67,10 +68,14 @@ function addSelectionFields(entityType, appSchema, selectionFieldsAnnotation, se
|
|
|
67
68
|
additionalProperties: false,
|
|
68
69
|
...(dataType && { dataType })
|
|
69
70
|
};
|
|
71
|
+
if (selectionField.value === undefined) {
|
|
72
|
+
// Add message about unresolvable value for selection field
|
|
73
|
+
(0, common_1.addMessageToSchema)(appSchema.definitions[fieldDefinition], {
|
|
74
|
+
text: i18next_1.default.t('UNRESOLVABLE_VALUE_OF_SELECTION_FIELD')
|
|
75
|
+
});
|
|
76
|
+
}
|
|
70
77
|
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.isViewNode] = true;
|
|
71
|
-
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.keys] = [
|
|
72
|
-
{ name: ux_specification_types_1.SchemaKeyName.value, value: `${selectionField.value}` }
|
|
73
|
-
];
|
|
78
|
+
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.value, value: `${value}` }];
|
|
74
79
|
if (selectionField.$target?.fullyQualifiedName.indexOf('@') > -1) {
|
|
75
80
|
appSchema.definitions[fieldDefinition][ux_specification_types_1.SchemaTag.target] = selectionField.$target.fullyQualifiedName
|
|
76
81
|
.split('@')[0]
|
|
@@ -129,6 +134,7 @@ function getPropertiesIndex(selectionFields, entityType) {
|
|
|
129
134
|
* @param selectionFields - The selection fields annotation to be processed
|
|
130
135
|
*/
|
|
131
136
|
function addVisualFilters(entityType, appSchema, visualFiltersManifest, selectionFields) {
|
|
137
|
+
// No @validity check needed here
|
|
132
138
|
const propertiesIndex = getPropertiesIndex(selectionFields, entityType);
|
|
133
139
|
const visualFilters = appSchema.definitions[ux_specification_types_1.DefinitionName.VisualFilters];
|
|
134
140
|
visualFilters.properties = {};
|
|
@@ -170,6 +176,8 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
|
|
|
170
176
|
};
|
|
171
177
|
(0, utils_2.addCustomFilterFieldDefinition)(appSchema, selectionFieldsDefinition, v4Page);
|
|
172
178
|
const customSectionDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CustomFilterFieldPosition];
|
|
179
|
+
// Instantiate for @validity check
|
|
180
|
+
new controls_1.CustomFilterFieldPosition().init();
|
|
173
181
|
if (typeof customSectionDefinition === 'object') {
|
|
174
182
|
(0, common_1.addDescriptiveEnumDefinition)(appSchema, selectionFieldsDefinition, {
|
|
175
183
|
schema: customSectionDefinition,
|
|
@@ -181,38 +189,6 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
|
|
|
181
189
|
});
|
|
182
190
|
}
|
|
183
191
|
}
|
|
184
|
-
/**
|
|
185
|
-
* Adds selection fields or compact/visual filters to filter bar.
|
|
186
|
-
*
|
|
187
|
-
* @param entityType - actual entity type (AVT information)
|
|
188
|
-
* @param appSchema - app-specific JSON schema
|
|
189
|
-
* @param v4Page - actual page in the manifest
|
|
190
|
-
* @param alias - the given alias or namespace of the OData annotations
|
|
191
|
-
*/
|
|
192
|
-
function addFilterBar(entityType, appSchema, v4Page, alias) {
|
|
193
|
-
const visualFilters = getVisualFilters(v4Page);
|
|
194
|
-
const selectionFields = alias && entityType?.annotations?.[alias]?.SelectionFields;
|
|
195
|
-
let selectionFieldsDefinition;
|
|
196
|
-
// Hide visualFilters/selectionFields depending on existing visual filters
|
|
197
|
-
if (visualFilters) {
|
|
198
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
199
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields]['properties'] = {};
|
|
200
|
-
selectionFieldsDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters];
|
|
201
|
-
selectionFieldsDefinition.additionalProperties = false;
|
|
202
|
-
selectionFieldsDefinition.properties = {};
|
|
203
|
-
addVisualFilters(entityType, appSchema, visualFilters, selectionFields);
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
const filterBar = appSchema.definitions[ux_specification_types_1.DefinitionName.FilterBar];
|
|
207
|
-
filterBar.properties['initialLayout'][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
208
|
-
filterBar.properties['layout'][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
209
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
210
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.VisualFilters][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
211
|
-
}
|
|
212
|
-
selectionFieldsDefinition = addSelectionFields(entityType, appSchema, selectionFields, selectionFieldsDefinition);
|
|
213
|
-
// Apply custom filter fields
|
|
214
|
-
applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page);
|
|
215
|
-
}
|
|
216
192
|
/**
|
|
217
193
|
*
|
|
218
194
|
* @param appSchema - The app JSON schema to be updated
|
|
@@ -426,6 +402,8 @@ function addALPChartView(appSchema, chartAnnotationPath, targetAnnotation, annot
|
|
|
426
402
|
chartView[ux_specification_types_1.SchemaTag.artifactType] = ux_specification_types_1.ArtifactType.Manifest;
|
|
427
403
|
chartView[ux_specification_types_1.SchemaTag.key] = 'primary';
|
|
428
404
|
chartView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'primary' }];
|
|
405
|
+
// Instantiate for @validity check
|
|
406
|
+
new controls_1.ALPChart().init();
|
|
429
407
|
}
|
|
430
408
|
/**
|
|
431
409
|
* Adds the ALP views to the app-specific schema.
|
|
@@ -498,28 +476,27 @@ function addALPViews(appSchema, viewsPaths, generateParameters, templateAnnotati
|
|
|
498
476
|
appSchema.definitions[ux_specification_types_1.DefinitionName.ALPTable][ux_specification_types_1.SchemaTag.annotationPath] = target;
|
|
499
477
|
}
|
|
500
478
|
const schemaAdjustmentParameters = {
|
|
479
|
+
logger: generateParameters.logger,
|
|
501
480
|
appSchema,
|
|
502
481
|
v4Page,
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
dataForLineItem
|
|
482
|
+
tableDefinitionKey: ux_specification_types_1.DefinitionName.ALPTable,
|
|
483
|
+
facetDefinitionKey: ux_specification_types_1.DefinitionName.LineItems,
|
|
484
|
+
dataForLineItem,
|
|
485
|
+
customActionDefinitionName: ux_specification_types_1.DefinitionName.CustomTableAction,
|
|
486
|
+
sectionActionsDefinitionKey: `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`
|
|
506
487
|
};
|
|
507
|
-
|
|
488
|
+
applyLRSchemaAdjustments(schemaAdjustmentParameters);
|
|
508
489
|
const pathParts = annotations[viewAnnotation].fullyQualifiedName.split('@');
|
|
509
490
|
tableView[ux_specification_types_1.SchemaTag.annotationPath] = `/${pathParts[0]}/@${pathParts[1]}`;
|
|
510
491
|
tableView[ux_specification_types_1.SchemaTag.key] = 'secondary';
|
|
511
492
|
tableView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'secondary' }];
|
|
512
493
|
}
|
|
513
494
|
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
514
|
-
// Table toolbar actions with custom actions
|
|
515
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
516
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForToolbarActions);
|
|
517
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
518
495
|
// Add "manifestPath" for table properties
|
|
519
496
|
addManifestPathsToPropertiesLR(appSchema, ux_specification_types_1.DefinitionName.ALPTable, tableDefinition, {
|
|
520
497
|
pageName: v4Page.id,
|
|
521
498
|
manifest: generateParameters.manifest,
|
|
522
|
-
targetAnnotation
|
|
499
|
+
targetAnnotation: target
|
|
523
500
|
});
|
|
524
501
|
}
|
|
525
502
|
/**
|
|
@@ -558,18 +535,31 @@ function addViewChartDefinitions(inputParameters, annotations) {
|
|
|
558
535
|
* @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
|
|
559
536
|
* @param viewKey - view key
|
|
560
537
|
* @param title - view title
|
|
538
|
+
* @param page - Represents the page in the application's structure where the view line items are to be added.
|
|
539
|
+
* @param app - Represents the overall application structure, providing access to the manifest.
|
|
561
540
|
*/
|
|
562
|
-
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title) {
|
|
541
|
+
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title, page, app) {
|
|
563
542
|
const idForChart = addViewChartDefinitions(inputParameters, UIAnnotations);
|
|
564
|
-
appSchema.definitions[idForChart]
|
|
565
|
-
|
|
566
|
-
|
|
543
|
+
const chartViewDefinition = appSchema.definitions[idForChart];
|
|
544
|
+
chartViewDefinition.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
545
|
+
chartViewDefinition.properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
546
|
+
chartViewDefinition.properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
567
547
|
const titleOnHover = `Chart View (key: ${viewKey})`;
|
|
568
548
|
viewsDefinition.properties[viewKey] = {
|
|
569
549
|
$ref: `${common_1.DEFINITION_LINK_PREFIX}${idForChart}`,
|
|
570
550
|
description: title ? title : titleOnHover,
|
|
571
551
|
title: titleOnHover
|
|
572
552
|
};
|
|
553
|
+
// Add "manifestPath" for table properties
|
|
554
|
+
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRChartView, chartViewDefinition, {
|
|
555
|
+
pageName: page.target.id,
|
|
556
|
+
manifest: app.manifest,
|
|
557
|
+
targetAnnotation: inputParameters.targetAnnotation,
|
|
558
|
+
viewConfig: {
|
|
559
|
+
key: viewKey,
|
|
560
|
+
entitySet: inputParameters.entitySet
|
|
561
|
+
}
|
|
562
|
+
});
|
|
573
563
|
}
|
|
574
564
|
/**
|
|
575
565
|
* Retrieves the line item reference for a specified view and entity type.
|
|
@@ -599,20 +589,19 @@ function getLineItemRef(v4Page, entityType, viewKey, lineItemTerm, lineItemQuali
|
|
|
599
589
|
*
|
|
600
590
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
601
591
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
602
|
-
* @returns {void} This function does not return any value.
|
|
603
592
|
*/
|
|
604
593
|
function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
605
|
-
const { entityType, appSchema,
|
|
594
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey } = schemaAdjustmentParameters;
|
|
606
595
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
607
596
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
608
597
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term);
|
|
609
598
|
// set specific implementation for creation fields in the LR table
|
|
610
|
-
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
611
|
-
const tableDefinition = appSchema.definitions[
|
|
599
|
+
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
600
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
612
601
|
const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
|
|
613
|
-
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
602
|
+
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
614
603
|
const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
|
|
615
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
604
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey, appSchema);
|
|
616
605
|
const context = {
|
|
617
606
|
page: v4Page,
|
|
618
607
|
schema: creationModeDefinition,
|
|
@@ -634,20 +623,19 @@ function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
|
634
623
|
*
|
|
635
624
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
636
625
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
637
|
-
* @returns {void} This function does not return any value.
|
|
638
626
|
*/
|
|
639
627
|
function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
640
|
-
const { entityType, appSchema,
|
|
628
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
641
629
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
642
630
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
643
631
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
644
632
|
// set specific implementation for analytical configuration in the LR table
|
|
645
|
-
const tableDefinition = appSchema.definitions[
|
|
633
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
646
634
|
const analyticalConfigurationDefinitionName = viewKey
|
|
647
635
|
? ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration
|
|
648
636
|
: ux_specification_types_1.DefinitionName.AnalyticalConfiguration;
|
|
649
637
|
const analyticalConfigurationDefinition = appSchema.definitions[analyticalConfigurationDefinitionName] ??
|
|
650
|
-
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName,
|
|
638
|
+
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionKey, appSchema);
|
|
651
639
|
const context = {
|
|
652
640
|
page: v4Page,
|
|
653
641
|
schema: analyticalConfigurationDefinition,
|
|
@@ -665,48 +653,65 @@ function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
|
665
653
|
*
|
|
666
654
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
667
655
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
668
|
-
* @returns {void} This function does not return any value.
|
|
669
656
|
*/
|
|
670
657
|
function adjustPopinLayout(schemaAdjustmentParameters) {
|
|
671
|
-
const { entityType, appSchema,
|
|
658
|
+
const { entityType, appSchema, tableDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
672
659
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
673
660
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
674
661
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
662
|
+
// set specific implementation for popinLayout in the LR table
|
|
663
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
664
|
+
const popinLayoutDefinition = tableDefinition.properties['popinLayout'];
|
|
665
|
+
const context = {
|
|
666
|
+
page: v4Page,
|
|
667
|
+
schema: popinLayoutDefinition,
|
|
668
|
+
parameters: {
|
|
669
|
+
lineItemRef,
|
|
670
|
+
tableDefinition
|
|
671
|
+
}
|
|
672
|
+
};
|
|
673
|
+
// for the ResponsiveTable (default table type) we allow to set the popin layout property
|
|
674
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRPopinLayoutForNonResponsiveTable, context);
|
|
675
675
|
}
|
|
676
676
|
/**
|
|
677
677
|
* Adjusts the schema for a table by making necessary changes such as populating creation fields,
|
|
678
678
|
* adjusting creation field definitions, and adding enum mappings for mass edit functionalities.
|
|
679
679
|
*
|
|
680
680
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - Object containing the parameters required for schema adjustments. Includes the generate parameters, application schema, table definition ID, and facet definition ID.
|
|
681
|
-
* @returns {void} This function does not return a value; it performs in-place adjustments to the schema provided through the input parameters.
|
|
682
681
|
*/
|
|
683
|
-
function
|
|
684
|
-
const { entityType, appSchema,
|
|
682
|
+
function applyLRSchemaAdjustments(schemaAdjustmentParameters) {
|
|
683
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey } = schemaAdjustmentParameters;
|
|
685
684
|
// in the future, all postgeneration adjustments for the LR Page should be done here
|
|
686
685
|
// populate the creation fields for the table with the data from the columns
|
|
687
|
-
(0, utils_1.initializeCreationModeSchema)(appSchema,
|
|
686
|
+
(0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionKey, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
|
|
688
687
|
// remove unnecessary properties from the creation mode aggregation according to the table type
|
|
689
688
|
adjustCreationFieldsDefinition(schemaAdjustmentParameters);
|
|
690
689
|
// remove unnecessary properties from the analytical configuration aggregation according to the table type
|
|
691
690
|
adjustAnalyticalConfiguration(schemaAdjustmentParameters);
|
|
692
691
|
adjustPopinLayout(schemaAdjustmentParameters);
|
|
693
692
|
// add columns to a enum, in this case enableMassEdit -> visibleFields and ignoredFields
|
|
694
|
-
(0, utils_2.addEnumForEnableMassEdit)(appSchema,
|
|
693
|
+
(0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionKey, facetDefinitionKey, entityType);
|
|
694
|
+
// add the custom action and custom action menu definition
|
|
695
|
+
(0, actions_1.configureCustomActionDefinition)(schemaAdjustmentParameters);
|
|
695
696
|
}
|
|
696
697
|
/**
|
|
697
698
|
* Modifies the app schema, adds the right line item settings as derived from the visualization.
|
|
698
699
|
*
|
|
699
|
-
* @param {ViewsParameters} inputParameters -
|
|
700
|
-
* @param {Definition} viewsDefinition - The
|
|
701
|
-
* @param {string} visualization - The visualization
|
|
702
|
-
* @param {string} templateAnnotation -
|
|
703
|
-
* @param
|
|
704
|
-
* @param
|
|
705
|
-
* @
|
|
700
|
+
* @param {ViewsParameters} inputParameters - Parameters containing details needed for the view line item addition, including the app schema, view key, and target annotation.
|
|
701
|
+
* @param {Definition} viewsDefinition - The definition object to which the view line items will be added.
|
|
702
|
+
* @param {string} visualization - The specific visualization type, typically used to determine the annotation term.
|
|
703
|
+
* @param {string} templateAnnotation - Annotation path or type related to the template.
|
|
704
|
+
* @param generateParameters - list of API input parameters
|
|
705
|
+
* @param generateParameters.serviceAVT - OData service AVT information
|
|
706
|
+
* @param generateParameters.entityType - entity type of the current page
|
|
707
|
+
* @param {Page} page - Represents the page in the application's structure where the view line items are to be added.
|
|
708
|
+
* @param app - the application object containing manifest and other app-specific information.
|
|
709
|
+
* @param {ExtensionLogger} logger - Logger for recording informational or error messages during the schema adjustment process.
|
|
706
710
|
*/
|
|
707
|
-
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page) {
|
|
711
|
+
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page, app, logger) {
|
|
708
712
|
const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
|
|
709
|
-
const
|
|
713
|
+
const schemaIdForColumns = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
|
|
714
|
+
const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${schemaIdForColumns}>`;
|
|
710
715
|
const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
|
|
711
716
|
delete lrTableView[ux_specification_types_1.SchemaTag.isViewNode];
|
|
712
717
|
lrTableView[ux_specification_types_1.SchemaTag.annotationPath] = inputParameters.targetAnnotation;
|
|
@@ -717,14 +722,14 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
717
722
|
lrTableView['entitySet'] = inputParameters.entitySet;
|
|
718
723
|
}
|
|
719
724
|
//Copy toolbar
|
|
720
|
-
(0, common_1.addDefinitionRef)(lrTableView.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar,
|
|
725
|
+
(0, common_1.addDefinitionRef)(lrTableView.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar, schemaIdForColumns);
|
|
721
726
|
const title = `Table View (key: ${inputParameters.viewKey})`;
|
|
722
727
|
viewsDefinition.properties[inputParameters.viewKey] = {
|
|
723
728
|
$ref: `${common_1.DEFINITION_LINK_PREFIX}${tableId}`,
|
|
724
729
|
description: inputParameters.title || title,
|
|
725
730
|
title
|
|
726
731
|
};
|
|
727
|
-
(0, common_1.addDefinitionRef)(lrTableView.properties.columns,
|
|
732
|
+
(0, common_1.addDefinitionRef)(lrTableView.properties.columns, schemaIdForColumns);
|
|
728
733
|
lrTableView.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
729
734
|
lrTableView.properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
730
735
|
lrTableView.properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
@@ -735,25 +740,47 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
735
740
|
lineItemAnnotation: inputParameters.targetEntityType?.annotations.UI[annotationTerm],
|
|
736
741
|
entityType: inputParameters.targetEntityType,
|
|
737
742
|
oDataServiceAVT: serviceAVT,
|
|
738
|
-
lineItemId:
|
|
743
|
+
lineItemId: schemaIdForColumns
|
|
739
744
|
};
|
|
740
745
|
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn, ux_specification_types_1.DefinitionName.ViewCustomColumn, ux_specification_types_1.DefinitionName.ViewCustomAction);
|
|
746
|
+
// Table toolbar actions with custom actions
|
|
747
|
+
const sectionIdPrefix = inputParameters.entitySet ? `/${inputParameters.entitySet}/` : '';
|
|
748
|
+
const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
|
|
749
|
+
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${schemaIdForColumns}>`;
|
|
750
|
+
// Anchor selection
|
|
751
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, schemaIdForColumns, inputParameters.appSchema);
|
|
752
|
+
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${schemaIdForColumns}>`;
|
|
753
|
+
const customActionDefinition = inputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
754
|
+
customActionDefinition.properties.position.$ref =
|
|
755
|
+
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
741
756
|
const schemaAdjustmentParameters = {
|
|
757
|
+
logger: logger,
|
|
742
758
|
appSchema: inputParameters.appSchema,
|
|
743
|
-
v4Page: page.
|
|
744
|
-
|
|
745
|
-
|
|
759
|
+
v4Page: page.target,
|
|
760
|
+
tableDefinitionKey: tableId,
|
|
761
|
+
facetDefinitionKey: schemaIdForColumns,
|
|
746
762
|
viewKey: inputParameters.viewKey,
|
|
747
763
|
entityType: inputParameters.targetEntityType || entityType,
|
|
748
|
-
dataForLineItem
|
|
764
|
+
dataForLineItem,
|
|
765
|
+
sectionActionsDefinitionKey: schemaIdForActions,
|
|
766
|
+
scopedCustomActionDefinitionKey: customActionDefinitionKey,
|
|
767
|
+
customActionDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomAction,
|
|
768
|
+
sectionIdInManifest,
|
|
769
|
+
customActionPosition: customActionPositionDefinitionKey
|
|
749
770
|
};
|
|
750
|
-
|
|
771
|
+
applyLRSchemaAdjustments(schemaAdjustmentParameters);
|
|
751
772
|
// Add "manifestPath" for table properties
|
|
752
773
|
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRTableView, lrTableView, {
|
|
753
|
-
pageName: page.
|
|
754
|
-
manifest:
|
|
755
|
-
targetAnnotation: inputParameters.targetAnnotation
|
|
756
|
-
|
|
774
|
+
pageName: page.target.id,
|
|
775
|
+
manifest: app.manifest,
|
|
776
|
+
targetAnnotation: inputParameters.targetAnnotation,
|
|
777
|
+
viewConfig: {
|
|
778
|
+
key: inputParameters.viewKey,
|
|
779
|
+
entitySet: inputParameters.entitySet
|
|
780
|
+
}
|
|
781
|
+
}, true);
|
|
782
|
+
// Add "manifestPath" for view actions
|
|
783
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(inputParameters.appSchema, page.target.id, schemaIdForActions, app.getManifest(), inputParameters.targetAnnotation, inputParameters.entitySet);
|
|
757
784
|
}
|
|
758
785
|
/**
|
|
759
786
|
* Adds the schema tags to a given view.
|
|
@@ -772,57 +799,30 @@ function addTagsToView(viewsDefinition, viewKey, namespace, view) {
|
|
|
772
799
|
viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.key] = viewKey;
|
|
773
800
|
viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: viewKey }];
|
|
774
801
|
}
|
|
775
|
-
/**
|
|
776
|
-
* Adjusts the entity type if a different entity set is maintained for a view.
|
|
777
|
-
*
|
|
778
|
-
* @param {EntitySet} entitySet - actual entity set (AVT information)
|
|
779
|
-
* @param view - the current view in manifest
|
|
780
|
-
* @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
|
|
781
|
-
* @returns the target entity type
|
|
782
|
-
*/
|
|
783
|
-
function getTargetEntityType(entitySet, view, generateParameters) {
|
|
784
|
-
let targetEntityType = generateParameters.entityType;
|
|
785
|
-
let viewEntitySet = entitySet;
|
|
786
|
-
if (view['entitySet'] && view['entitySet'] !== entitySet.name) {
|
|
787
|
-
viewEntitySet = generateParameters.serviceAVT?.entitySets.find((es) => {
|
|
788
|
-
return es.name === view['entitySet'];
|
|
789
|
-
});
|
|
790
|
-
targetEntityType = viewEntitySet.entityType;
|
|
791
|
-
}
|
|
792
|
-
return targetEntityType;
|
|
793
|
-
}
|
|
794
802
|
/**
|
|
795
803
|
* Adds view custom extensions - custom column and custom action definitions.
|
|
796
804
|
*
|
|
797
805
|
* @param commonInputParameters - list of input parameters as collected by the calling instance
|
|
798
806
|
* @param visualization - visualization of the annotation
|
|
799
807
|
* @param v4Page - the given page in manifest
|
|
808
|
+
* @param manifest - The application manifest
|
|
800
809
|
* @param logger - extension logger
|
|
801
810
|
*/
|
|
802
|
-
function addViewCustomExtensions(commonInputParameters, visualization, v4Page, logger) {
|
|
803
|
-
const
|
|
811
|
+
function addViewCustomExtensions(commonInputParameters, visualization, v4Page, manifest, logger) {
|
|
812
|
+
const schemaIdForColumns = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${commonInputParameters.viewKey}`;
|
|
804
813
|
const sectionIdPrefix = commonInputParameters.entitySet ? `/${commonInputParameters.entitySet}/` : '';
|
|
805
814
|
const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
|
|
806
|
-
const viewColumnDefinition = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomColumn,
|
|
807
|
-
(0, common_1.addDefinitionRef)(viewColumnDefinition.properties.position, ux_specification_types_1.DefinitionName.ViewPosition,
|
|
808
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewPosition,
|
|
809
|
-
(0, utils_2.addCustomColumnDefinition)(commonInputParameters.appSchema, v4Page, logger, `${ux_specification_types_1.DefinitionName.ViewCustomColumn}<${
|
|
810
|
-
(0, utils_2.addFragmentEnumForAnchor)(commonInputParameters.appSchema,
|
|
815
|
+
const viewColumnDefinition = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomColumn, schemaIdForColumns, commonInputParameters.appSchema);
|
|
816
|
+
(0, common_1.addDefinitionRef)(viewColumnDefinition.properties.position, ux_specification_types_1.DefinitionName.ViewPosition, schemaIdForColumns);
|
|
817
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewPosition, schemaIdForColumns, commonInputParameters.appSchema);
|
|
818
|
+
(0, utils_2.addCustomColumnDefinition)(commonInputParameters.appSchema, v4Page, logger, `${ux_specification_types_1.DefinitionName.ViewCustomColumn}<${schemaIdForColumns}>`, schemaIdForColumns, sectionIdInManifest);
|
|
819
|
+
(0, utils_2.addFragmentEnumForAnchor)(commonInputParameters.appSchema, schemaIdForColumns, v4Page, `${ux_specification_types_1.DefinitionName.ViewPosition}<${schemaIdForColumns}>`, sectionIdInManifest);
|
|
820
|
+
// Add "manifestPath" for view columns
|
|
821
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(commonInputParameters.appSchema, v4Page.id, schemaIdForColumns, manifest, commonInputParameters.targetAnnotation, commonInputParameters.entitySet);
|
|
811
822
|
// Remove generic position
|
|
812
823
|
if (commonInputParameters.appSchema.definitions.Position) {
|
|
813
824
|
delete commonInputParameters.appSchema.definitions.Position;
|
|
814
825
|
}
|
|
815
|
-
// Table toolbar actions with custom actions
|
|
816
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${sectionId}>`;
|
|
817
|
-
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${sectionId}>`;
|
|
818
|
-
(0, utils_2.addCustomActionDefinition)(commonInputParameters.appSchema, v4Page, logger, customActionDefinitionKey, schemaIdForToolbarActions, sectionIdInManifest);
|
|
819
|
-
// Anchor selection
|
|
820
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, sectionId, commonInputParameters.appSchema);
|
|
821
|
-
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${sectionId}>`;
|
|
822
|
-
const customActionDefinition = commonInputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
823
|
-
customActionDefinition.properties.position.$ref =
|
|
824
|
-
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
825
|
-
(0, utils_2.addEnumForActionAnchor)(commonInputParameters.appSchema, schemaIdForToolbarActions, customActionPositionDefinitionKey);
|
|
826
826
|
}
|
|
827
827
|
/**
|
|
828
828
|
* Adds definition parts to a LR View (LineItem/Chart).
|
|
@@ -835,18 +835,19 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
|
|
|
835
835
|
* @param generateParameters.entityType - entity type of the current page
|
|
836
836
|
* @param generateParameters.logger - extension logger
|
|
837
837
|
* @param page - the current page object
|
|
838
|
+
* @param app - the application object containing manifest and other app-specific information.
|
|
838
839
|
* @param uiAnnotations - UI annotations of the given entityType
|
|
839
840
|
* @param view - the given view
|
|
840
841
|
*/
|
|
841
|
-
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, uiAnnotations, view) {
|
|
842
|
+
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, app, uiAnnotations, view) {
|
|
842
843
|
if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
|
|
843
844
|
//Add Line item view
|
|
844
|
-
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page);
|
|
845
|
-
addViewCustomExtensions(commonInputParameters, visualization, page.
|
|
845
|
+
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page, app, logger);
|
|
846
|
+
addViewCustomExtensions(commonInputParameters, visualization, page.target, app.getManifest(), logger);
|
|
846
847
|
}
|
|
847
848
|
else if (visualization?.indexOf('Chart') > -1) {
|
|
848
849
|
//Add Chart view
|
|
849
|
-
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title);
|
|
850
|
+
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title, page, app);
|
|
850
851
|
}
|
|
851
852
|
else if (view['template']) {
|
|
852
853
|
const titleOnHover = view['label'] || `Custom View (key: ${commonInputParameters.viewKey})`;
|
|
@@ -867,173 +868,19 @@ function addLRViewParts(visualization, viewsDefinition, commonInputParameters, {
|
|
|
867
868
|
};
|
|
868
869
|
}
|
|
869
870
|
}
|
|
870
|
-
/**
|
|
871
|
-
* Add list report views to the app-specific schema.
|
|
872
|
-
*
|
|
873
|
-
* @param appSchema - app-specific JSON schema
|
|
874
|
-
* @param viewsPaths - views' paths' section in the manifest
|
|
875
|
-
* @param generateParameters - list of API input parameters
|
|
876
|
-
* @param page - the current page object
|
|
877
|
-
* @param tableDefinitionName - The name of the table definition in the schema
|
|
878
|
-
*/
|
|
879
|
-
function addLRViews(appSchema, viewsPaths, generateParameters, page, tableDefinitionName) {
|
|
880
|
-
const tableDefinition = appSchema.definitions[tableDefinitionName];
|
|
881
|
-
tableDefinition.properties = {
|
|
882
|
-
annotationPath: tableDefinition.properties.annotationPath,
|
|
883
|
-
initialLoad: tableDefinition.properties.initialLoad,
|
|
884
|
-
views: tableDefinition.properties.views
|
|
885
|
-
};
|
|
886
|
-
const viewsDefinition = appSchema.definitions.MultiTableModeV4;
|
|
887
|
-
for (const view of viewsPaths) {
|
|
888
|
-
if (!view[ux_specification_types_1.SchemaTag.key]) {
|
|
889
|
-
continue;
|
|
890
|
-
}
|
|
891
|
-
let navPropName = undefined;
|
|
892
|
-
const targetEntityType = getTargetEntityType(generateParameters.entitySet, view, generateParameters);
|
|
893
|
-
const uiAnnotations = targetEntityType?.annotations.UI;
|
|
894
|
-
const { visualization, targetAnnotation, namespace, title } = analyzeViewAnnotation(view?.[ux_specification_types_1.SchemaTag.annotationPath], uiAnnotations, generateParameters.serviceAVT, view[ux_specification_types_1.SchemaTag.key], undefined, generateParameters.logger);
|
|
895
|
-
if (view['entitySet']) {
|
|
896
|
-
navPropName = generateParameters.entityType.navigationProperties.find((np) => {
|
|
897
|
-
return np.targetTypeName === namespace;
|
|
898
|
-
})?.name;
|
|
899
|
-
}
|
|
900
|
-
const viewKey = (0, common_1.prepareRef)(view[ux_specification_types_1.SchemaTag.key]);
|
|
901
|
-
const commonInputParameters = {
|
|
902
|
-
viewKey,
|
|
903
|
-
appSchema,
|
|
904
|
-
targetAnnotation,
|
|
905
|
-
navPropName,
|
|
906
|
-
targetEntityType,
|
|
907
|
-
title,
|
|
908
|
-
entitySet: view['entitySet']
|
|
909
|
-
};
|
|
910
|
-
addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters, page, uiAnnotations, view);
|
|
911
|
-
addTagsToView(viewsDefinition, viewKey, namespace, view);
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
/**
|
|
915
|
-
* Adapts the table definition in schema.
|
|
916
|
-
* Evaluates the path depending on if defaultTemplateAnnotationPath or Selection-/PresentationVariant is present.
|
|
917
|
-
*
|
|
918
|
-
* @param appSchema - the app-specific JSON schema
|
|
919
|
-
* @param generateParameters - list of API input parameters
|
|
920
|
-
* @param templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
921
|
-
* @param v4Page - the given page in manifest
|
|
922
|
-
* @param alias - alias definition for the UI vocabulary
|
|
923
|
-
* @param tableDefinitionName - The name of the table definition in the schema
|
|
924
|
-
*/
|
|
925
|
-
function adaptTableDefinition(appSchema, generateParameters, templateAnnotation, v4Page, alias, tableDefinitionName) {
|
|
926
|
-
//here: tableDefinitionName = DefinitionName.Table
|
|
927
|
-
const tableDefinition = appSchema.definitions[tableDefinitionName];
|
|
928
|
-
const { visualization, targetAnnotation, namespace } = analyzeViewAnnotation(templateAnnotation, generateParameters.entityType?.annotations.UI, generateParameters.serviceAVT, undefined, ux_specification_types_1.Visualization.LineItem, generateParameters.logger);
|
|
929
|
-
if (visualization) {
|
|
930
|
-
const annotationTerm = visualization.split('.')[1];
|
|
931
|
-
const annotationTermInSchema = `${ux_specification_types_1.DefinitionName.LineItems}OfSPV::${(0, common_1.prepareRef)(annotationTerm)}`;
|
|
932
|
-
const spvTable = (appSchema.definitions[`${tableDefinitionName}SPV`] = JSON.parse(JSON.stringify(appSchema.definitions[tableDefinitionName])));
|
|
933
|
-
delete spvTable[ux_specification_types_1.SchemaTag.isViewNode];
|
|
934
|
-
(0, common_1.addDefinitionRef)(spvTable.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar, annotationTermInSchema);
|
|
935
|
-
// Switch from generic column to specific definition
|
|
936
|
-
spvTable[ux_specification_types_1.SchemaTag.annotationPath] = targetAnnotation;
|
|
937
|
-
spvTable.properties.columns = {};
|
|
938
|
-
(0, common_1.addDefinitionRef)(spvTable.properties.columns, annotationTermInSchema);
|
|
939
|
-
delete tableDefinition.properties;
|
|
940
|
-
(0, common_1.addDefinitionRef)(tableDefinition, `${tableDefinitionName}SPV`);
|
|
941
|
-
tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = `/${namespace}/@${templateAnnotation}`;
|
|
942
|
-
const lineItemAnnotation = generateParameters.entityType?.annotations.UI[annotationTerm];
|
|
943
|
-
if (!lineItemAnnotation) {
|
|
944
|
-
(0, extensionLogger_1.log)(generateParameters.logger, {
|
|
945
|
-
severity: "error" /* LogSeverity.Error */,
|
|
946
|
-
message: i18next_1.default.t('NOTARGET', { target: annotationTerm })
|
|
947
|
-
});
|
|
948
|
-
}
|
|
949
|
-
const dataForLineItem = {
|
|
950
|
-
isObjectPage: false,
|
|
951
|
-
appSchema,
|
|
952
|
-
lineItemAnnotation,
|
|
953
|
-
entityType: generateParameters.entityType,
|
|
954
|
-
oDataServiceAVT: generateParameters.serviceAVT,
|
|
955
|
-
lineItemId: annotationTermInSchema
|
|
956
|
-
};
|
|
957
|
-
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
958
|
-
const annotationTermQualifier = annotationTerm.split('#')?.[1];
|
|
959
|
-
const sectionIdInManifest = annotationTermQualifier
|
|
960
|
-
? `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}#${annotationTermQualifier}`
|
|
961
|
-
: `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
962
|
-
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger, undefined, annotationTermInSchema, sectionIdInManifest);
|
|
963
|
-
(0, utils_2.addFragmentEnumForAnchor)(appSchema, annotationTermInSchema, v4Page, undefined, sectionIdInManifest);
|
|
964
|
-
const schemaAdjustmentParameters = {
|
|
965
|
-
appSchema,
|
|
966
|
-
v4Page,
|
|
967
|
-
tableDefinitionId: `${tableDefinitionName}SPV`,
|
|
968
|
-
facetDefinitionId: annotationTermInSchema,
|
|
969
|
-
dataForLineItem
|
|
970
|
-
};
|
|
971
|
-
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
972
|
-
// Table toolbar actions with custom actions
|
|
973
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${annotationTermInSchema}>`;
|
|
974
|
-
const customColumnDefinitionName = (0, common_1.getCustomExtensionDefinitionName)(appSchema, annotationTermInSchema, ux_specification_types_1.DefinitionName.CustomTableAction);
|
|
975
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, (0, common_1.getDefinitionKey)(customColumnDefinitionName), schemaIdForToolbarActions, sectionIdInManifest);
|
|
976
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
977
|
-
}
|
|
978
|
-
else {
|
|
979
|
-
tableDefinition.properties.toolBar['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}${ux_specification_types_1.DefinitionName.ToolBarLR}`;
|
|
980
|
-
// Switch from generic column to specific definition
|
|
981
|
-
(0, common_1.addDefinitionRef)(tableDefinition.properties.columns, ux_specification_types_1.DefinitionName.LineItems);
|
|
982
|
-
const lineItemAnnotation = generateParameters.entityType?.annotations?.[alias]?.LineItem;
|
|
983
|
-
if (!lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
|
|
984
|
-
(0, extensionLogger_1.log)(generateParameters.logger, {
|
|
985
|
-
severity: "error" /* LogSeverity.Error */,
|
|
986
|
-
message: i18next_1.default.t('NOLINEITEMS')
|
|
987
|
-
});
|
|
988
|
-
}
|
|
989
|
-
const dataForLineItem = {
|
|
990
|
-
isObjectPage: false,
|
|
991
|
-
appSchema,
|
|
992
|
-
lineItemAnnotation,
|
|
993
|
-
entityType: generateParameters.entityType,
|
|
994
|
-
oDataServiceAVT: generateParameters.serviceAVT,
|
|
995
|
-
lineItemId: ux_specification_types_1.DefinitionName.LineItems
|
|
996
|
-
};
|
|
997
|
-
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
998
|
-
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
999
|
-
(0, utils_2.addFragmentEnumForAnchor)(appSchema, ux_specification_types_1.DefinitionName.LineItems, v4Page);
|
|
1000
|
-
const schemaAdjustmentParameters = {
|
|
1001
|
-
appSchema,
|
|
1002
|
-
v4Page,
|
|
1003
|
-
tableDefinitionId: tableDefinitionName,
|
|
1004
|
-
facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
|
|
1005
|
-
dataForLineItem
|
|
1006
|
-
};
|
|
1007
|
-
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
1008
|
-
if (lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
|
|
1009
|
-
tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = (0, common_1.createAnnotationPath)(generateParameters.entityType?.fullyQualifiedName, lineItemAnnotation.term, lineItemAnnotation.qualifier);
|
|
1010
|
-
}
|
|
1011
|
-
// Table toolbar actions with custom actions
|
|
1012
|
-
const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
1013
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForActions);
|
|
1014
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
1015
|
-
}
|
|
1016
|
-
// Add "manifestPath" for table properties
|
|
1017
|
-
addManifestPathsToPropertiesLR(appSchema, tableDefinitionName, tableDefinition, {
|
|
1018
|
-
pageName: v4Page.id,
|
|
1019
|
-
manifest: generateParameters.manifest,
|
|
1020
|
-
targetAnnotation
|
|
1021
|
-
});
|
|
1022
|
-
}
|
|
1023
871
|
/**
|
|
1024
872
|
* Checks for the default annotation path to use for LR table.
|
|
1025
873
|
*
|
|
1026
|
-
* @param
|
|
1027
|
-
* @param entityType - actual entity type (AVT information)
|
|
1028
|
-
* @param templateType - The type of template being used (e.g., ListReportObjectPageV4 or AnalyticalListPageV4)
|
|
874
|
+
* @param page - the current page object
|
|
1029
875
|
* @returns annotation term
|
|
1030
876
|
*/
|
|
1031
|
-
function getDefaultAnnotationPath(
|
|
1032
|
-
|
|
877
|
+
function getDefaultAnnotationPath(page) {
|
|
878
|
+
const { entity: { type: entityType }, template: { type: templateType }, target } = page;
|
|
879
|
+
if (target?.options?.settings?.views?.paths && templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
1033
880
|
return;
|
|
1034
881
|
}
|
|
1035
|
-
if (
|
|
1036
|
-
return
|
|
882
|
+
if (target?.options?.settings?.defaultTemplateAnnotationPath) {
|
|
883
|
+
return target?.options?.settings.defaultTemplateAnnotationPath;
|
|
1037
884
|
}
|
|
1038
885
|
if (templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
1039
886
|
return (entityType?.annotations.UI?.SelectionPresentationVariant?.term ||
|
|
@@ -1073,8 +920,9 @@ function addHeaderActions(appSchema, v4Page, logger) {
|
|
|
1073
920
|
* @param definitionName - The name of the definition/class whose properties are being processed.
|
|
1074
921
|
* @param definition - The definition object containing property schemas.
|
|
1075
922
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
923
|
+
* @param handleRelative - A flag indicating whether to use relative paths for definition properties.
|
|
1076
924
|
*/
|
|
1077
|
-
function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, pathParams) {
|
|
925
|
+
function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, pathParams, handleRelative = false) {
|
|
1078
926
|
let targetAnnotation = undefined;
|
|
1079
927
|
if (pathParams.targetAnnotation) {
|
|
1080
928
|
const annotationParts = pathParams.targetAnnotation?.split('/');
|
|
@@ -1084,10 +932,19 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
1084
932
|
// Default annotation path
|
|
1085
933
|
targetAnnotation = `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
1086
934
|
}
|
|
935
|
+
const entitySet = pathParams.viewConfig?.entitySet;
|
|
936
|
+
if (entitySet) {
|
|
937
|
+
targetAnnotation = entitySet ? `/${entitySet}/${targetAnnotation}` : targetAnnotation;
|
|
938
|
+
}
|
|
1087
939
|
(0, utils_1.addManifestPathsToProperties)(appSchema, definitionName, definition, {
|
|
1088
940
|
...pathParams,
|
|
1089
|
-
pathsParts: [
|
|
1090
|
-
|
|
941
|
+
pathsParts: [
|
|
942
|
+
pathParams.sectionId ? undefined : targetAnnotation,
|
|
943
|
+
pathParams.columnKey ? pathParams.columnKey : '',
|
|
944
|
+
targetAnnotation,
|
|
945
|
+
pathParams.viewConfig
|
|
946
|
+
]
|
|
947
|
+
}, handleRelative);
|
|
1091
948
|
}
|
|
1092
949
|
/**
|
|
1093
950
|
* Adds 'manifestPath' to static nodes in schema.
|
|
@@ -1096,6 +953,8 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
1096
953
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
1097
954
|
*/
|
|
1098
955
|
function addManifestPathsToStaticNodes(appSchema, pathParams) {
|
|
956
|
+
// Add "manifestPath" for current page
|
|
957
|
+
appSchema['manifestPath'] = (0, utils_1.getPageManifestPath)(pathParams);
|
|
1099
958
|
// Root level - rules stored on page class level
|
|
1100
959
|
addManifestPathsToPropertiesLR(appSchema, ux_specification_types_1.PageTypeV4.ListReport, appSchema, pathParams);
|
|
1101
960
|
// Other definitions
|
|
@@ -1120,17 +979,24 @@ class ListReportPage {
|
|
|
1120
979
|
* @param contextPath - context path of the page
|
|
1121
980
|
*/
|
|
1122
981
|
constructor(generateParameters, schema, templateName, contextPath) {
|
|
1123
|
-
|
|
1124
|
-
this.
|
|
1125
|
-
this.
|
|
982
|
+
const template = { name: templateName, type: generateParameters.templateType };
|
|
983
|
+
this.appSchema = new sync_rules_1.AppSchema(schema);
|
|
984
|
+
this.app = (0, sync_rules_1.createApp)(generateParameters.manifest, generateParameters.serviceAVT, generateParameters.logger);
|
|
985
|
+
this.page = new sync_rules_1.Page(this.app, template, generateParameters.entitySet, generateParameters.entityType, contextPath);
|
|
986
|
+
this.logger = this.app.logger;
|
|
987
|
+
this.page.addConfig({
|
|
988
|
+
isALP: template.type === ux_specification_types_1.TemplateType.AnalyticalListPageV4,
|
|
989
|
+
views: this.page.target?.options?.settings.views,
|
|
990
|
+
defaultAnnotation: getDefaultAnnotationPath(this.page)
|
|
991
|
+
});
|
|
1126
992
|
}
|
|
1127
993
|
/**
|
|
1128
994
|
* Cleans up the schema by hiding specific properties and removing unnecessary definitions.
|
|
1129
995
|
*/
|
|
1130
996
|
cleanup() {
|
|
1131
|
-
this.
|
|
1132
|
-
this.
|
|
1133
|
-
(0, common_1.updatePropertyIndices)(this.
|
|
997
|
+
this.appSchema.hide(this.appSchema.getRootProperty([ux_specification_types_1.PropertyName.defaultTemplateAnnotationPath]));
|
|
998
|
+
this.appSchema.cleanup(['GenericColumns', 'Action']);
|
|
999
|
+
(0, common_1.updatePropertyIndices)(this.appSchema.get(), ROOT_PROPERTIES_ORDER);
|
|
1134
1000
|
}
|
|
1135
1001
|
/**
|
|
1136
1002
|
* Generates the finalized schema for the List Report page.
|
|
@@ -1138,20 +1004,33 @@ class ListReportPage {
|
|
|
1138
1004
|
* @returns The finalized schema for List Report page
|
|
1139
1005
|
*/
|
|
1140
1006
|
generate() {
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1007
|
+
const params = {
|
|
1008
|
+
appSchema: this.appSchema,
|
|
1009
|
+
app: this.app,
|
|
1010
|
+
page: this.page,
|
|
1011
|
+
logger: this.logger
|
|
1012
|
+
};
|
|
1013
|
+
new ListReportUtils_1.GeneralListReportSettings(params).init();
|
|
1014
|
+
if (!this.page.target) {
|
|
1015
|
+
return this.appSchema.get();
|
|
1144
1016
|
}
|
|
1145
|
-
new
|
|
1146
|
-
new
|
|
1147
|
-
new
|
|
1017
|
+
new controls_1.Header(params).init();
|
|
1018
|
+
new controls_1.HeaderActions(params).init();
|
|
1019
|
+
new controls_1.CustomHeaderAction(params).init();
|
|
1020
|
+
new ListReportUtils_1.FilterBar(params).init();
|
|
1021
|
+
new ListReportUtils_1.TableAndViews(params).init();
|
|
1148
1022
|
// Add "manifestPath" for properties in static nodes
|
|
1149
|
-
addManifestPathsToStaticNodes(this.
|
|
1150
|
-
pageName: this.page.
|
|
1023
|
+
addManifestPathsToStaticNodes(this.appSchema.get(), {
|
|
1024
|
+
pageName: this.page.target.id,
|
|
1151
1025
|
manifest: this.app.getManifest()
|
|
1152
1026
|
});
|
|
1027
|
+
// Add "manifestPath" for custom header actions
|
|
1028
|
+
const definitionNames = [ux_specification_types_1.DefinitionName.HeaderActions];
|
|
1029
|
+
definitionNames.forEach((definitionName) => {
|
|
1030
|
+
(0, ListReportUtils_1.addManifestPathsToDefinitionPropertiesLR)(this.appSchema.get(), this.page.target.id, definitionName, this.app.getManifest());
|
|
1031
|
+
});
|
|
1153
1032
|
this.cleanup();
|
|
1154
|
-
return this.
|
|
1033
|
+
return this.appSchema.get();
|
|
1155
1034
|
}
|
|
1156
1035
|
}
|
|
1157
1036
|
/**
|
|
@@ -1168,7 +1047,7 @@ function generateListReportSchemaV4(generateParameters, genericSchema, templateN
|
|
|
1168
1047
|
const listReport = new ListReportPage(generateParameters, genericSchema, templateName, contextPath);
|
|
1169
1048
|
if (!listReport.app.getManifest()) {
|
|
1170
1049
|
listReport.cleanup();
|
|
1171
|
-
return listReport.
|
|
1050
|
+
return listReport.appSchema.get();
|
|
1172
1051
|
}
|
|
1173
1052
|
return listReport.generate();
|
|
1174
1053
|
}
|