@sap/ux-specification 1.142.5 → 1.144.1
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 +26 -160
- 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 +312 -317
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/AnalyticalListPageConfig.json +18 -0
- package/dist/schemas/v2/ListReportConfig.json +30 -0
- package/dist/schemas/v2/ListReportNewConfig.json +7 -202
- package/dist/schemas/v2/ObjectPageConfig.json +30 -0
- package/dist/schemas/v4/ApplicationV4.json +5 -13
- package/dist/schemas/v4/BuildingBlocksConfig.json +2094 -1618
- package/dist/schemas/v4/ObjectPageConfig.json +734 -112
- package/dist/specification/package.json +10 -9
- package/dist/specification/scripts/generate-validity-report.js +1 -1
- package/dist/specification/scripts/generate-validity-report.js.map +1 -1
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +18 -24
- 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 +10 -23
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +1 -1
- 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 +9 -45
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/ftfs/ftfs.d.ts +0 -8
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
- package/dist/specification/src/ftfs/ftfs.js +0 -1
- package/dist/specification/src/ftfs/ftfs.js.map +1 -1
- package/dist/specification/src/ftfs/index.d.ts +1 -1
- package/dist/specification/src/ftfs/index.d.ts.map +1 -1
- package/dist/specification/src/ftfs/index.js +1 -2
- package/dist/specification/src/ftfs/index.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.js +1 -3
- package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +22 -58
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +1 -23
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +8 -0
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +15 -0
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.d.ts +0 -4
- package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.js +0 -4
- package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +1 -0
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +0 -25
- package/dist/specification/src/sync/common/importProject.d.ts.map +1 -1
- package/dist/specification/src/sync/common/importProject.js +3 -3
- package/dist/specification/src/sync/common/importProject.js.map +1 -1
- package/dist/specification/src/sync/common/rules.d.ts +1 -1
- package/dist/specification/src/sync/common/rules.js +1 -1
- package/dist/specification/src/sync/v2/export/controls/Fragment.d.ts +5 -4
- package/dist/specification/src/sync/v2/export/controls/Fragment.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Fragment.js +20 -29
- package/dist/specification/src/sync/v2/export/controls/Fragment.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.d.ts +1 -0
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.js +25 -40
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Table.d.ts +1 -0
- package/dist/specification/src/sync/v2/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Table.js +24 -34
- package/dist/specification/src/sync/v2/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/export.js +2 -3
- package/dist/specification/src/sync/v2/export/export.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.js +19 -48
- package/dist/specification/src/sync/v2/export/exportPage.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts +0 -2
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +6 -17
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
- package/dist/specification/src/sync/v2/export/view-controller-generator.d.ts +6 -54
- package/dist/specification/src/sync/v2/export/view-controller-generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/view-controller-generator.js +12 -106
- package/dist/specification/src/sync/v2/export/view-controller-generator.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 +15 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/generate.d.ts +6 -3
- package/dist/specification/src/sync/v2/generate/generate.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/generate.js +12 -7
- package/dist/specification/src/sync/v2/generate/generate.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 +2 -0
- 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 +20 -6
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +2 -2
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/utils.d.ts +19 -0
- package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/utils.js +75 -0
- package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js +4 -4
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js +3 -3
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +2 -59
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +7 -582
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +0 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +0 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js +14 -29
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js.map +1 -1
- package/dist/specification/src/sync/v2/types.d.ts +0 -2
- package/dist/specification/src/sync/v2/types.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/types.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +0 -25
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +4 -28
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +1 -1
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +2 -2
- 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 +5 -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 -2
- package/dist/specification/src/sync/v4/export/controls/Header.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts +3 -9
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js +6 -10
- 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 +51 -11
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +246 -95
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +27 -6
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +38 -11
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/factory.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/factory.js +4 -2
- package/dist/specification/src/sync/v4/export/factory.js.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts +0 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js +46 -212
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ObjectPage.d.ts +1 -0
- package/dist/specification/src/sync/v4/export/pages/ObjectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ObjectPage.js +11 -0
- package/dist/specification/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +0 -13
- 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 +2 -74
- 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.js +5 -5
- 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 +39 -29
- 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 +3 -12
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +13 -32
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +78 -103
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts +4 -7
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js +19 -34
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts +2 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +95 -136
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.js +0 -20
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.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 +50 -11
- package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +4 -2
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js +1 -2
- package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +1 -2
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +1 -3
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +294 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +753 -0
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +4 -2
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/StableIdHelper.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/StableIdHelper.js +4 -10
- package/dist/specification/src/sync/v4/utils/StableIdHelper.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.d.ts +0 -19
- package/dist/specification/src/sync/v4/utils/macros.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.js +0 -34
- package/dist/specification/src/sync/v4/utils/macros.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +4 -24
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +43 -240
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/specification/test/test-utils/utils.d.ts +1 -2
- package/dist/specification/test/test-utils/utils.d.ts.map +1 -1
- package/dist/specification/test/test-utils/utils.js +18 -26
- package/dist/specification/test/test-utils/utils.js.map +1 -1
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +2 -2
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -1
- package/dist/specification/test/unit/decorators/validity-test-utils.js +6 -6
- package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -1
- package/dist/templates/AnalyticalTableColumnsExtension.xml +3 -3
- package/dist/templates/GridTableColumnsExtension.xml +3 -3
- package/dist/templates/ResponsiveTableColumnsExtension.xml +2 -2
- package/dist/templates/TreeTableColumnsExtension.xml +4 -4
- package/dist/templates/fragment.xml +3 -3
- package/dist/templates/view.xml +3 -3
- package/dist/types/src/apiTypes.d.ts +9 -15
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js +0 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +13 -11
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +7 -12
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts +4 -0
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Table.d.ts +4 -0
- package/dist/types/src/v2/controls/Table.d.ts.map +1 -1
- package/dist/types/src/v4/application.d.ts +4 -13
- package/dist/types/src/v4/application.d.ts.map +1 -1
- package/dist/types/src/v4/application.js +0 -10
- package/dist/types/src/v4/application.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +252 -86
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.js.map +1 -1
- package/dist/types/src/v4/pages/ObjectPageConfigV4.d.ts +4 -0
- package/dist/types/src/v4/pages/ObjectPageConfigV4.d.ts.map +1 -1
- package/package.json +10 -9
- package/dist/specification/src/sync/common/decoration/Decorator.d.ts +0 -91
- package/dist/specification/src/sync/common/decoration/Decorator.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/Decorator.js +0 -139
- package/dist/specification/src/sync/common/decoration/Decorator.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/condition-evaluator.d.ts +0 -95
- package/dist/specification/src/sync/common/decoration/condition-evaluator.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/condition-evaluator.js +0 -210
- package/dist/specification/src/sync/common/decoration/condition-evaluator.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/interfaces.d.ts +0 -38
- package/dist/specification/src/sync/common/decoration/interfaces.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/interfaces.js +0 -3
- package/dist/specification/src/sync/common/decoration/interfaces.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts +0 -18
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.js +0 -50
- package/dist/specification/src/sync/common/decoration/steps/Enums.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Hide.d.ts +0 -18
- package/dist/specification/src/sync/common/decoration/steps/Hide.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Hide.js +0 -46
- package/dist/specification/src/sync/common/decoration/steps/Hide.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Message.d.ts +0 -26
- package/dist/specification/src/sync/common/decoration/steps/Message.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Message.js +0 -77
- package/dist/specification/src/sync/common/decoration/steps/Message.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Readonly.d.ts +0 -18
- package/dist/specification/src/sync/common/decoration/steps/Readonly.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Readonly.js +0 -43
- package/dist/specification/src/sync/common/decoration/steps/Readonly.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Validity.d.ts +0 -18
- package/dist/specification/src/sync/common/decoration/steps/Validity.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/Validity.js +0 -68
- package/dist/specification/src/sync/common/decoration/steps/Validity.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.d.ts +0 -19
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.js +0 -48
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.js.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/index.d.ts +0 -6
- package/dist/specification/src/sync/common/decoration/steps/index.d.ts.map +0 -1
- package/dist/specification/src/sync/common/decoration/steps/index.js +0 -14
- package/dist/specification/src/sync/common/decoration/steps/index.js.map +0 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.d.ts +0 -12
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.d.ts.map +0 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.js +0 -167
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.js.map +0 -1
- package/dist/specification/src/sync/v4/generate/app.d.ts +0 -11
- package/dist/specification/src/sync/v4/generate/app.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/app.js +0 -31
- package/dist/specification/src/sync/v4/generate/app.js.map +0 -1
|
@@ -67,7 +67,6 @@ exports.importManifestBasedActionMenuSettingsOfReference = importManifestBasedAc
|
|
|
67
67
|
exports.importActionSettingsOfReference = importActionSettingsOfReference;
|
|
68
68
|
exports.addCustomFieldDefinition = addCustomFieldDefinition;
|
|
69
69
|
exports.addManifestPathsToProperties = addManifestPathsToProperties;
|
|
70
|
-
exports.getInsertableForEntitySet = getInsertableForEntitySet;
|
|
71
70
|
exports.getPageManifestPath = getPageManifestPath;
|
|
72
71
|
const utils_1 = require("../../common/utils");
|
|
73
72
|
const StableIdHelper_1 = require("./StableIdHelper");
|
|
@@ -79,6 +78,7 @@ const path_1 = require("path");
|
|
|
79
78
|
const DataFieldStrategy_1 = require("../../common/DataFieldStrategy");
|
|
80
79
|
const utils_2 = require("../import/utils");
|
|
81
80
|
const src_1 = require("@sap/ux-specification-types/src");
|
|
81
|
+
const objectPage_1 = require("../generate/objectPage");
|
|
82
82
|
const v4controls = __importStar(require("../export/controls"));
|
|
83
83
|
const pages = __importStar(require("../export/pages"));
|
|
84
84
|
const application_1 = require("../application");
|
|
@@ -86,12 +86,6 @@ exports.DATA_FIELD_FOR_ACTION_GROUP = 'DataFieldForActionGroup';
|
|
|
86
86
|
const UI_ANNOTATION_KEY = 'UI';
|
|
87
87
|
exports.FIELD_SEPARATOR = '::';
|
|
88
88
|
exports.QUALIFIER_SEPARATOR = '#';
|
|
89
|
-
/**
|
|
90
|
-
* List of annotation-based action prefixes that should be included in the schema
|
|
91
|
-
* even if they lack custom action properties (press, menu), so they can be validated
|
|
92
|
-
* and removed during export if they don't match the config.
|
|
93
|
-
*/
|
|
94
|
-
const ANNOTATION_BASED_ACTION_PREFIXES = [`${ux_specification_types_1.DataFieldActionType.DataFieldForIntentBasedNavigation}${exports.FIELD_SEPARATOR}`];
|
|
95
89
|
const ACTION_TYPE = 'actionType';
|
|
96
90
|
const strategyTypeMap = new Map([
|
|
97
91
|
['', "com.sap.vocabularies.UI.v1.DataFieldForAction" /* UIAnnotationTypes.DataFieldForAction */],
|
|
@@ -101,23 +95,19 @@ const strategyTypeMap = new Map([
|
|
|
101
95
|
]);
|
|
102
96
|
const OP_ACTION_MENU_DEFINITION = {
|
|
103
97
|
actionMenuDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageCustomActionMenu,
|
|
104
|
-
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageCustomActionMenuActions
|
|
105
|
-
actionName: ux_specification_types_1.DefinitionName.ObjectPageToolBarAction
|
|
98
|
+
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageCustomActionMenuActions
|
|
106
99
|
};
|
|
107
100
|
const OP_HEADER_ACTION_MENU_DEFINITION = {
|
|
108
101
|
actionMenuDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageHeaderCustomActionMenu,
|
|
109
|
-
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageHeaderCustomActionMenuActions
|
|
110
|
-
actionName: ux_specification_types_1.DefinitionName.ObjectPageHeaderAction
|
|
102
|
+
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ObjectPageHeaderCustomActionMenuActions
|
|
111
103
|
};
|
|
112
104
|
const LR_ACTION_MENU_DEFINITION = {
|
|
113
105
|
actionMenuDefinitionName: ux_specification_types_1.DefinitionName.CustomActionMenu,
|
|
114
|
-
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.CustomActionMenuActions
|
|
115
|
-
actionName: ux_specification_types_1.DefinitionName.ToolBarAction
|
|
106
|
+
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.CustomActionMenuActions
|
|
116
107
|
};
|
|
117
108
|
const LR_ACTION_VIEW_MENU_DEFINITION = {
|
|
118
109
|
actionMenuDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomActionMenu,
|
|
119
|
-
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomActionMenuActions
|
|
120
|
-
actionName: ux_specification_types_1.DefinitionName.ViewToolBarAction
|
|
110
|
+
actionMenuActionsDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomActionMenuActions
|
|
121
111
|
};
|
|
122
112
|
const actionMenuDefinitionNameMap = new Map([
|
|
123
113
|
[ux_specification_types_1.DefinitionName.CustomTableActionOP, OP_ACTION_MENU_DEFINITION],
|
|
@@ -244,7 +234,7 @@ function getExtensionDetails(extension, extensionDefinitionName, extId, actionTy
|
|
|
244
234
|
* @param {string} extensionDefinitionName - The name of the extension definition to refer to.
|
|
245
235
|
* @param {[string, unknown][]} sortedExtArray - A sorted array of existing extensions represented as key-value pairs.
|
|
246
236
|
* @param {ExtensionLogger} logger - The logger used for logging errors and warnings during the adjustment process.
|
|
247
|
-
* @param {boolean} [forceAdd] - Flag indicating whether to force adding extensions even if proper anchor/placement is not found.
|
|
237
|
+
* @param {boolean} [forceAdd=false] - Flag indicating whether to force adding extensions even if proper anchor/placement is not found.
|
|
248
238
|
*/
|
|
249
239
|
function adjustCustomExtReferringToCustomExt(remainingExtensions, extensionDefinitionName, sortedExtArray, logger, forceAdd = false) {
|
|
250
240
|
const initialRemaining = Object.entries(remainingExtensions).length;
|
|
@@ -416,110 +406,6 @@ function handleInvalidExtension(logger, extensionId, sortedExtensionsArray, newE
|
|
|
416
406
|
sortedExtensionsArray.push([extensionId, newExtensionReference]);
|
|
417
407
|
delete localExtensions[extensionId];
|
|
418
408
|
}
|
|
419
|
-
/**
|
|
420
|
-
* Checks if an extension ID represents an annotation-based action.
|
|
421
|
-
* Annotation-based actions should be included in the schema even if they lack custom action
|
|
422
|
-
* properties (press, menu), so they can be validated and removed during export if they don't match the config.
|
|
423
|
-
*
|
|
424
|
-
* @param {string} extensionId - The extension ID to check.
|
|
425
|
-
* @returns {boolean} True if the extension is an annotation-based action, false otherwise.
|
|
426
|
-
*/
|
|
427
|
-
function isAnnotationBasedAction(extensionId) {
|
|
428
|
-
return ANNOTATION_BASED_ACTION_PREFIXES.some((prefix) => extensionId.startsWith(prefix));
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Handles orphaned annotation-based actions that exist in manifest but not in annotations.
|
|
432
|
-
* These actions must be added to the schema to enable cleanup during export.
|
|
433
|
-
*
|
|
434
|
-
* @param {string} extensionId - The extension ID.
|
|
435
|
-
* @param {any} extension - The extension object.
|
|
436
|
-
* @param {string} extensionDefinitionName - The definition name associated with the extensions.
|
|
437
|
-
* @param {Definition} [appSchema] - Optional application schema for creating specific definitions.
|
|
438
|
-
* @param {ActionDetails[]} sortedExtensionsArray - The array to add the action to.
|
|
439
|
-
*/
|
|
440
|
-
function handleOrphanedAnnotationAction(extensionId, extension, extensionDefinitionName, appSchema, sortedExtensionsArray) {
|
|
441
|
-
// This is an annotation-based action from manifest that doesn't exist in annotations.
|
|
442
|
-
// IMPORTANT: We must add these orphaned actions to the schema to enable cleanup.
|
|
443
|
-
//
|
|
444
|
-
// When an action is renamed (e.g., IBN action's semantic object changes), the old
|
|
445
|
-
// action key remains in the manifest but disappears from the config (annotations).
|
|
446
|
-
// By adding it to the schema, the export process can detect this mismatch and remove
|
|
447
|
-
// the orphaned entry from the manifest. If we don't add it to the schema, it will be
|
|
448
|
-
// ignored and remain as garbage in the manifest forever.
|
|
449
|
-
//
|
|
450
|
-
// Process:
|
|
451
|
-
// 1. Add orphaned action to schema with Standard action type
|
|
452
|
-
// 2. During export: compare schema with config
|
|
453
|
-
// 3. Action in schema but NOT in config → remove from manifest
|
|
454
|
-
// 4. Action in schema AND in config → keep in manifest
|
|
455
|
-
if (appSchema) {
|
|
456
|
-
// Create specific definition name and schema like "ToolBarActionGroup<DataFieldForActionGroup::AnnoActionMenu>"
|
|
457
|
-
const { actionName } = determineActionDefinitionNames(extensionDefinitionName);
|
|
458
|
-
const preparedRef = (0, common_1.prepareRef)(extensionId);
|
|
459
|
-
const specificDefinitionName = (0, common_1.getFacetDefinitionKey)(actionName, preparedRef);
|
|
460
|
-
// Create the schema definition for this action
|
|
461
|
-
(0, common_1.parseSchemaDefinition)(actionName, preparedRef, appSchema);
|
|
462
|
-
const correctedExtensionReference = getExtensionDetails(extension, specificDefinitionName, extensionId, ux_specification_types_1.ActionType.Standard);
|
|
463
|
-
sortedExtensionsArray.push([extensionId, correctedExtensionReference]);
|
|
464
|
-
}
|
|
465
|
-
else {
|
|
466
|
-
// Fallback if no appSchema provided
|
|
467
|
-
const correctedExtensionReference = getExtensionDetails(extension, extensionDefinitionName, extensionId, ux_specification_types_1.ActionType.Standard);
|
|
468
|
-
sortedExtensionsArray.push([extensionId, correctedExtensionReference]);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
/**
|
|
472
|
-
* Recursively checks if an action exists in annotation entries, including nested actions within action groups.
|
|
473
|
-
*
|
|
474
|
-
* @param {string} extensionId - The unique identifier for the extension to search for.
|
|
475
|
-
* @param {ActionDetails[]} annotationEntries - Array of actions to search through.
|
|
476
|
-
* @param {Definition | undefined} appSchema - Optional application schema to look up action group definitions.
|
|
477
|
-
* @returns {boolean} True if the action exists at any level (top-level or nested in groups).
|
|
478
|
-
*/
|
|
479
|
-
function actionExistsInAnnotations(extensionId, annotationEntries, appSchema) {
|
|
480
|
-
for (const [id, actionDef] of annotationEntries) {
|
|
481
|
-
// Check top-level match
|
|
482
|
-
if (id === extensionId) {
|
|
483
|
-
return true;
|
|
484
|
-
}
|
|
485
|
-
// Check if this is an action group with nested actions
|
|
486
|
-
const actionDefinition = actionDef;
|
|
487
|
-
if (appSchema && actionDefinition.$ref) {
|
|
488
|
-
const defKey = actionDefinition.$ref.replace('#/definitions/', '');
|
|
489
|
-
const definition = appSchema.definitions?.[defKey];
|
|
490
|
-
// If it's an action group, check its nested actions (properties)
|
|
491
|
-
if (definition && definition.properties) {
|
|
492
|
-
const nestedActions = Object.entries(definition.properties).map(([nestedId, nestedDef]) => [nestedId, nestedDef]);
|
|
493
|
-
// Recursively search nested actions
|
|
494
|
-
if (actionExistsInAnnotations(extensionId, nestedActions, appSchema)) {
|
|
495
|
-
return true;
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
return false;
|
|
501
|
-
}
|
|
502
|
-
/**
|
|
503
|
-
* Processes annotation-based actions with unsupported extension types.
|
|
504
|
-
* Either skips duplicates or handles orphaned actions.
|
|
505
|
-
*
|
|
506
|
-
* @param {string} extensionId - The extension ID.
|
|
507
|
-
* @param {any} extension - The extension object.
|
|
508
|
-
* @param {string} extensionDefinitionName - The definition name.
|
|
509
|
-
* @param {Definition} [appSchema] - Optional application schema.
|
|
510
|
-
* @param {ActionDetails[]} annotationEntries - Array of annotation entries.
|
|
511
|
-
* @param {ActionDetails[]} sortedExtensionsArray - The sorted extensions array.
|
|
512
|
-
*/
|
|
513
|
-
function processAnnotationBasedAction(extensionId, extension, extensionDefinitionName, appSchema, annotationEntries, sortedExtensionsArray) {
|
|
514
|
-
// Check if this annotation-based action exists in annotationEntries (including nested in action groups)
|
|
515
|
-
const existsInAnnotations = actionExistsInAnnotations(extensionId, annotationEntries, appSchema);
|
|
516
|
-
if (existsInAnnotations) {
|
|
517
|
-
// Action already exists from annotations - skip it to avoid duplicates
|
|
518
|
-
return;
|
|
519
|
-
}
|
|
520
|
-
// Handle orphaned annotation-based action
|
|
521
|
-
handleOrphanedAnnotationAction(extensionId, extension, extensionDefinitionName, appSchema, sortedExtensionsArray);
|
|
522
|
-
}
|
|
523
409
|
/**
|
|
524
410
|
* Adds extension entries to a sorted array of extensions based on specific rules,
|
|
525
411
|
* including using anchors, callbacks, and custom templates.
|
|
@@ -527,14 +413,13 @@ function processAnnotationBasedAction(extensionId, extension, extensionDefinitio
|
|
|
527
413
|
* @param {CustomExtensions} extensions - The object containing custom extensions to be added to the array.
|
|
528
414
|
* @param {ActionDetails[]} sortedExtensionsArray - The array of sorted extensions to which new extensions will be added.
|
|
529
415
|
* @param {string} extensionDefinitionName - The definition name associated with the extensions being added.
|
|
530
|
-
* @param {TemplatePropertyName | TemplatePropertyName[]} [templatePropertyName] -
|
|
416
|
+
* @param {TemplatePropertyName | TemplatePropertyName[]} [templatePropertyName=TemplatePropertyName.Template] -
|
|
531
417
|
* The property name(s) to check for existence in an extension; used to determine compatibility.
|
|
532
418
|
* @param {ExtensionLogger} [logger] - An optional logger to handle logging of invalid extensions or other events.
|
|
533
|
-
* @param {boolean} [ignoreAnnotationAnchors] - A flag to indicate whether extension anchors should be ignored.
|
|
534
|
-
* @param {Definition} [appSchema] - Optional application schema for creating specific definitions for annotation-based actions.
|
|
419
|
+
* @param {boolean} [ignoreAnnotationAnchors=false] - A flag to indicate whether extension anchors should be ignored.
|
|
535
420
|
* @returns {ActionDetails[]} The updated sorted extensions array, including newly added and valid extensions.
|
|
536
421
|
*/
|
|
537
|
-
function addExtensionToArray(extensions, sortedExtensionsArray, extensionDefinitionName, templatePropertyName = ux_specification_types_1.TemplatePropertyName.Template, logger, ignoreAnnotationAnchors = false
|
|
422
|
+
function addExtensionToArray(extensions, sortedExtensionsArray, extensionDefinitionName, templatePropertyName = ux_specification_types_1.TemplatePropertyName.Template, logger, ignoreAnnotationAnchors = false) {
|
|
538
423
|
templatePropertyName = Array.isArray(templatePropertyName) ? templatePropertyName : [templatePropertyName];
|
|
539
424
|
const annotationEntries = [...sortedExtensionsArray];
|
|
540
425
|
const localExtensions = { ...extensions };
|
|
@@ -554,17 +439,9 @@ function addExtensionToArray(extensions, sortedExtensionsArray, extensionDefinit
|
|
|
554
439
|
}
|
|
555
440
|
const hasUnsupportedExtensionType = templatePropertyName.every((propertyName) => !(propertyName in extension));
|
|
556
441
|
if (hasUnsupportedExtensionType) {
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
delete localExtensions[extensionId];
|
|
561
|
-
continue;
|
|
562
|
-
}
|
|
563
|
-
else {
|
|
564
|
-
// Skip regular entries (columns, actions, etc.) that don't have required properties
|
|
565
|
-
delete localExtensions[extensionId];
|
|
566
|
-
continue;
|
|
567
|
-
}
|
|
442
|
+
// Skip regular entries(columns, actions, etc.)
|
|
443
|
+
delete localExtensions[extensionId];
|
|
444
|
+
continue;
|
|
568
445
|
}
|
|
569
446
|
const anchor = getExtensionAnchor(extension, annotationEntries);
|
|
570
447
|
if (anchor) {
|
|
@@ -659,7 +536,7 @@ function getFieldGroupsFromEntityType(entityType) {
|
|
|
659
536
|
/**
|
|
660
537
|
* Adds enum values to the properties definition of a custom column.
|
|
661
538
|
*
|
|
662
|
-
* @param lineItems - current lineItems definition, with all records
|
|
539
|
+
* @param lineItems - current lineItems definition, with all records.
|
|
663
540
|
* @param customColumnDefinition - current custom column definition, in the app schema
|
|
664
541
|
*/
|
|
665
542
|
function addEnumForProperties(lineItems, customColumnDefinition) {
|
|
@@ -787,28 +664,14 @@ function addActionRecordToSchema(lineItemDefinitionParams, createRef = true, isI
|
|
|
787
664
|
//no footer bar -> toolbar action
|
|
788
665
|
const actionDefinitionName = determineActionDefinitionName(data, lineItemRecord, isInnerAction);
|
|
789
666
|
const description = (0, common_1.getDataFieldDescription)(lineItemRecord, data.entityType);
|
|
790
|
-
|
|
791
|
-
// This is crucial for IBN actions, which need the full key including SemanticObject and RequiresContext
|
|
792
|
-
// (e.g., "DataFieldForIntentBasedNavigation::v4Freestyle::Inbound::RequiresContext")
|
|
793
|
-
// to be properly matched when referenced in manifest-based action menus.
|
|
794
|
-
const strategy = DataFieldStrategy_1.dataFieldStrategyContext.getStrategy(lineItemRecord.$Type);
|
|
795
|
-
const stableId = strategy.generateStableId(lineItemRecord);
|
|
796
|
-
// Extract Action property for keys generation (used by addTargetAndKeysOfAction).
|
|
797
|
-
// For IBN actions, this is just the action name (e.g., "Inbound").
|
|
798
|
-
// For bound actions, this may include namespace (e.g., "com.sap.Action/MyAction").
|
|
667
|
+
const prefix = lineItemRecord.$Type.split(`${ux_specification_types_1.UIVOCABULARY}.`)[1];
|
|
799
668
|
const actionId = typeof lineItemRecord.Action === 'string' ? lineItemRecord.Action : lineItemRecord.Action['path'];
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
// not just the Action property. For example, two IBN actions with different SemanticObjects but same Action
|
|
803
|
-
// should be treated as different actions, not duplicates.
|
|
804
|
-
const stableIdWithoutPrefix = stableId.split('::').slice(1).join('::');
|
|
805
|
-
// Create action definition with full stable ID as property key.
|
|
806
|
-
// This allows manifest-based menus to correctly reference actions by their complete identity.
|
|
807
|
-
const actionDefinition = (actionsDefinition.properties[stableId] = {
|
|
669
|
+
const propertyKey = (0, StableIdHelper_1.replaceSpecialChars)(actionId);
|
|
670
|
+
const actionDefinition = (actionsDefinition.properties[`${prefix}::${propertyKey}`] = {
|
|
808
671
|
description
|
|
809
672
|
});
|
|
810
673
|
if (createRef) {
|
|
811
|
-
actionDefinition.$ref = (0, common_1.getUniqueFacetDefinitionLink)(actionDefinitionName, (0, common_1.prepareRef)(
|
|
674
|
+
actionDefinition.$ref = (0, common_1.getUniqueFacetDefinitionLink)(actionDefinitionName, (0, common_1.prepareRef)(propertyKey), data.appSchema, lineItemPath);
|
|
812
675
|
}
|
|
813
676
|
else {
|
|
814
677
|
actionDefinition.properties = {};
|
|
@@ -1116,12 +979,20 @@ function initializeCreationModeSchema(appSchema, lineItemId, entityType, definit
|
|
|
1116
979
|
*/
|
|
1117
980
|
function addOneOfForCreationFields(appSchema, entityType, definitionName, lineItemId) {
|
|
1118
981
|
const creationModeDefinitionName = initializeCreationModeSchema(appSchema, lineItemId, entityType, definitionName);
|
|
1119
|
-
//
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
982
|
+
// replace the generic creationMode definition with the specific one for all table types
|
|
983
|
+
objectPage_1.OBJECT_PAGE_TABLE_DEFINITION_TYPES.forEach((type) => {
|
|
984
|
+
const creationModeAnyOf = appSchema.definitions[`${type}<${lineItemId}>`]?.properties?.creationMode?.anyOf;
|
|
985
|
+
if (creationModeAnyOf) {
|
|
986
|
+
const updatedCreationModeAnyOf = creationModeAnyOf.map((definition) => {
|
|
987
|
+
const { $ref } = definition;
|
|
988
|
+
// replace generic creation mode definition with specific one
|
|
989
|
+
// I don't check that $ref contains the definition name, the replacement should not work for other definitions
|
|
990
|
+
const updatedRef = $ref.replace(definitionName, creationModeDefinitionName);
|
|
991
|
+
return { ...definition, $ref: updatedRef };
|
|
992
|
+
});
|
|
993
|
+
appSchema.definitions[`${type}<${lineItemId}>`].properties.creationMode.anyOf = updatedCreationModeAnyOf;
|
|
994
|
+
}
|
|
995
|
+
});
|
|
1125
996
|
}
|
|
1126
997
|
/**
|
|
1127
998
|
* Find the relevant V4 page under the routing targets of manifest,json.
|
|
@@ -1298,7 +1169,7 @@ function addHeaderFooterCustomActionDefinition(appSchema, v4Page, logger, custom
|
|
|
1298
1169
|
function addActionsToArray(params) {
|
|
1299
1170
|
const { extensions, initialActionDetailsList, customActionDefinitionName, logger } = params;
|
|
1300
1171
|
// Add custom actions
|
|
1301
|
-
let actionDetailsList = addExtensionToArray(extensions, initialActionDetailsList, customActionDefinitionName, [ux_specification_types_1.TemplatePropertyName.Press, ux_specification_types_1.TemplatePropertyName.Menu], logger
|
|
1172
|
+
let actionDetailsList = addExtensionToArray(extensions, initialActionDetailsList, customActionDefinitionName, [ux_specification_types_1.TemplatePropertyName.Press, ux_specification_types_1.TemplatePropertyName.Menu], logger);
|
|
1302
1173
|
const processActionMenusParams = {
|
|
1303
1174
|
...params,
|
|
1304
1175
|
initialActionDetailsList: actionDetailsList
|
|
@@ -1358,31 +1229,20 @@ function getMenuEntryDefinitionLink($ref, actionMenuDefinitionName, appSchema) {
|
|
|
1358
1229
|
menuEntryDefinition[originalDefinitionKey] = originalDefinition[originalDefinitionKey];
|
|
1359
1230
|
}
|
|
1360
1231
|
}
|
|
1361
|
-
// some properties doesn't make sense for menu entries
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
// orphaned entries in the manifest.
|
|
1366
|
-
if (menuEntryDefinition.properties[ux_specification_types_1.PropertyName.position]) {
|
|
1367
|
-
menuEntryDefinition.properties[ux_specification_types_1.PropertyName.position][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
1368
|
-
}
|
|
1369
|
-
if (menuEntryDefinition.properties[ux_specification_types_1.PropertyName.overflowGroup]) {
|
|
1370
|
-
menuEntryDefinition.properties[ux_specification_types_1.PropertyName.overflowGroup][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
1371
|
-
}
|
|
1372
|
-
if (menuEntryDefinition.properties[ux_specification_types_1.PropertyName.priority]) {
|
|
1373
|
-
menuEntryDefinition.properties[ux_specification_types_1.PropertyName.priority][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
1374
|
-
}
|
|
1232
|
+
// some properties doesn't make sense for menu entries
|
|
1233
|
+
delete menuEntryDefinition.properties[ux_specification_types_1.PropertyName.position];
|
|
1234
|
+
delete menuEntryDefinition.properties[ux_specification_types_1.PropertyName.overflowGroup];
|
|
1235
|
+
delete menuEntryDefinition.properties[ux_specification_types_1.PropertyName.priority];
|
|
1375
1236
|
}
|
|
1376
1237
|
return menuEntryDefinitionLink;
|
|
1377
1238
|
}
|
|
1378
1239
|
/**
|
|
1379
|
-
* Determines the appropriate action definition
|
|
1380
|
-
* Returns menu definition names and the action name for menu entries.
|
|
1240
|
+
* Determines the appropriate action menu definition name based on a custom action definition name.
|
|
1381
1241
|
*
|
|
1382
1242
|
* @param {string} customActionDefinitionName - The custom action definition name to be parsed and matched.
|
|
1383
|
-
* @returns {ActionMenuDefinitionName} The corresponding action definition
|
|
1243
|
+
* @returns {ActionMenuDefinitionName} The corresponding action menu definition name, or a default value if not found.
|
|
1384
1244
|
*/
|
|
1385
|
-
function
|
|
1245
|
+
function determineActionMenuDefinitionName(customActionDefinitionName) {
|
|
1386
1246
|
const { baseDefinitionName } = parseDefinitionName(customActionDefinitionName);
|
|
1387
1247
|
return actionMenuDefinitionNameMap.get(baseDefinitionName) ?? LR_ACTION_MENU_DEFINITION;
|
|
1388
1248
|
}
|
|
@@ -1408,7 +1268,7 @@ function parseDefinitionName(definitionName = '') {
|
|
|
1408
1268
|
* Updates the custom menu's default action to include a list of valid options based on the provided menu schema.
|
|
1409
1269
|
*
|
|
1410
1270
|
* @param {Definition} customMenuDefinition - The definition object for the custom menu, where the default action will be updated.
|
|
1411
|
-
* @param {Record<string, SchemaDefinition>} [menu] - A mapping of menu items to their schema definitions, used to generate valid options for the default action.
|
|
1271
|
+
* @param {Record<string, SchemaDefinition>} [menu={}] - A mapping of menu items to their schema definitions, used to generate valid options for the default action.
|
|
1412
1272
|
*/
|
|
1413
1273
|
function setCustomMenuDefaultAction(customMenuDefinition, menu = {}) {
|
|
1414
1274
|
if (customMenuDefinition.properties[ux_specification_types_1.PropertyName.defaultAction]) {
|
|
@@ -1448,7 +1308,7 @@ function processActionMenu(params, extension, actionDefinition, initialDetailsLi
|
|
|
1448
1308
|
}
|
|
1449
1309
|
const { customActionDefinitionName, appSchema, lineItemId } = params;
|
|
1450
1310
|
const detailsList = [...initialDetailsList];
|
|
1451
|
-
const { actionMenuDefinitionName, actionMenuActionsDefinitionName } =
|
|
1311
|
+
const { actionMenuDefinitionName, actionMenuActionsDefinitionName } = determineActionMenuDefinitionName(customActionDefinitionName);
|
|
1452
1312
|
// Prepare submenu entries to be processed
|
|
1453
1313
|
const menu = extension[ux_specification_types_1.TemplatePropertyName.Menu] ?? [];
|
|
1454
1314
|
const properties = {};
|
|
@@ -1781,8 +1641,8 @@ function importManifestBasedActionMenuSettingsOfReference(importActionParams, de
|
|
|
1781
1641
|
/**
|
|
1782
1642
|
* Determines the strategy type for action settings based on the provided data type and action type.
|
|
1783
1643
|
*
|
|
1784
|
-
* @param {string} [dataType] - The data type associated with the action settings. Defaults to an empty string.
|
|
1785
|
-
* @param {string} [actionType] - The action type within the context of the action settings. Defaults to an empty string.
|
|
1644
|
+
* @param {string} [dataType=''] - The data type associated with the action settings. Defaults to an empty string.
|
|
1645
|
+
* @param {string} [actionType=''] - The action type within the context of the action settings. Defaults to an empty string.
|
|
1786
1646
|
* @returns {DataFieldStrategyTypes} The corresponding strategy type for the given data type and action type.
|
|
1787
1647
|
*/
|
|
1788
1648
|
function determineActionStrategyType(dataType = '', actionType = '') {
|
|
@@ -1851,63 +1711,6 @@ function addCustomFieldDefinition(appSchema, v4Page, fieldGroupInManifest, logge
|
|
|
1851
1711
|
function addManifestPathsToProperties(appSchema, definitionName, definition, pathParams, handleRelative = false) {
|
|
1852
1712
|
(0, utils_1.addManifestPathsToProperties)([v4controls, pages], appSchema, definitionName, definition, pathParams, undefined, handleRelative);
|
|
1853
1713
|
}
|
|
1854
|
-
/**
|
|
1855
|
-
* Determines whether an entity set or navigation target is insertable based on its annotations.
|
|
1856
|
-
*
|
|
1857
|
-
* When navigationPath is provided:
|
|
1858
|
-
* 1. Checks NavigationRestrictions.RestrictedProperties on the source EntitySet
|
|
1859
|
-
* 2. Resolves the target EntitySet via navigationPropertyBinding
|
|
1860
|
-
* 3. Checks InsertRestrictions on the target EntitySet
|
|
1861
|
-
* 4. Both must allow insertion for the function to return true
|
|
1862
|
-
*
|
|
1863
|
-
* When navigationPath is not provided:
|
|
1864
|
-
* 1. Checks InsertRestrictions on the given EntitySet
|
|
1865
|
-
*
|
|
1866
|
-
* For Path-based (dynamic) Insertable values, always returns true (shows creationMode).
|
|
1867
|
-
*
|
|
1868
|
-
* @param entitySet - The source entity set (where navigation starts from, or the entity set being checked)
|
|
1869
|
-
* @param navigationPath - Optional navigation property path (e.g., "_Booking", "to_Items")
|
|
1870
|
-
* @returns A boolean indicating whether insertion is allowed. Returns true if the insertability is Path-based (dynamic) or undefined.
|
|
1871
|
-
*/
|
|
1872
|
-
function getInsertableForEntitySet(entitySet, navigationPath) {
|
|
1873
|
-
// Check NavigationRestrictions if navigation path provided
|
|
1874
|
-
// Default: allow if not specified (Path-based values are also treated as true)
|
|
1875
|
-
let navigationInsertable = true;
|
|
1876
|
-
if (navigationPath) {
|
|
1877
|
-
const navRestrictions = entitySet?.annotations?.Capabilities?.NavigationRestrictions;
|
|
1878
|
-
if (navRestrictions?.RestrictedProperties) {
|
|
1879
|
-
const restriction = navRestrictions.RestrictedProperties.find((prop) => prop.NavigationProperty?.value === navigationPath);
|
|
1880
|
-
if (restriction?.InsertRestrictions?.Insertable !== undefined) {
|
|
1881
|
-
const navInsertable = restriction.InsertRestrictions.Insertable;
|
|
1882
|
-
if (typeof navInsertable === 'boolean') {
|
|
1883
|
-
navigationInsertable = navInsertable;
|
|
1884
|
-
}
|
|
1885
|
-
}
|
|
1886
|
-
}
|
|
1887
|
-
// Resolve target EntitySet via navigationPropertyBinding
|
|
1888
|
-
const targetEntitySet = entitySet?.navigationPropertyBinding?.[navigationPath];
|
|
1889
|
-
if (targetEntitySet && '_type' in targetEntitySet && targetEntitySet._type === 'EntitySet') {
|
|
1890
|
-
// Default: allow if not specified (Path-based values are also treated as true)
|
|
1891
|
-
let targetEntitySetInsertable = true;
|
|
1892
|
-
const targetRestriction = targetEntitySet.annotations?.Capabilities?.InsertRestrictions?.Insertable;
|
|
1893
|
-
if (typeof targetRestriction === 'boolean') {
|
|
1894
|
-
targetEntitySetInsertable = targetRestriction;
|
|
1895
|
-
}
|
|
1896
|
-
// Both Navigation and Target EntitySet must allow insertion
|
|
1897
|
-
return navigationInsertable && targetEntitySetInsertable;
|
|
1898
|
-
}
|
|
1899
|
-
// If no targetEntitySet found, only check navigation restrictions
|
|
1900
|
-
return navigationInsertable;
|
|
1901
|
-
}
|
|
1902
|
-
// No navigation path: check EntitySet-level InsertRestrictions
|
|
1903
|
-
// Default: allow if not specified (Path-based values are also treated as true)
|
|
1904
|
-
let entitySetInsertable = true;
|
|
1905
|
-
const entitySetRestriction = entitySet?.annotations?.Capabilities?.InsertRestrictions?.Insertable;
|
|
1906
|
-
if (typeof entitySetRestriction === 'boolean') {
|
|
1907
|
-
entitySetInsertable = entitySetRestriction;
|
|
1908
|
-
}
|
|
1909
|
-
return entitySetInsertable;
|
|
1910
|
-
}
|
|
1911
1714
|
/**
|
|
1912
1715
|
* Returns the manifest path for a given page based on the provided path parameters.
|
|
1913
1716
|
*
|