@sap/ux-specification 1.142.7 → 1.142.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -4
- package/dist/documentation/{runDocu-min.js → runDocu-min.mjs} +6 -6
- package/dist/documentation/{runDocu-min.js.map → runDocu-min.mjs.map} +2 -2
- package/dist/documentation/v2/v2-AnalyticalListPage.html +4 -4
- package/dist/documentation/v2/v2-ApplicationV2.html +4 -4
- package/dist/documentation/v2/v2-ListReport.html +4 -4
- package/dist/documentation/v2/v2-ListReportNew.html +4 -4
- package/dist/documentation/v2/v2-ObjectPage.html +4 -4
- package/dist/documentation/v2/v2-OverviewPage.html +4 -4
- package/dist/documentation/v4/v4-ApplicationV4.html +4 -4
- package/dist/documentation/v4/v4-BuildingBlocks.html +4 -4
- package/dist/documentation/v4/v4-FreestylePage.html +4 -4
- package/dist/documentation/v4/v4-ListReport.html +4 -4
- package/dist/documentation/v4/v4-ObjectPage.html +4 -4
- package/dist/index-min.mjs +1300 -0
- package/dist/index-min.mjs.map +7 -0
- package/dist/schemas/v2/ListReportNewConfig.json +143 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +62 -10
- package/dist/specification/package.json +14 -7
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +35 -3
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/scripts/macros/schema.d.ts +9 -0
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +21 -4
- 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 +6 -6
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
- package/dist/specification/src/ftfs/ftfs.js +25 -1
- package/dist/specification/src/ftfs/ftfs.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts +21 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js +35 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.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 +3 -2
- package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts +0 -3
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js +6 -4
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.d.ts +86 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.js +139 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts +11 -52
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js +15 -81
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.d.ts +46 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.js +81 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts +2 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/index.js +2 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.js.map +1 -1
- package/dist/specification/src/i18n/i18n.js +35 -2
- package/dist/specification/src/i18n/i18n.js.map +1 -1
- package/dist/specification/src/index.d.ts +1 -0
- package/dist/specification/src/index.d.ts.map +1 -1
- package/dist/specification/src/index.js +4 -0
- package/dist/specification/src/index.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +37 -3
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +18 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +8 -5
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +4 -1
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.js +47 -8
- package/dist/specification/src/sync/common/decoration/steps/Enums.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +8 -0
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +56 -34
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +3 -1
- package/dist/specification/src/sync/common/utils.d.ts +9 -2
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +10 -0
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts +14 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js +110 -0
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +4 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.d.ts +32 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.js +274 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +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 +25 -11
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +21 -9
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js +141 -72
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +14 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +66 -4
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/generate.d.ts +4 -2
- package/dist/specification/src/sync/v4/generate/generate.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/generate.js +8 -4
- package/dist/specification/src/sync/v4/generate/generate.js.map +1 -1
- 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 +1 -0
- 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 +1 -0
- 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 +15 -5
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +20 -4
- 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 +70 -19
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +6 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js +8 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +125 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +252 -1
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/templates/action/manifest.action-menu.json +10 -0
- package/dist/templates/action/manifest.action.json +13 -0
- package/dist/templates/app/Component.js +13 -0
- package/dist/templates/app/Component.ts +11 -0
- package/dist/templates/building-block/action/View.xml +30 -0
- package/dist/templates/building-block/chart/View.xml +9 -0
- package/dist/templates/building-block/common/manifest.json +7 -0
- package/dist/templates/building-block/custom-column/View.xml +5 -0
- package/dist/templates/building-block/custom-filter-field/View.xml +12 -0
- package/dist/templates/building-block/custom-form-field/View.xml +12 -0
- package/dist/templates/building-block/field/View.xml +8 -0
- package/dist/templates/building-block/filter-bar/View.xml +10 -0
- package/dist/templates/building-block/form/View.xml +4 -0
- package/dist/templates/building-block/page/View.xml +5 -0
- package/dist/templates/building-block/rich-text-editor/View.xml +3 -0
- package/dist/templates/building-block/rich-text-editor-button-groups/View.xml +18 -0
- package/dist/templates/building-block/table/View.xml +19 -0
- package/dist/templates/column/1.84/manifest.json +28 -0
- package/dist/templates/column/1.85/manifest.json +31 -0
- package/dist/templates/column/1.86/manifest.json +43 -0
- package/dist/templates/common/EventHandler.js +25 -0
- package/dist/templates/common/EventHandler.ts +28 -0
- package/dist/templates/common/Fragment.xml +3 -0
- package/dist/templates/common/FragmentWithForm.xml +7 -0
- package/dist/templates/common/FragmentWithVBox.xml +5 -0
- package/dist/templates/common/sap.fe.d.ts +43 -0
- package/dist/templates/controller-extension/Controller.js +18 -0
- package/dist/templates/controller-extension/Controller.ts +20 -0
- package/dist/templates/controller-extension/ControllerExtension.d.ts +11 -0
- package/dist/templates/controller-extension/manifest.json +14 -0
- package/dist/templates/field/manifest.json +32 -0
- package/dist/templates/filter/Controller.js +21 -0
- package/dist/templates/filter/Controller.ts +24 -0
- package/dist/templates/filter/fragment.xml +15 -0
- package/dist/templates/filter/manifest.json +12 -0
- package/dist/templates/header-section/1.85/manifest.json +43 -0
- package/dist/templates/header-section/1.86/manifest.json +45 -0
- package/dist/templates/page/custom/1.84/ext/Controller.js +45 -0
- package/dist/templates/page/custom/1.84/ext/Controller.ts +42 -0
- package/dist/templates/page/custom/1.84/ext/View.xml +6 -0
- package/dist/templates/page/custom/1.84/i18n/i18n.properties +2 -0
- package/dist/templates/page/custom/1.84/manifest.json +32 -0
- package/dist/templates/page/custom/1.94/ext/Controller.js +45 -0
- package/dist/templates/page/custom/1.94/ext/Controller.ts +42 -0
- package/dist/templates/page/custom/1.94/ext/View.xml +6 -0
- package/dist/templates/page/custom/1.94/i18n/i18n.properties +2 -0
- package/dist/templates/page/custom/1.94/manifest.json +33 -0
- package/dist/templates/page/custom/i18n/i18n.properties +2 -0
- package/dist/templates/page/list/manifest.json +20 -0
- package/dist/templates/page/object/manifest.json +33 -0
- package/dist/templates/section/1.85/manifest.json +33 -0
- package/dist/templates/section/1.86/manifest.json +32 -0
- package/dist/templates/subsection/1.85/manifest.json +37 -0
- package/dist/templates/subsection/1.86/manifest.json +36 -0
- package/dist/templates/view/ext/CustomViewWithTable.xml +3 -0
- package/dist/templates/view/manifest.json +41 -0
- package/dist/types/src/apiTypes.d.ts +3 -0
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +2 -0
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +2 -0
- package/dist/types/src/common/types.js.map +1 -1
- package/package.json +14 -7
- package/dist/index-min.js +0 -647
- package/dist/index-min.js.map +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fpmCustomPage.js","sourceRoot":"","sources":["../../../../../../../src/sync/v4/import/pages/fpmCustomPage.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fpmCustomPage.js","sourceRoot":"","sources":["../../../../../../../src/sync/v4/import/pages/fpmCustomPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,12 @@ export declare class Page<Config extends PageContext = PageContext> {
|
|
|
41
41
|
* @returns The entity type, or undefined if not found
|
|
42
42
|
*/
|
|
43
43
|
getEntityType(): EntityType | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the entity set associated with this page.
|
|
46
|
+
*
|
|
47
|
+
* @returns The entity set, or undefined if not found
|
|
48
|
+
*/
|
|
49
|
+
getEntitySet(): EntitySet | undefined;
|
|
44
50
|
/**
|
|
45
51
|
* Gets the UI annotations for the entity type associated with this page.
|
|
46
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/sync-rules/Page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,qBAAa,IAAI,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACpC,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;gBAEC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,EAC9C,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,EACvB,WAAW,CAAC,EAAE,MAAM;IAaxB;;;;OAIG;IACH,aAAa,IAAI,UAAU,GAAG,SAAS;IAIvC;;;;OAIG;IACH,gBAAgB,IAAI,wBAAwB,GAAG,SAAS;IAIxD;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/sync-rules/Page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,qBAAa,IAAI,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACpC,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;gBAEC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,EAC9C,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,EACvB,WAAW,CAAC,EAAE,MAAM;IAaxB;;;;OAIG;IACH,aAAa,IAAI,UAAU,GAAG,SAAS;IAIvC;;;;OAIG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;;;OAIG;IACH,gBAAgB,IAAI,wBAAwB,GAAG,SAAS;IAIxD;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|
|
@@ -37,6 +37,14 @@ class Page {
|
|
|
37
37
|
getEntityType() {
|
|
38
38
|
return this.entity.type;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Gets the entity set associated with this page.
|
|
42
|
+
*
|
|
43
|
+
* @returns The entity set, or undefined if not found
|
|
44
|
+
*/
|
|
45
|
+
getEntitySet() {
|
|
46
|
+
return this.entity.set;
|
|
47
|
+
}
|
|
40
48
|
/**
|
|
41
49
|
* Gets the UI annotations for the entity type associated with this page.
|
|
42
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/sync-rules/Page.ts"],"names":[],"mappings":";;;AAEA,0CAA4C;AAK5C;;;GAGG;AACH,MAAa,IAAI;IAcb;;;;;;;;;;OAUG;IACH,YACI,GAAQ,EACR,QAA8C,EAC9C,SAAqB,EACrB,UAAuB,EACvB,WAAoB;QAEpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG;YACV,WAAW,EAAE,WAAW;YACxB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,UAAU,IAAI,SAAS,EAAE,UAAU;SAC5C,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,gCAAgC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,oBAAoB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/sync-rules/Page.ts"],"names":[],"mappings":";;;AAEA,0CAA4C;AAK5C;;;GAGG;AACH,MAAa,IAAI;IAcb;;;;;;;;;;OAUG;IACH,YACI,GAAQ,EACR,QAA8C,EAC9C,SAAqB,EACrB,UAAuB,EACvB,WAAoB;QAEpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG;YACV,WAAW,EAAE,WAAW;YACxB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,UAAU,IAAI,SAAS,EAAE,UAAU;SAC5C,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,gCAAgC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,oBAAoB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAvFD,oBAuFC"}
|
|
@@ -5,10 +5,29 @@ import type { Definition, DefinitionOrBoolean } from 'typescript-json-schema';
|
|
|
5
5
|
import { DefinitionName, type ExtensionLogger, type FileData, type Manifest, TemplatePropertyName, TemplateType, v4 } from '@sap/ux-specification-types';
|
|
6
6
|
import { type ExtensionFileData } from '../types';
|
|
7
7
|
import type { MetadataInstanceInterface } from '../../common/decoration/factory';
|
|
8
|
+
import { TableTypeV4 } from '@sap/ux-specification-types/src/v4';
|
|
8
9
|
export type CustomExtension = v4.TableCustomColumn | v4.CustomAction | v4.CustomActionMenu | v4.SapUi5RoutingTargetContentSection | v4.SapUiGenericAppPageCustomFilterField;
|
|
9
10
|
export interface CustomExtensions {
|
|
10
11
|
[key: string]: CustomExtension;
|
|
11
12
|
}
|
|
13
|
+
export type TableTypeOptionsResult = {
|
|
14
|
+
options: TableTypeV4[];
|
|
15
|
+
defaultType: TableTypeV4;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Minimum UI5 version that supports capability-based table type restrictions.
|
|
19
|
+
*
|
|
20
|
+
* Before 1.142.0:
|
|
21
|
+
* - Table type was optional
|
|
22
|
+
* - All table types were available regardless of service capabilities
|
|
23
|
+
* - No warning messages for missing table type or type-dependent properties
|
|
24
|
+
*
|
|
25
|
+
* From 1.142.0 onwards:
|
|
26
|
+
* - Table type options are restricted based on entity set capabilities (analytical/hierarchical/standard)
|
|
27
|
+
* - Warning messages are shown when table type is missing but type-dependent properties exist
|
|
28
|
+
* - Schema enum values are dynamically restricted to match detected capabilities
|
|
29
|
+
*/
|
|
30
|
+
export declare const MIN_UI5_VERSION_FOR_TABLE_TYPE_RESTRICTIONS = "1.142.0";
|
|
12
31
|
/**
|
|
13
32
|
* Parameter object used while generating/appending LineItem entries (columns and actions) into the app schema.
|
|
14
33
|
*
|
|
@@ -425,6 +444,112 @@ export declare function addManifestPathsToProperties(appSchema: Definition, defi
|
|
|
425
444
|
* @returns A boolean indicating whether insertion is allowed. Returns true if the insertability is Path-based (dynamic) or undefined.
|
|
426
445
|
*/
|
|
427
446
|
export declare function getInsertableForEntitySet(entitySet: EntitySet, navigationPath?: string): boolean;
|
|
447
|
+
/**
|
|
448
|
+
* Determines the default OData V4 table type for an entity set based on its metadata capabilities.
|
|
449
|
+
*
|
|
450
|
+
* The decision follows a strict priority order:
|
|
451
|
+
* 1) Analytical tables take precedence when aggregate transformations are present and the
|
|
452
|
+
* analytical requirements are satisfied.
|
|
453
|
+
* 2) Hierarchical tables are selected when a recursive hierarchy is defined and analytical
|
|
454
|
+
* conditions are not met.
|
|
455
|
+
* 3) Responsive tables are used as a safe fallback when neither analytical nor hierarchical
|
|
456
|
+
* characteristics apply.
|
|
457
|
+
*
|
|
458
|
+
* The evaluation of analytical suitability differs between CAP and non-CAP services:
|
|
459
|
+
* - **CAP services**: Require both service-level AND entity-level aggregation annotations.
|
|
460
|
+
* - **Non-CAP services**: Service-level aggregation annotations are sufficient.
|
|
461
|
+
*
|
|
462
|
+
* @param entitySet The entity set whose annotations are evaluated.
|
|
463
|
+
* @param isCapService Indicates whether the service is a CAP service, affecting analytical requirements.
|
|
464
|
+
* @returns The default {@link TableTypeV4} to be used for the entity set.
|
|
465
|
+
*/
|
|
466
|
+
export declare function getDefaultTableType(entitySet?: EntitySet, isCapService?: boolean): TableTypeV4;
|
|
467
|
+
/**
|
|
468
|
+
* Determines the available table type options and recommended default type for an entity set
|
|
469
|
+
* based on its metadata capabilities.
|
|
470
|
+
*
|
|
471
|
+
* This function analyzes the entity set's capabilities and returns both the list of suitable
|
|
472
|
+
* table types and the recommended default type. The available options are restricted based
|
|
473
|
+
* on the detected service characteristics:
|
|
474
|
+
*
|
|
475
|
+
* - **Analytical services**: AnalyticalTable, ResponsiveTable, GridTable (default: AnalyticalTable).
|
|
476
|
+
* - **Hierarchical services**: TreeTable, ResponsiveTable, GridTable (default: TreeTable).
|
|
477
|
+
* - **Standard services**: ResponsiveTable, GridTable (default: ResponsiveTable).
|
|
478
|
+
*
|
|
479
|
+
* **Version gating**: Capability-based restrictions are only applied for UI5 1.142.0+.
|
|
480
|
+
* For earlier versions, all table types are available (ResponsiveTable, GridTable, AnalyticalTable, TreeTable)
|
|
481
|
+
* with ResponsiveTable as the default.
|
|
482
|
+
*
|
|
483
|
+
* @param entitySet The entity set whose capabilities determine the available table types.
|
|
484
|
+
* @param isCapService Indicates whether the service is a CAP service, affecting analytical
|
|
485
|
+
* capability detection.
|
|
486
|
+
* @param minUI5Version The minimum UI5 version from manifest. Capability-based restrictions
|
|
487
|
+
* require UI5 1.142.0+.
|
|
488
|
+
* @returns An object containing:
|
|
489
|
+
* - `options`: Array of suitable {@link TableTypeV4} values for the entity set
|
|
490
|
+
* - `defaultType`: The recommended {@link TableTypeV4} as the default choice
|
|
491
|
+
* @example
|
|
492
|
+
* // For an entity set with analytical capabilities (UI5 1.142+)
|
|
493
|
+
* const result = getTableTypeOptions(analyticalEntitySet, true, '1.142.0');
|
|
494
|
+
* // Returns: { options: [AnalyticalTable, ResponsiveTable, GridTable], defaultType: AnalyticalTable }
|
|
495
|
+
*
|
|
496
|
+
* // For the same entity set on UI5 1.120 (all types available, no restrictions)
|
|
497
|
+
* const result = getTableTypeOptions(analyticalEntitySet, true, '1.120.0');
|
|
498
|
+
* // Returns: { options: [ResponsiveTable, GridTable, AnalyticalTable, TreeTable], defaultType: ResponsiveTable }
|
|
499
|
+
*/
|
|
500
|
+
export declare function getTableTypeOptions(entitySet?: EntitySet, isCapService?: boolean, minUI5Version?: string): TableTypeOptionsResult;
|
|
501
|
+
/**
|
|
502
|
+
* Creates a virtual EntitySet for capability detection when the entitySet.entityType
|
|
503
|
+
* doesn't match the actual target EntityType (e.g., for contained navigation).
|
|
504
|
+
*
|
|
505
|
+
* This is needed for contained navigation (ContainsTarget=true) where there is no
|
|
506
|
+
* physical EntitySet in the metadata, but the target EntityType has important
|
|
507
|
+
* annotations like RecursiveHierarchy.
|
|
508
|
+
*
|
|
509
|
+
* @param entitySet - The base entity set (may have wrong entityType for contained navigation)
|
|
510
|
+
* @param targetEntityType - The actual entity type with correct annotations
|
|
511
|
+
* @returns EntitySet with correct entityType for capability detection, or original if types match
|
|
512
|
+
* @example
|
|
513
|
+
* // For contained navigation "/ZZZC_FINANCIAL_TREE/Set"
|
|
514
|
+
* const entitySetForCapabilities = ensureEntitySetWithCorrectType(
|
|
515
|
+
* entitySet, // ZZZC_FINANCIAL_TREE (type: Parameters)
|
|
516
|
+
* lineItemFacet.entityType // ZZZC_FINANCIAL_TREEType (with RecursiveHierarchy)
|
|
517
|
+
* );
|
|
518
|
+
* const options = getTableTypeOptions(entitySetForCapabilities, isCapService);
|
|
519
|
+
*/
|
|
520
|
+
export declare function ensureEntitySetWithCorrectType(entitySet: EntitySet | undefined, targetEntityType: EntityType | undefined): EntitySet | undefined;
|
|
521
|
+
/**
|
|
522
|
+
* Determines table type options based on context path by resolving the entity set internally.
|
|
523
|
+
*
|
|
524
|
+
* This is a wrapper function that handles the complexity of entity set resolution from annotation files.
|
|
525
|
+
* It parses the annotation files, resolves the entity set from the context path, and returns the
|
|
526
|
+
* appropriate table type options.
|
|
527
|
+
*
|
|
528
|
+
* **Version gating**: Capability-based restrictions are only applied for UI5 1.142.0+.
|
|
529
|
+
* For earlier versions, all table types are available.
|
|
530
|
+
*
|
|
531
|
+
* @param annotationFiles - Array of annotation files containing metadata
|
|
532
|
+
* @param contextPath - Context path or navigation property. Can be:
|
|
533
|
+
* - Full path starting with "/" (e.g., "/Travel", "/Travel/to_Booking")
|
|
534
|
+
* - Navigation property without "/" (e.g., "to_Booking") - requires entitySetName
|
|
535
|
+
* - Entity set name (e.g., "Travel")
|
|
536
|
+
* @param entitySetName - Optional entity set name. Required when contextPath is a navigation property without "/"
|
|
537
|
+
* @param isCapService - Indicates whether the service is a CAP service
|
|
538
|
+
* @param logger - Optional logger for debugging
|
|
539
|
+
* @param minUI5Version - Optional minimum UI5 version. Capability-based restrictions require UI5 1.142.0+
|
|
540
|
+
* @returns An object containing:
|
|
541
|
+
* - `options`: Array of suitable {@link TableTypeV4} values for the entity set
|
|
542
|
+
* - `defaultType`: The recommended {@link TableTypeV4} as the default choice
|
|
543
|
+
* @example
|
|
544
|
+
* // For an analytical service with full path (UI5 1.142+)
|
|
545
|
+
* const result = getTableTypeOptionsByContext(annotationFiles, "/Travel/to_Booking", undefined, true, logger, '1.142.0');
|
|
546
|
+
* // Returns: { options: [AnalyticalTable, ResponsiveTable, GridTable], defaultType: AnalyticalTable }
|
|
547
|
+
* @example
|
|
548
|
+
* // For navigation property with entity set name (UI5 1.120)
|
|
549
|
+
* const result = getTableTypeOptionsByContext(annotationFiles, "to_Booking", "Travel", true, logger, '1.120.0');
|
|
550
|
+
* // Returns: { options: [ResponsiveTable, GridTable, AnalyticalTable, TreeTable], defaultType: ResponsiveTable }
|
|
551
|
+
*/
|
|
552
|
+
export declare function getTableTypeOptionsByContext(annotationFiles: FileData[], contextPath: string, entitySetName?: string, isCapService?: boolean, logger?: ExtensionLogger, minUI5Version?: string): TableTypeOptionsResult;
|
|
428
553
|
/**
|
|
429
554
|
* Returns the manifest path for a given page based on the provided path parameters.
|
|
430
555
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,+BAA+B,EAC/B,QAAQ,EACX,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EAOH,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.QUALIFIER_SEPARATOR = exports.FIELD_SEPARATOR = exports.DATA_FIELD_FOR_ACTION_GROUP = void 0;
|
|
39
|
+
exports.QUALIFIER_SEPARATOR = exports.FIELD_SEPARATOR = exports.DATA_FIELD_FOR_ACTION_GROUP = exports.MIN_UI5_VERSION_FOR_TABLE_TYPE_RESTRICTIONS = void 0;
|
|
40
40
|
exports.addExtensionToArray = addExtensionToArray;
|
|
41
41
|
exports.getColumnsEnum = getColumnsEnum;
|
|
42
42
|
exports.addEnumForProperties = addEnumForProperties;
|
|
@@ -70,8 +70,13 @@ exports.importActionSettingsOfReference = importActionSettingsOfReference;
|
|
|
70
70
|
exports.addCustomFieldDefinition = addCustomFieldDefinition;
|
|
71
71
|
exports.addManifestPathsToProperties = addManifestPathsToProperties;
|
|
72
72
|
exports.getInsertableForEntitySet = getInsertableForEntitySet;
|
|
73
|
+
exports.getDefaultTableType = getDefaultTableType;
|
|
74
|
+
exports.getTableTypeOptions = getTableTypeOptions;
|
|
75
|
+
exports.ensureEntitySetWithCorrectType = ensureEntitySetWithCorrectType;
|
|
76
|
+
exports.getTableTypeOptionsByContext = getTableTypeOptionsByContext;
|
|
73
77
|
exports.getPageManifestPath = getPageManifestPath;
|
|
74
78
|
const utils_1 = require("../../common/utils");
|
|
79
|
+
const importProject_1 = require("../../common/importProject");
|
|
75
80
|
const StableIdHelper_1 = require("./StableIdHelper");
|
|
76
81
|
const common_1 = require("../../common");
|
|
77
82
|
const i18next_1 = __importDefault(require("i18next"));
|
|
@@ -83,8 +88,65 @@ const utils_2 = require("../import/utils");
|
|
|
83
88
|
const src_1 = require("@sap/ux-specification-types/src");
|
|
84
89
|
const v4controls = __importStar(require("../export/controls"));
|
|
85
90
|
const pages = __importStar(require("../export/pages"));
|
|
91
|
+
const v4_1 = require("@sap/ux-specification-types/src/v4");
|
|
92
|
+
const project_access_1 = require("@sap-ux/project-access");
|
|
86
93
|
const application_1 = require("../application");
|
|
87
94
|
const propertiesForEdit_1 = require("../generate/utils/propertiesForEdit");
|
|
95
|
+
const utils_3 = require("../sync-rules/utils");
|
|
96
|
+
/**
|
|
97
|
+
* Map of table type options based on the detected default table type.
|
|
98
|
+
* Each table type has a predefined set of compatible options and a default type.
|
|
99
|
+
*/
|
|
100
|
+
const TABLE_TYPE_OPTIONS_MAP = {
|
|
101
|
+
[v4_1.TableTypeV4.AnalyticalTable]: {
|
|
102
|
+
options: [v4_1.TableTypeV4.AnalyticalTable, v4_1.TableTypeV4.ResponsiveTable, v4_1.TableTypeV4.GridTable],
|
|
103
|
+
defaultType: v4_1.TableTypeV4.AnalyticalTable
|
|
104
|
+
},
|
|
105
|
+
[v4_1.TableTypeV4.TreeTable]: {
|
|
106
|
+
options: [v4_1.TableTypeV4.TreeTable, v4_1.TableTypeV4.ResponsiveTable, v4_1.TableTypeV4.GridTable],
|
|
107
|
+
defaultType: v4_1.TableTypeV4.TreeTable
|
|
108
|
+
},
|
|
109
|
+
[v4_1.TableTypeV4.ResponsiveTable]: {
|
|
110
|
+
options: [v4_1.TableTypeV4.ResponsiveTable, v4_1.TableTypeV4.GridTable],
|
|
111
|
+
defaultType: v4_1.TableTypeV4.ResponsiveTable
|
|
112
|
+
},
|
|
113
|
+
[v4_1.TableTypeV4.GridTable]: {
|
|
114
|
+
options: [v4_1.TableTypeV4.ResponsiveTable, v4_1.TableTypeV4.GridTable],
|
|
115
|
+
defaultType: v4_1.TableTypeV4.ResponsiveTable
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Default table type used as a fallback when entity set is undefined or capabilities cannot be determined.
|
|
120
|
+
* ResponsiveTable is chosen as the safest and most universally applicable option.
|
|
121
|
+
*/
|
|
122
|
+
const FALLBACK_TABLE_TYPE = v4_1.TableTypeV4.ResponsiveTable;
|
|
123
|
+
/**
|
|
124
|
+
* Fallback table type options used when entity set capabilities cannot be determined.
|
|
125
|
+
* Derives from FALLBACK_TABLE_TYPE to ensure consistency across fallback scenarios.
|
|
126
|
+
*/
|
|
127
|
+
const FALLBACK_TABLE_TYPE_OPTIONS = TABLE_TYPE_OPTIONS_MAP[FALLBACK_TABLE_TYPE];
|
|
128
|
+
/**
|
|
129
|
+
* Minimum UI5 version that supports capability-based table type restrictions.
|
|
130
|
+
*
|
|
131
|
+
* Before 1.142.0:
|
|
132
|
+
* - Table type was optional
|
|
133
|
+
* - All table types were available regardless of service capabilities
|
|
134
|
+
* - No warning messages for missing table type or type-dependent properties
|
|
135
|
+
*
|
|
136
|
+
* From 1.142.0 onwards:
|
|
137
|
+
* - Table type options are restricted based on entity set capabilities (analytical/hierarchical/standard)
|
|
138
|
+
* - Warning messages are shown when table type is missing but type-dependent properties exist
|
|
139
|
+
* - Schema enum values are dynamically restricted to match detected capabilities
|
|
140
|
+
*/
|
|
141
|
+
exports.MIN_UI5_VERSION_FOR_TABLE_TYPE_RESTRICTIONS = '1.142.0';
|
|
142
|
+
/**
|
|
143
|
+
* Table type options for UI5 versions before 1.142.0, where capability-based restrictions
|
|
144
|
+
* are not supported. All table types are available, with ResponsiveTable as the default.
|
|
145
|
+
*/
|
|
146
|
+
const LEGACY_VERSION_TABLE_TYPE_OPTIONS = {
|
|
147
|
+
options: [v4_1.TableTypeV4.ResponsiveTable, v4_1.TableTypeV4.GridTable, v4_1.TableTypeV4.AnalyticalTable, v4_1.TableTypeV4.TreeTable],
|
|
148
|
+
defaultType: v4_1.TableTypeV4.ResponsiveTable
|
|
149
|
+
};
|
|
88
150
|
exports.DATA_FIELD_FOR_ACTION_GROUP = 'DataFieldForActionGroup';
|
|
89
151
|
const UI_ANNOTATION_KEY = 'UI';
|
|
90
152
|
exports.FIELD_SEPARATOR = '::';
|
|
@@ -1995,6 +2057,195 @@ function getInsertableForEntitySet(entitySet, navigationPath) {
|
|
|
1995
2057
|
}
|
|
1996
2058
|
return entitySetInsertable;
|
|
1997
2059
|
}
|
|
2060
|
+
/**
|
|
2061
|
+
* Determines the default OData V4 table type for an entity set based on its metadata capabilities.
|
|
2062
|
+
*
|
|
2063
|
+
* The decision follows a strict priority order:
|
|
2064
|
+
* 1) Analytical tables take precedence when aggregate transformations are present and the
|
|
2065
|
+
* analytical requirements are satisfied.
|
|
2066
|
+
* 2) Hierarchical tables are selected when a recursive hierarchy is defined and analytical
|
|
2067
|
+
* conditions are not met.
|
|
2068
|
+
* 3) Responsive tables are used as a safe fallback when neither analytical nor hierarchical
|
|
2069
|
+
* characteristics apply.
|
|
2070
|
+
*
|
|
2071
|
+
* The evaluation of analytical suitability differs between CAP and non-CAP services:
|
|
2072
|
+
* - **CAP services**: Require both service-level AND entity-level aggregation annotations.
|
|
2073
|
+
* - **Non-CAP services**: Service-level aggregation annotations are sufficient.
|
|
2074
|
+
*
|
|
2075
|
+
* @param entitySet The entity set whose annotations are evaluated.
|
|
2076
|
+
* @param isCapService Indicates whether the service is a CAP service, affecting analytical requirements.
|
|
2077
|
+
* @returns The default {@link TableTypeV4} to be used for the entity set.
|
|
2078
|
+
*/
|
|
2079
|
+
function getDefaultTableType(entitySet, isCapService) {
|
|
2080
|
+
if (!entitySet) {
|
|
2081
|
+
// Fallback when entitySet is not provided
|
|
2082
|
+
return FALLBACK_TABLE_TYPE;
|
|
2083
|
+
}
|
|
2084
|
+
const { hasRecursiveHierarchyForEntitySet, hasAggregateTransformations, hasAggregateTransformationsForEntitySet } = (0, project_access_1.getTableCapabilitiesByEntitySet)(entitySet);
|
|
2085
|
+
// Check for analytical capabilities first (highest priority)
|
|
2086
|
+
// Requires service-level aggregate transformations (hasAggregateTransformations) as a prerequisite
|
|
2087
|
+
// For CAP services: both service-level and entity-level transformations must be present
|
|
2088
|
+
// For non-CAP services: service-level transformations alone are sufficient
|
|
2089
|
+
if (hasAggregateTransformations && (hasAggregateTransformationsForEntitySet || !isCapService)) {
|
|
2090
|
+
return v4_1.TableTypeV4.AnalyticalTable;
|
|
2091
|
+
}
|
|
2092
|
+
// Check for hierarchical data only (no analytical data or analytical requirements not met)
|
|
2093
|
+
if (hasRecursiveHierarchyForEntitySet) {
|
|
2094
|
+
return v4_1.TableTypeV4.TreeTable;
|
|
2095
|
+
}
|
|
2096
|
+
// Default for standard entity sets without analytical or hierarchical capabilities
|
|
2097
|
+
return v4_1.TableTypeV4.ResponsiveTable;
|
|
2098
|
+
}
|
|
2099
|
+
/**
|
|
2100
|
+
* Determines the available table type options and recommended default type for an entity set
|
|
2101
|
+
* based on its metadata capabilities.
|
|
2102
|
+
*
|
|
2103
|
+
* This function analyzes the entity set's capabilities and returns both the list of suitable
|
|
2104
|
+
* table types and the recommended default type. The available options are restricted based
|
|
2105
|
+
* on the detected service characteristics:
|
|
2106
|
+
*
|
|
2107
|
+
* - **Analytical services**: AnalyticalTable, ResponsiveTable, GridTable (default: AnalyticalTable).
|
|
2108
|
+
* - **Hierarchical services**: TreeTable, ResponsiveTable, GridTable (default: TreeTable).
|
|
2109
|
+
* - **Standard services**: ResponsiveTable, GridTable (default: ResponsiveTable).
|
|
2110
|
+
*
|
|
2111
|
+
* **Version gating**: Capability-based restrictions are only applied for UI5 1.142.0+.
|
|
2112
|
+
* For earlier versions, all table types are available (ResponsiveTable, GridTable, AnalyticalTable, TreeTable)
|
|
2113
|
+
* with ResponsiveTable as the default.
|
|
2114
|
+
*
|
|
2115
|
+
* @param entitySet The entity set whose capabilities determine the available table types.
|
|
2116
|
+
* @param isCapService Indicates whether the service is a CAP service, affecting analytical
|
|
2117
|
+
* capability detection.
|
|
2118
|
+
* @param minUI5Version The minimum UI5 version from manifest. Capability-based restrictions
|
|
2119
|
+
* require UI5 1.142.0+.
|
|
2120
|
+
* @returns An object containing:
|
|
2121
|
+
* - `options`: Array of suitable {@link TableTypeV4} values for the entity set
|
|
2122
|
+
* - `defaultType`: The recommended {@link TableTypeV4} as the default choice
|
|
2123
|
+
* @example
|
|
2124
|
+
* // For an entity set with analytical capabilities (UI5 1.142+)
|
|
2125
|
+
* const result = getTableTypeOptions(analyticalEntitySet, true, '1.142.0');
|
|
2126
|
+
* // Returns: { options: [AnalyticalTable, ResponsiveTable, GridTable], defaultType: AnalyticalTable }
|
|
2127
|
+
*
|
|
2128
|
+
* // For the same entity set on UI5 1.120 (all types available, no restrictions)
|
|
2129
|
+
* const result = getTableTypeOptions(analyticalEntitySet, true, '1.120.0');
|
|
2130
|
+
* // Returns: { options: [ResponsiveTable, GridTable, AnalyticalTable, TreeTable], defaultType: ResponsiveTable }
|
|
2131
|
+
*/
|
|
2132
|
+
function getTableTypeOptions(entitySet, isCapService, minUI5Version) {
|
|
2133
|
+
// Capability-based restrictions are only available in UI5 1.142.0+
|
|
2134
|
+
// For earlier versions, all table types are available
|
|
2135
|
+
if (minUI5Version && !(0, utils_3.compareUI5Versions)(minUI5Version, exports.MIN_UI5_VERSION_FOR_TABLE_TYPE_RESTRICTIONS)) {
|
|
2136
|
+
return LEGACY_VERSION_TABLE_TYPE_OPTIONS;
|
|
2137
|
+
}
|
|
2138
|
+
const detectedType = getDefaultTableType(entitySet, isCapService);
|
|
2139
|
+
return TABLE_TYPE_OPTIONS_MAP[detectedType];
|
|
2140
|
+
}
|
|
2141
|
+
/**
|
|
2142
|
+
* Creates a virtual EntitySet for capability detection when the entitySet.entityType
|
|
2143
|
+
* doesn't match the actual target EntityType (e.g., for contained navigation).
|
|
2144
|
+
*
|
|
2145
|
+
* This is needed for contained navigation (ContainsTarget=true) where there is no
|
|
2146
|
+
* physical EntitySet in the metadata, but the target EntityType has important
|
|
2147
|
+
* annotations like RecursiveHierarchy.
|
|
2148
|
+
*
|
|
2149
|
+
* @param entitySet - The base entity set (may have wrong entityType for contained navigation)
|
|
2150
|
+
* @param targetEntityType - The actual entity type with correct annotations
|
|
2151
|
+
* @returns EntitySet with correct entityType for capability detection, or original if types match
|
|
2152
|
+
* @example
|
|
2153
|
+
* // For contained navigation "/ZZZC_FINANCIAL_TREE/Set"
|
|
2154
|
+
* const entitySetForCapabilities = ensureEntitySetWithCorrectType(
|
|
2155
|
+
* entitySet, // ZZZC_FINANCIAL_TREE (type: Parameters)
|
|
2156
|
+
* lineItemFacet.entityType // ZZZC_FINANCIAL_TREEType (with RecursiveHierarchy)
|
|
2157
|
+
* );
|
|
2158
|
+
* const options = getTableTypeOptions(entitySetForCapabilities, isCapService);
|
|
2159
|
+
*/
|
|
2160
|
+
function ensureEntitySetWithCorrectType(entitySet, targetEntityType) {
|
|
2161
|
+
if (!entitySet || !targetEntityType) {
|
|
2162
|
+
return entitySet;
|
|
2163
|
+
}
|
|
2164
|
+
// If entityType already matches, return as-is
|
|
2165
|
+
if (entitySet.entityType === targetEntityType) {
|
|
2166
|
+
return entitySet;
|
|
2167
|
+
}
|
|
2168
|
+
// Create virtual EntitySet with correct entityType and its annotations
|
|
2169
|
+
return {
|
|
2170
|
+
...entitySet,
|
|
2171
|
+
entityType: targetEntityType,
|
|
2172
|
+
annotations: targetEntityType.annotations || entitySet.annotations
|
|
2173
|
+
};
|
|
2174
|
+
}
|
|
2175
|
+
/**
|
|
2176
|
+
* Returns the appropriate fallback table type options based on UI5 version.
|
|
2177
|
+
* For UI5 < 1.142.0, returns all table types (legacy behavior).
|
|
2178
|
+
* For UI5 >= 1.142.0, returns restricted fallback options.
|
|
2179
|
+
*
|
|
2180
|
+
* @param minUI5Version - Optional minimum UI5 version
|
|
2181
|
+
* @returns Table type options with all types for legacy versions, or restricted options for modern versions
|
|
2182
|
+
*/
|
|
2183
|
+
function getFallbackTableTypeOptions(minUI5Version) {
|
|
2184
|
+
if (minUI5Version && !(0, utils_3.compareUI5Versions)(minUI5Version, exports.MIN_UI5_VERSION_FOR_TABLE_TYPE_RESTRICTIONS)) {
|
|
2185
|
+
return LEGACY_VERSION_TABLE_TYPE_OPTIONS;
|
|
2186
|
+
}
|
|
2187
|
+
return FALLBACK_TABLE_TYPE_OPTIONS;
|
|
2188
|
+
}
|
|
2189
|
+
/**
|
|
2190
|
+
* Determines table type options based on context path by resolving the entity set internally.
|
|
2191
|
+
*
|
|
2192
|
+
* This is a wrapper function that handles the complexity of entity set resolution from annotation files.
|
|
2193
|
+
* It parses the annotation files, resolves the entity set from the context path, and returns the
|
|
2194
|
+
* appropriate table type options.
|
|
2195
|
+
*
|
|
2196
|
+
* **Version gating**: Capability-based restrictions are only applied for UI5 1.142.0+.
|
|
2197
|
+
* For earlier versions, all table types are available.
|
|
2198
|
+
*
|
|
2199
|
+
* @param annotationFiles - Array of annotation files containing metadata
|
|
2200
|
+
* @param contextPath - Context path or navigation property. Can be:
|
|
2201
|
+
* - Full path starting with "/" (e.g., "/Travel", "/Travel/to_Booking")
|
|
2202
|
+
* - Navigation property without "/" (e.g., "to_Booking") - requires entitySetName
|
|
2203
|
+
* - Entity set name (e.g., "Travel")
|
|
2204
|
+
* @param entitySetName - Optional entity set name. Required when contextPath is a navigation property without "/"
|
|
2205
|
+
* @param isCapService - Indicates whether the service is a CAP service
|
|
2206
|
+
* @param logger - Optional logger for debugging
|
|
2207
|
+
* @param minUI5Version - Optional minimum UI5 version. Capability-based restrictions require UI5 1.142.0+
|
|
2208
|
+
* @returns An object containing:
|
|
2209
|
+
* - `options`: Array of suitable {@link TableTypeV4} values for the entity set
|
|
2210
|
+
* - `defaultType`: The recommended {@link TableTypeV4} as the default choice
|
|
2211
|
+
* @example
|
|
2212
|
+
* // For an analytical service with full path (UI5 1.142+)
|
|
2213
|
+
* const result = getTableTypeOptionsByContext(annotationFiles, "/Travel/to_Booking", undefined, true, logger, '1.142.0');
|
|
2214
|
+
* // Returns: { options: [AnalyticalTable, ResponsiveTable, GridTable], defaultType: AnalyticalTable }
|
|
2215
|
+
* @example
|
|
2216
|
+
* // For navigation property with entity set name (UI5 1.120)
|
|
2217
|
+
* const result = getTableTypeOptionsByContext(annotationFiles, "to_Booking", "Travel", true, logger, '1.120.0');
|
|
2218
|
+
* // Returns: { options: [ResponsiveTable, GridTable, AnalyticalTable, TreeTable], defaultType: ResponsiveTable }
|
|
2219
|
+
*/
|
|
2220
|
+
function getTableTypeOptionsByContext(annotationFiles, contextPath, entitySetName, isCapService, logger, minUI5Version) {
|
|
2221
|
+
try {
|
|
2222
|
+
// 1. Parse and convert annotation files to ConvertedMetadata
|
|
2223
|
+
const convertedMetadata = (0, utils_1.parseAndMergeAndConvert)(annotationFiles, logger);
|
|
2224
|
+
if (!convertedMetadata) {
|
|
2225
|
+
logger?.info('Could not parse annotation files, returning default table type options');
|
|
2226
|
+
return getFallbackTableTypeOptions(minUI5Version);
|
|
2227
|
+
}
|
|
2228
|
+
// 2. Build full context path if needed
|
|
2229
|
+
// If contextPath doesn't start with "/" and entitySetName is provided, combine them
|
|
2230
|
+
let fullContextPath = contextPath;
|
|
2231
|
+
if (entitySetName && contextPath && !contextPath.startsWith('/')) {
|
|
2232
|
+
fullContextPath = `/${entitySetName}/${contextPath}`;
|
|
2233
|
+
}
|
|
2234
|
+
// 3. Resolve entity set from context path
|
|
2235
|
+
const { entitySet } = (0, importProject_1.getEntityTypeEntitySetFromContextPath)(convertedMetadata, fullContextPath, entitySetName, logger);
|
|
2236
|
+
if (!entitySet) {
|
|
2237
|
+
logger?.info(`Could not resolve entity set for context path: ${fullContextPath}, returning default table type options`);
|
|
2238
|
+
return getFallbackTableTypeOptions(minUI5Version);
|
|
2239
|
+
}
|
|
2240
|
+
// 4. Call existing getTableTypeOptions with resolved entitySet
|
|
2241
|
+
return getTableTypeOptions(entitySet, isCapService, minUI5Version);
|
|
2242
|
+
}
|
|
2243
|
+
catch (error) {
|
|
2244
|
+
logger?.error('Error in getTableTypeOptionsByContext', error);
|
|
2245
|
+
// Fallback to default options on error
|
|
2246
|
+
return getFallbackTableTypeOptions(minUI5Version);
|
|
2247
|
+
}
|
|
2248
|
+
}
|
|
1998
2249
|
/**
|
|
1999
2250
|
* Returns the manifest path for a given page based on the provided path parameters.
|
|
2000
2251
|
*
|