@sap/ux-specification 1.90.18 → 1.90.19
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 +16 -2
- package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
- package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
- package/dist/documentation/v2/v2-ListReport.html +1 -1
- package/dist/documentation/v2/v2-ObjectPage.html +1 -1
- package/dist/documentation/v2/v2-OverviewPage.html +1 -1
- package/dist/documentation/v4/v4-AnalyticalListPage.html +1 -1
- package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
- package/dist/documentation/v4/v4-ListReport.html +1 -1
- package/dist/documentation/v4/v4-ObjectPage.html +1 -1
- package/dist/index-min.js +1 -1
- package/dist/schemas/v2/AnalyticalListPageConfig.json +112 -2
- package/dist/schemas/v2/ListReportConfig.json +112 -2
- package/dist/schemas/v2/ObjectPageConfig.json +89 -33
- package/dist/schemas/v2/OverviewPageConfig.json +40 -0
- package/dist/schemas/v4/AnalyticalListPageConfig.json +43 -86
- package/dist/schemas/v4/ListReportConfig.json +43 -86
- package/dist/schemas/v4/ObjectPageConfig.json +64 -71
- package/dist/scripts/to-json-schema.js +31 -37
- package/dist/scripts/to-json-schema.js.map +1 -1
- package/dist/specification/v2/index-min.js +1 -1
- package/dist/specification/v4/index-min.js +1 -1
- package/dist/src/api.js +9 -9
- package/dist/src/api.js.map +1 -1
- package/dist/src/apiTypes.d.ts +5 -2
- package/dist/src/specification/schemaAccess.js +1 -3
- package/dist/src/specification/schemaAccess.js.map +1 -1
- package/dist/src/specification/v2/controls/Action.d.ts +19 -2
- package/dist/src/specification/v2/controls/FilterBar.d.ts +32 -0
- package/dist/src/specification/v2/controls/FilterBar.js +24 -0
- package/dist/src/specification/v2/controls/FilterBar.js.map +1 -1
- package/dist/src/specification/v2/controls/Footer.d.ts +20 -0
- package/dist/src/specification/v2/controls/{ObjectPageFooter.js → Footer.js} +1 -1
- package/dist/src/specification/v2/controls/Footer.js.map +1 -0
- package/dist/src/specification/v2/controls/Table.d.ts +8 -1
- package/dist/src/specification/v2/controls/Table.js.map +1 -1
- package/dist/src/specification/v2/controls/ToolBar.d.ts +1 -8
- package/dist/src/specification/v2/controls/index.d.ts +1 -2
- package/dist/src/specification/v2/controls/index.js.map +1 -1
- package/dist/src/specification/v2/pages/AnalyticalListPageConfig.d.ts +2 -1
- package/dist/src/specification/v2/pages/ListReportConfig.d.ts +2 -1
- package/dist/src/specification/v4/controls/ObjectPageFooter.d.ts +2 -2
- package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +7 -7
- package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +5 -6
- package/dist/src/specification/v4/controls/Table.d.ts +2 -7
- package/dist/src/specification/v4/webapp/manifest/ManifestSettings.d.ts +59 -10
- package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js +6 -0
- package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js.map +1 -1
- package/dist/src/sync/common/appProvider.js.map +1 -1
- package/dist/src/sync/common/decoration/control.d.ts +11 -1
- package/dist/src/sync/common/decoration/control.js +29 -3
- package/dist/src/sync/common/decoration/control.js.map +1 -1
- package/dist/src/sync/common/decoration/factory.js +2 -4
- package/dist/src/sync/common/decoration/factory.js.map +1 -1
- package/dist/src/sync/common/generate/objectPage.d.ts +8 -0
- package/dist/src/sync/common/generate/objectPage.js +18 -6
- package/dist/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/src/sync/common/generate/utils.d.ts +1 -0
- package/dist/src/sync/common/generate/utils.js +19 -3
- package/dist/src/sync/common/generate/utils.js.map +1 -1
- package/dist/src/sync/common/i18n.json +2 -0
- package/dist/src/sync/common/import/utils.d.ts +8 -1
- package/dist/src/sync/common/import/utils.js +14 -3
- package/dist/src/sync/common/import/utils.js.map +1 -1
- package/dist/src/sync/common/importProject.js +13 -22
- package/dist/src/sync/common/importProject.js.map +1 -1
- package/dist/src/sync/common/types.d.ts +29 -15
- package/dist/src/sync/common/types.js +25 -1
- package/dist/src/sync/common/types.js.map +1 -1
- package/dist/src/sync/common/utils.d.ts +4 -3
- package/dist/src/sync/common/utils.js +15 -18
- package/dist/src/sync/common/utils.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Action.d.ts +15 -0
- package/dist/src/sync/v2/export/controls/Action.js +68 -15
- package/dist/src/sync/v2/export/controls/Action.js.map +1 -1
- package/dist/src/sync/v2/export/controls/FilterBar.d.ts +3 -3
- package/dist/src/sync/v2/export/controls/FilterBar.js +2 -11
- package/dist/src/sync/v2/export/controls/FilterBar.js.map +1 -1
- package/dist/src/sync/v2/export/controls/FormAction.js +3 -2
- package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Fragment.d.ts +1 -1
- package/dist/src/sync/v2/export/controls/Fragment.js +239 -164
- package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +2 -2
- package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js +9 -9
- package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +2 -2
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +4 -4
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js +6 -4
- package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/TableColumn.d.ts +18 -2
- package/dist/src/sync/v2/export/controls/TableColumn.js +126 -1
- package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
- package/dist/src/sync/v2/export/export.js +134 -111
- package/dist/src/sync/v2/export/export.js.map +1 -1
- package/dist/src/sync/v2/export/manifest.js +2 -5
- package/dist/src/sync/v2/export/manifest.js.map +1 -1
- package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts +2 -1
- package/dist/src/sync/v2/export/pages/AnalyticalListPage.js +3 -0
- package/dist/src/sync/v2/export/pages/AnalyticalListPage.js.map +1 -1
- package/dist/src/sync/v2/export/pages/ListReport.d.ts +2 -1
- package/dist/src/sync/v2/export/pages/ListReport.js +3 -0
- package/dist/src/sync/v2/export/pages/ListReport.js.map +1 -1
- package/dist/src/sync/v2/export/view-controller-generator.d.ts +16 -21
- package/dist/src/sync/v2/export/view-controller-generator.js +20 -36
- package/dist/src/sync/v2/export/view-controller-generator.js.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.js +10 -5
- package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/src/sync/v2/generate/listReport.js +9 -4
- package/dist/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.d.ts +1 -5
- package/dist/src/sync/v2/generate/objectPage.js +10 -10
- package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v2/generate/utils.d.ts +15 -11
- package/dist/src/sync/v2/generate/utils.js +239 -110
- package/dist/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/src/sync/v2/import/common/index.d.ts +22 -4
- package/dist/src/sync/v2/import/common/index.js +237 -27
- package/dist/src/sync/v2/import/common/index.js.map +1 -1
- package/dist/src/sync/v2/import/controls/table.js +3 -2
- package/dist/src/sync/v2/import/controls/table.js.map +1 -1
- package/dist/src/sync/v2/import/pages/analyticalListPage.js +27 -5
- package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
- package/dist/src/sync/v2/import/pages/listReport.d.ts +0 -5
- package/dist/src/sync/v2/import/pages/listReport.js +14 -124
- package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
- package/dist/src/sync/v2/import/pages/objectPage.js +182 -107
- package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v2/import/utils.d.ts +4 -6
- package/dist/src/sync/v2/import/utils.js +32 -11
- package/dist/src/sync/v2/import/utils.js.map +1 -1
- package/dist/src/sync/v2/types.d.ts +8 -1
- package/dist/src/sync/v2/types.js +8 -1
- package/dist/src/sync/v2/types.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.d.ts +3 -7
- package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js +2 -25
- package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js.map +1 -1
- package/dist/src/sync/v4/export/controls/TableColumn.d.ts +1 -6
- package/dist/src/sync/v4/export/controls/TableColumn.js +0 -33
- package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ToolBar.d.ts +5 -1
- package/dist/src/sync/v4/export/controls/ToolBar.js +3 -0
- package/dist/src/sync/v4/export/controls/ToolBar.js.map +1 -1
- package/dist/src/sync/v4/export/export.js +20 -16
- package/dist/src/sync/v4/export/export.js.map +1 -1
- package/dist/src/sync/v4/export/pages/AnalyticalListPage.d.ts +2 -2
- package/dist/src/sync/v4/export/pages/ListReport.d.ts +2 -2
- package/dist/src/sync/v4/export/pages/ObjectPage.d.ts +2 -2
- package/dist/src/sync/v4/export/types.d.ts +3 -0
- package/dist/src/sync/v4/generate/generate.d.ts +4 -2
- package/dist/src/sync/v4/generate/generate.js +15 -6
- package/dist/src/sync/v4/generate/generate.js.map +1 -1
- package/dist/src/sync/v4/generate/listReport.d.ts +7 -6
- package/dist/src/sync/v4/generate/listReport.js +48 -23
- package/dist/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.js +66 -85
- package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/pages/analyticalListPage.d.ts +2 -2
- package/dist/src/sync/v4/import/pages/analyticalListPage.js +0 -1
- package/dist/src/sync/v4/import/pages/analyticalListPage.js.map +1 -1
- package/dist/src/sync/v4/import/pages/listReport.d.ts +3 -3
- package/dist/src/sync/v4/import/pages/listReport.js +34 -23
- package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/src/sync/v4/import/pages/objectPage.d.ts +2 -2
- package/dist/src/sync/v4/import/pages/objectPage.js +21 -16
- package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/utils.js +6 -5
- package/dist/src/sync/v4/import/utils.js.map +1 -1
- package/dist/src/sync/v4/utils/utils.d.ts +22 -2
- package/dist/src/sync/v4/utils/utils.js +102 -26
- package/dist/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/test/unit/utils.test.d.ts +1 -1
- package/package.json +5 -6
- package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +0 -11
- package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +0 -1
- package/dist/src/specification/v2/controls/ObjectPageFooterAction.d.ts +0 -28
- package/dist/src/specification/v2/controls/ObjectPageFooterAction.js +0 -3
- package/dist/src/specification/v2/controls/ObjectPageFooterAction.js.map +0 -1
- package/dist/test/test-utils/metadataParser.d.ts +0 -19
|
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
const decorators_1 = require("../../../common/decoration/decorators");
|
|
10
10
|
const common_1 = require("../../../common");
|
|
11
11
|
exports.FacetTitlePrefix = 'Facet ID: ';
|
|
12
|
-
exports.getTableSectionControlId = (baseId, idBreadcrumbs, breadcrumbs, controlType,
|
|
13
|
-
const facetId =
|
|
12
|
+
exports.getTableSectionControlId = (baseId, idBreadcrumbs, breadcrumbs, controlType, facetID) => {
|
|
13
|
+
const facetId = common_1.convertSectionId(breadcrumbs[1], facetID);
|
|
14
14
|
const breadcrumbsTrail = [facetId, 'Table'];
|
|
15
15
|
return common_1.buildControlIdFromParent(baseId, breadcrumbsTrail);
|
|
16
16
|
};
|
|
@@ -19,8 +19,8 @@ exports.getFormSectionControlId = (baseId, idBreadcrumbs, breadcrumbs, controlTy
|
|
|
19
19
|
const breadcrumbsTrail = [facetId, 'FormGroup'];
|
|
20
20
|
return common_1.buildControlIdFromParent(baseId, breadcrumbsTrail);
|
|
21
21
|
};
|
|
22
|
-
exports.getChartSectionControlId = (baseId, idBreadcrumbs, breadcrumbs, controlType,
|
|
23
|
-
const facetId =
|
|
22
|
+
exports.getChartSectionControlId = (baseId, idBreadcrumbs, breadcrumbs, controlType, facetID) => {
|
|
23
|
+
const facetId = common_1.convertSectionId(breadcrumbs[1], facetID);
|
|
24
24
|
const breadcrumbsTrail = [facetId, 'Chart'];
|
|
25
25
|
return common_1.buildControlIdFromParent(baseId, breadcrumbsTrail);
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPageSectionsV2.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/ObjectPageSectionsV2.ts"],"names":[],"mappings":";;;;;;;;AAMA,sEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"ObjectPageSectionsV2.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/ObjectPageSectionsV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,14 @@ const common_1 = require("../../../common");
|
|
|
15
15
|
* @param {string} baseId Base Id of the control
|
|
16
16
|
* @param {string[]} _idBreadcrumbs
|
|
17
17
|
* @param {string[]} breadcrumbs
|
|
18
|
+
* @param {ControlTypeFunction} controlType
|
|
19
|
+
* @param {string} facetID title from the app schema (comprising for instance the facet ID)
|
|
18
20
|
* @returns {string} stable ID of Object Page Toolbar Action button
|
|
19
21
|
*/
|
|
20
|
-
const getActionButtonId = (baseId, _idBreadcrumbs, breadcrumbs) => {
|
|
21
|
-
const
|
|
22
|
-
const section = breadcrumbs[1]
|
|
23
|
-
return `${baseId}${section}::action::${
|
|
22
|
+
const getActionButtonId = (baseId, _idBreadcrumbs, breadcrumbs, _controlType, facetID) => {
|
|
23
|
+
const { actionId } = common_1.getActionBreadcrumbParts(breadcrumbs);
|
|
24
|
+
const section = common_1.convertSectionId(breadcrumbs[1], facetID);
|
|
25
|
+
return `${baseId}${section}::action::${actionId.replace(':2f', '::')}`;
|
|
24
26
|
};
|
|
25
27
|
const flexRuleForToolBarActionOP = {
|
|
26
28
|
controlId: getActionButtonId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPageToolBarAction.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/ObjectPageToolBarAction.ts"],"names":[],"mappings":";;;;;;;;AACA,2DAA0E;AAC1E,iDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"ObjectPageToolBarAction.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/ObjectPageToolBarAction.ts"],"names":[],"mappings":";;;;;;;;AACA,2DAA0E;AAC1E,iDAAoD;AACpD,4CAAiH;AAEjH;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,CACtB,MAAc,EACd,cAAwB,EACxB,WAAqB,EACrB,YAAY,EACZ,OAAe,EACT,EAAE;IACR,MAAM,EAAE,QAAQ,EAAE,GAAG,iCAAwB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,yBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,GAAG,MAAM,GAAG,OAAO,aAAa,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG;IAC/B,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,GAAgB,EAAE,CAAC,mBAAW,CAAC,MAAM;IAClD,gBAAgB,EAAE,+BAAkB;CACvC,CAAC;AAEF,MAAa,uBAAuB;CA0BnC;AArBG;IAJC,qBAAQ,CAAC;QACN,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,2CAAkC;KAC/C,CAAC;wDACe;AAKjB;IAHC,qBAAQ,CAAC;QACN,IAAI,EAAE,0BAA0B;KACnC,CAAC;wDACe;AAKjB;IAHC,qBAAQ,CAAC;QACN,IAAI,EAAE,0BAA0B;KACnC,CAAC;qDACqB;AAKvB;IAHC,qBAAQ,CAAC;QACN,IAAI,EAAE,0BAA0B;KACnC,CAAC;2DAC2B;AAK7B;IAHC,qBAAQ,CAAC;QACN,IAAI,EAAE,0BAA0B;KACnC,CAAC;qDACsB;AAzB5B,0DA0BC"}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
/// <reference types="@sapui5/ts-types" />
|
|
2
|
-
import { TableColumn as TableColumnConfig, TableCustomColumn as TableCustomColumnConfig, TableColumnExtensionTypeV2 } from '../../../../specification/v2';
|
|
2
|
+
import { TableColumn as TableColumnConfig, TableColumnAction as TableColumnActionConfig, TableCustomColumn as TableCustomColumnConfig, TableColumnExtensionTypeV2 } from '../../../../specification/v2';
|
|
3
3
|
import { SAPUI5_FRAGMENT_CLASS } from '../../../../specification/common/webapp/manifest';
|
|
4
4
|
export declare class TableColumn implements TableColumnConfig {
|
|
5
5
|
width?: string;
|
|
6
6
|
hAlign?: sap.ui.core.TextAlign;
|
|
7
7
|
}
|
|
8
|
+
export declare class TableColumnAction implements TableColumnActionConfig {
|
|
9
|
+
width?: string;
|
|
10
|
+
hAlign?: sap.ui.core.TextAlign;
|
|
11
|
+
tooltip?: string;
|
|
12
|
+
icon?: sap.ui.core.URI;
|
|
13
|
+
activeIcon?: sap.ui.core.URI;
|
|
14
|
+
type?: sap.m.ButtonType;
|
|
15
|
+
}
|
|
16
|
+
export declare class TableColumnActionIntentBased extends TableColumnAction {
|
|
17
|
+
width?: string;
|
|
18
|
+
hAlign?: sap.ui.core.TextAlign;
|
|
19
|
+
tooltip?: string;
|
|
20
|
+
icon?: sap.ui.core.URI;
|
|
21
|
+
activeIcon?: sap.ui.core.URI;
|
|
22
|
+
type?: sap.m.ButtonType;
|
|
23
|
+
}
|
|
8
24
|
/**
|
|
9
|
-
* No sync rules are defined for table custom columns, as they are
|
|
25
|
+
* No sync rules are defined for table custom columns, as they are transferred altogether, by function exportToFragment.
|
|
10
26
|
* This approach is needed to support inserts as well as deletions of manifest extensions and fragments
|
|
11
27
|
*/
|
|
12
28
|
export declare class TableCustomColumn implements TableCustomColumnConfig {
|
|
@@ -6,9 +6,66 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const Action_1 = require("./Action");
|
|
9
10
|
const types_1 = require("../../../common/types");
|
|
10
11
|
const decoration_1 = require("../../../common/decoration");
|
|
11
12
|
const common_1 = require("../../../common");
|
|
13
|
+
/**
|
|
14
|
+
* Create stable ID for Action Column
|
|
15
|
+
*
|
|
16
|
+
* @param {string} baseId Base Id of the control
|
|
17
|
+
* @param {string[]} _idBreadcrumbs
|
|
18
|
+
* @param {string[]} breadcrumbs
|
|
19
|
+
* @returns {string} stable ID of Action Column
|
|
20
|
+
*/
|
|
21
|
+
const buildColumnActionId = (baseId, idBreadcrumbs, breadcrumbs) => {
|
|
22
|
+
const columnTemplate = 'template:::TableColumn';
|
|
23
|
+
const { actionType, actionId } = common_1.getActionBreadcrumbParts(breadcrumbs);
|
|
24
|
+
const smartTableId = `sSmartTableId::${idBreadcrumbs[0]}`;
|
|
25
|
+
return `${baseId}${columnTemplate}:::${actionType}:::${smartTableId}:::sAction::${actionId}`;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create stable ID for Intent Based Action Column
|
|
29
|
+
*
|
|
30
|
+
* @param {string} baseId Base Id of the control
|
|
31
|
+
* @param {string[]} _idBreadcrumbs
|
|
32
|
+
* @param {string[]} breadcrumbs
|
|
33
|
+
* @returns {string} stable ID of Action Column
|
|
34
|
+
*/
|
|
35
|
+
const buildColumnIntentBasedId = (baseId, idBreadcrumbs, breadcrumbs) => {
|
|
36
|
+
const columnTemplate = 'template:::TableColumn';
|
|
37
|
+
const { actionType, actionId, semanticObjectId } = common_1.getActionBreadcrumbParts(breadcrumbs);
|
|
38
|
+
const smartTableId = `sSmartTableId::${idBreadcrumbs[0]}`;
|
|
39
|
+
return `${baseId}${columnTemplate}:::${actionType}:::${smartTableId}:::sSemanticObject::${semanticObjectId}:::sAction::${actionId}`;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Create stable ID for Column Action button
|
|
43
|
+
*
|
|
44
|
+
* @param {string} baseId Base Id of the control
|
|
45
|
+
* @param {string[]} _idBreadcrumbs
|
|
46
|
+
* @param {string[]} breadcrumbs
|
|
47
|
+
* @returns {string} stable ID of Column Action button
|
|
48
|
+
*/
|
|
49
|
+
const buildColumnActionButtonId = (baseId, _idBreadcrumbs, breadcrumbs) => {
|
|
50
|
+
const { actionId } = common_1.getActionBreadcrumbParts(breadcrumbs);
|
|
51
|
+
return `${baseId}action::${actionId.replace(':2f', '::')}`;
|
|
52
|
+
};
|
|
53
|
+
// TableColumnAction column properties
|
|
54
|
+
const flexRuleForColumn = {
|
|
55
|
+
controlId: buildColumnActionId,
|
|
56
|
+
controlType: () => types_1.ControlType.TableColumn,
|
|
57
|
+
createFlexChange: decoration_1.exportToFlexChange
|
|
58
|
+
};
|
|
59
|
+
// TableColumnAction action properties
|
|
60
|
+
const flexRuleForColumnAction = {
|
|
61
|
+
controlId: buildColumnActionButtonId,
|
|
62
|
+
controlType: () => types_1.ControlType.Button,
|
|
63
|
+
createFlexChange: decoration_1.exportToFlexChange
|
|
64
|
+
};
|
|
65
|
+
// TableColumnActionIntentBased main properties
|
|
66
|
+
const flexRuleForColumnIntentBased = Object.assign(Object.assign({}, flexRuleForColumn), { controlId: buildColumnIntentBasedId });
|
|
67
|
+
// TableColumnActionIntentBased action properties
|
|
68
|
+
const flexRuleForColumnIntentBasedAction = Object.assign(Object.assign({}, flexRuleForColumnAction), { controlId: Action_1.buildIntentBasedActionId });
|
|
12
69
|
class TableColumn {
|
|
13
70
|
}
|
|
14
71
|
__decorate([
|
|
@@ -31,8 +88,76 @@ __decorate([
|
|
|
31
88
|
})
|
|
32
89
|
], TableColumn.prototype, "hAlign", void 0);
|
|
33
90
|
exports.TableColumn = TableColumn;
|
|
91
|
+
class TableColumnAction {
|
|
92
|
+
}
|
|
93
|
+
__decorate([
|
|
94
|
+
decoration_1.syncRule({
|
|
95
|
+
flex: flexRuleForColumn
|
|
96
|
+
})
|
|
97
|
+
], TableColumnAction.prototype, "width", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
decoration_1.syncRule({
|
|
100
|
+
flex: flexRuleForColumn,
|
|
101
|
+
generate: common_1.addPatternForBindingChangeOfEnumLR
|
|
102
|
+
})
|
|
103
|
+
], TableColumnAction.prototype, "hAlign", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
decoration_1.syncRule({
|
|
106
|
+
flex: flexRuleForColumnAction
|
|
107
|
+
})
|
|
108
|
+
], TableColumnAction.prototype, "tooltip", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
decoration_1.syncRule({
|
|
111
|
+
flex: flexRuleForColumnAction
|
|
112
|
+
})
|
|
113
|
+
], TableColumnAction.prototype, "icon", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
decoration_1.syncRule({
|
|
116
|
+
flex: flexRuleForColumnAction
|
|
117
|
+
})
|
|
118
|
+
], TableColumnAction.prototype, "activeIcon", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
decoration_1.syncRule({
|
|
121
|
+
flex: flexRuleForColumnAction
|
|
122
|
+
})
|
|
123
|
+
], TableColumnAction.prototype, "type", void 0);
|
|
124
|
+
exports.TableColumnAction = TableColumnAction;
|
|
125
|
+
class TableColumnActionIntentBased extends TableColumnAction {
|
|
126
|
+
}
|
|
127
|
+
__decorate([
|
|
128
|
+
decoration_1.syncRule({
|
|
129
|
+
flex: flexRuleForColumnIntentBased
|
|
130
|
+
})
|
|
131
|
+
], TableColumnActionIntentBased.prototype, "width", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
decoration_1.syncRule({
|
|
134
|
+
flex: flexRuleForColumnIntentBased,
|
|
135
|
+
generate: common_1.addPatternForBindingChangeOfEnumLR
|
|
136
|
+
})
|
|
137
|
+
], TableColumnActionIntentBased.prototype, "hAlign", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
decoration_1.syncRule({
|
|
140
|
+
flex: flexRuleForColumnIntentBasedAction
|
|
141
|
+
})
|
|
142
|
+
], TableColumnActionIntentBased.prototype, "tooltip", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
decoration_1.syncRule({
|
|
145
|
+
flex: flexRuleForColumnIntentBasedAction
|
|
146
|
+
})
|
|
147
|
+
], TableColumnActionIntentBased.prototype, "icon", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
decoration_1.syncRule({
|
|
150
|
+
flex: flexRuleForColumnIntentBasedAction
|
|
151
|
+
})
|
|
152
|
+
], TableColumnActionIntentBased.prototype, "activeIcon", void 0);
|
|
153
|
+
__decorate([
|
|
154
|
+
decoration_1.syncRule({
|
|
155
|
+
flex: flexRuleForColumnIntentBasedAction
|
|
156
|
+
})
|
|
157
|
+
], TableColumnActionIntentBased.prototype, "type", void 0);
|
|
158
|
+
exports.TableColumnActionIntentBased = TableColumnActionIntentBased;
|
|
34
159
|
/**
|
|
35
|
-
* No sync rules are defined for table custom columns, as they are
|
|
160
|
+
* No sync rules are defined for table custom columns, as they are transferred altogether, by function exportToFragment.
|
|
36
161
|
* This approach is needed to support inserts as well as deletions of manifest extensions and fragments
|
|
37
162
|
*/
|
|
38
163
|
class TableCustomColumn {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumn.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/TableColumn.ts"],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"TableColumn.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/export/controls/TableColumn.ts"],"names":[],"mappings":"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"}
|
|
@@ -293,13 +293,11 @@ function evaluateManifestRule(transferParameters, path, syncRule, key, configObj
|
|
|
293
293
|
transferParameters.nextDefinition['targetDefinition'].type === 'object' &&
|
|
294
294
|
transferParameters.nextDefinition['targetDefinition'].properties)) {
|
|
295
295
|
const exportHandler = syncRule.manifest.export;
|
|
296
|
-
if (exportHandler
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
manifestSection[manifestKey] = configObject[key];
|
|
302
|
-
}
|
|
296
|
+
if (exportHandler && typeof exportHandler === 'function') {
|
|
297
|
+
exportHandler(manifestSection, configObject, key, manifestKey);
|
|
298
|
+
}
|
|
299
|
+
else if (exportHandler !== false) {
|
|
300
|
+
manifestSection[manifestKey] = configObject[key];
|
|
303
301
|
}
|
|
304
302
|
}
|
|
305
303
|
else if (transferParameters.propertyDefinition['type'] !== 'array' &&
|
|
@@ -315,42 +313,54 @@ function evaluateManifestRule(transferParameters, path, syncRule, key, configObj
|
|
|
315
313
|
common_1.deleteEmptyStructure(transferParameters.exportResults.manifest, path);
|
|
316
314
|
}
|
|
317
315
|
/**
|
|
318
|
-
*
|
|
316
|
+
* Determines the path to a manifest setting, based on the syncRule
|
|
319
317
|
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
320
|
-
* @param syncRule - export rule from the object classes decorator
|
|
321
|
-
* @param configObject - current (sub)object of the configuration file
|
|
322
318
|
* @param breadcrumbs - list of breadcrumbs, i.e. ID parts for building the stable ID
|
|
323
|
-
* @param
|
|
319
|
+
* @param {SyncRule} syncRule - export rule from the object classes decorator
|
|
320
|
+
* @param configObject - current (sub)object of the configuration file
|
|
324
321
|
* @param title - title from the app schema (comprising for instance the facet ID)
|
|
325
|
-
* @
|
|
322
|
+
* @returns the path to the manifest setting
|
|
326
323
|
*/
|
|
327
|
-
function
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
if (breadcrumbs[
|
|
331
|
-
|
|
332
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[2]);
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, (title === null || title === void 0 ? void 0 : title.startsWith(common_1.FacetTitlePrefix)) ? title.split(common_1.FacetTitlePrefix)[1] : breadcrumbs[1], breadcrumbs[breadcrumbs.length - 1]);
|
|
336
|
-
path = path.replace('/@', '::').replace(/VOCWITHCOLONS/g, '::com.sap.vocabularies');
|
|
337
|
-
}
|
|
324
|
+
function getManifestPath(transferParameters, breadcrumbs, syncRule, configObject, title) {
|
|
325
|
+
let path;
|
|
326
|
+
if (breadcrumbs[0] === 'sections') {
|
|
327
|
+
if (breadcrumbs[1] === 'custom') {
|
|
328
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[2]);
|
|
338
329
|
}
|
|
339
|
-
else
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[breadcrumbs.length - 1]);
|
|
345
|
-
}
|
|
330
|
+
else {
|
|
331
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, (title === null || title === void 0 ? void 0 : title.startsWith(common_1.FacetTitlePrefix)) ? title.split(common_1.FacetTitlePrefix)[1] : breadcrumbs[1], breadcrumbs[breadcrumbs.length - 1]);
|
|
332
|
+
path = path.replace('/@', '::').replace(/VOCWITHCOLONS/g, '::com.sap.vocabularies');
|
|
346
333
|
}
|
|
347
|
-
|
|
348
|
-
|
|
334
|
+
}
|
|
335
|
+
else if (breadcrumbs[0] === 'table') {
|
|
336
|
+
if (breadcrumbs[1] === 'columns' && breadcrumbs[2] === 'custom') {
|
|
337
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, configObject['tabKey']);
|
|
349
338
|
}
|
|
350
339
|
else {
|
|
351
|
-
path = syncRule.manifest.path(transferParameters.pageKeys);
|
|
340
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[breadcrumbs.length - 1]);
|
|
352
341
|
}
|
|
353
|
-
|
|
342
|
+
}
|
|
343
|
+
else if (breadcrumbs[0] === 'keyPerformanceIndicators') {
|
|
344
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, title);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
path = syncRule.manifest.path(transferParameters.pageKeys);
|
|
348
|
+
}
|
|
349
|
+
return path;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Evaluates an export rule for a property or object, transfers to flex change or manifest setting
|
|
353
|
+
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
354
|
+
* @param {SyncRule} syncRule - export rule from the object classes decorator
|
|
355
|
+
* @param configObject - current (sub)object of the configuration file
|
|
356
|
+
* @param breadcrumbs - list of breadcrumbs, i.e. ID parts for building the stable ID
|
|
357
|
+
* @param ids - list of parent & child ids
|
|
358
|
+
* @param title - title from the app schema (comprising for instance the facet ID)
|
|
359
|
+
* @param key - key of the given property
|
|
360
|
+
*/
|
|
361
|
+
function evaluateExportRule(transferParameters, syncRule, configObject, breadcrumbs, ids, title, key) {
|
|
362
|
+
if (!syncRule) {
|
|
363
|
+
return;
|
|
354
364
|
}
|
|
355
365
|
//eliminate subsections' hierarchy
|
|
356
366
|
let index = breadcrumbs.indexOf('subsections');
|
|
@@ -362,7 +372,7 @@ function evaluateExportRule(transferParameters, syncRule, configObject, breadcru
|
|
|
362
372
|
evaluateFlexRule(transferParameters, breadcrumbs, syncRule, ids, title, configObject, key);
|
|
363
373
|
}
|
|
364
374
|
else if (syncRule.manifest) {
|
|
365
|
-
const path = getManifestPath();
|
|
375
|
+
const path = getManifestPath(transferParameters, breadcrumbs, syncRule, configObject, title);
|
|
366
376
|
evaluateManifestRule(transferParameters, path, syncRule, key, configObject);
|
|
367
377
|
}
|
|
368
378
|
}
|
|
@@ -408,16 +418,51 @@ function deleteObsoleteColumnsFromFragment(path, exportResults, entitySet, confi
|
|
|
408
418
|
}
|
|
409
419
|
}
|
|
410
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* Clusters the custom columns if a config by the extension's path in manifest
|
|
423
|
+
* @param customColumnsInConfig - list of all custom columns in config
|
|
424
|
+
* @param schemaDefinition - schema definition of the table custom column
|
|
425
|
+
* @param v2Page - current page in manifest
|
|
426
|
+
* @param entitySet - current entity set
|
|
427
|
+
* @param sectionKey key of the section (in case of OP)
|
|
428
|
+
* @returns the custom columns, clustered by the manifest path
|
|
429
|
+
*/
|
|
430
|
+
function clusterConfigColumnsByPath(customColumnsInConfig, schemaDefinition, v2Page, entitySet, sectionKey) {
|
|
431
|
+
const cluster = {};
|
|
432
|
+
for (const customColumn of customColumnsInConfig) {
|
|
433
|
+
//verify that mandatory parameters are filled
|
|
434
|
+
if (!customColumn['className'] ||
|
|
435
|
+
!customColumn['fragmentName'] ||
|
|
436
|
+
!customColumn['columnKey'] ||
|
|
437
|
+
!customColumn['extensionType']) {
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
//check fragment name
|
|
441
|
+
if (schemaDefinition['properties']['fragmentName']['pattern']) {
|
|
442
|
+
const namePattern = new RegExp(schemaDefinition['properties']['fragmentName']['pattern']);
|
|
443
|
+
if (namePattern.test(customColumn['fragmentName']) === false) {
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
const { path, viewTemplateType } = controls_1.getCustomColumnPath(v2Page, entitySet, customColumn.tabKey || sectionKey, customColumn['extensionType']);
|
|
448
|
+
if (!cluster[path]) {
|
|
449
|
+
cluster[path] = {
|
|
450
|
+
viewTemplateType: viewTemplateType,
|
|
451
|
+
columns: []
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
cluster[path].columns.push(customColumn);
|
|
455
|
+
}
|
|
456
|
+
return cluster;
|
|
457
|
+
}
|
|
411
458
|
/**
|
|
412
459
|
* Transfers column extensions to manifest and fragment files
|
|
413
|
-
* @param {
|
|
414
|
-
* @param {
|
|
415
|
-
* @param {string} appId - id of the Fiori elements app, which is usually namespace.appid
|
|
460
|
+
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
461
|
+
* @param {TableCustomColumns} customColumnsInConfig - config part comprising the table custom columns
|
|
416
462
|
* @param {object} schemaDefinition - Column schema definition
|
|
417
|
-
* @param {SapUiAppPageV2} page - Page object from manifest.
|
|
418
463
|
* @param {ObjectPageSectionData} [objectPageSectionData] - Object Page section's data containing target and key options.
|
|
419
464
|
*/
|
|
420
|
-
function transferColumnExtensions(transferParameters,
|
|
465
|
+
function transferColumnExtensions(transferParameters, customColumnsInConfig, schemaDefinition, objectPageSectionData) {
|
|
421
466
|
const sectionKey = objectPageSectionData ? objectPageSectionData.key : undefined;
|
|
422
467
|
const sectionTarget = objectPageSectionData ? objectPageSectionData.target : undefined;
|
|
423
468
|
const entitySet = sectionTarget || transferParameters.v2Page.entitySet;
|
|
@@ -426,39 +471,14 @@ function transferColumnExtensions(transferParameters, config, schemaDefinition,
|
|
|
426
471
|
if (!path) {
|
|
427
472
|
continue;
|
|
428
473
|
}
|
|
429
|
-
deleteObsoleteColumnsFromFragment(path, transferParameters.exportResults, entitySet,
|
|
474
|
+
deleteObsoleteColumnsFromFragment(path, transferParameters.exportResults, entitySet, customColumnsInConfig, sectionKey, extensionType, transferParameters.appId);
|
|
430
475
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
for (let index = 0; index < config.length; index++) {
|
|
435
|
-
const customColumn = config[index];
|
|
436
|
-
//verify that mandatory parameters are filled
|
|
437
|
-
if (!customColumn['className'] ||
|
|
438
|
-
!customColumn['fragmentName'] ||
|
|
439
|
-
!customColumn['columnKey'] ||
|
|
440
|
-
!customColumn['extensionType']) {
|
|
441
|
-
continue;
|
|
442
|
-
}
|
|
443
|
-
//check fragment name
|
|
444
|
-
if (schemaDefinition['properties']['fragmentName']['pattern']) {
|
|
445
|
-
const namePattern = new RegExp(schemaDefinition['properties']['fragmentName']['pattern']);
|
|
446
|
-
if (namePattern.test(customColumn['fragmentName']) === false) {
|
|
447
|
-
continue;
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
const { path, viewTemplateType } = controls_1.getCustomColumnPath(transferParameters.v2Page, entitySet, customColumn.tabKey || sectionKey, customColumn['extensionType']);
|
|
451
|
-
if (!cluster[path]) {
|
|
452
|
-
cluster[path] = {
|
|
453
|
-
viewTemplateType: viewTemplateType,
|
|
454
|
-
columns: []
|
|
455
|
-
};
|
|
456
|
-
}
|
|
457
|
-
cluster[path].columns.push(customColumn);
|
|
458
|
-
}
|
|
476
|
+
if (customColumnsInConfig) {
|
|
477
|
+
//cluster existing custom columns by manifest path (or tab key)
|
|
478
|
+
const cluster = clusterConfigColumnsByPath(customColumnsInConfig, schemaDefinition, transferParameters.v2Page, entitySet, sectionKey);
|
|
459
479
|
//Export to fragment
|
|
460
480
|
for (const path in cluster) {
|
|
461
|
-
controls_1.
|
|
481
|
+
controls_1.exportCustomColumnsToFragment(transferParameters.exportResults, path, cluster[path].columns, transferParameters.appId, cluster[path].viewTemplateType, transferParameters.logger);
|
|
462
482
|
}
|
|
463
483
|
}
|
|
464
484
|
}
|
|
@@ -513,6 +533,9 @@ function getSectionId(breadcrumbs, title) {
|
|
|
513
533
|
return common_1.convertSectionId(sectionId, title);
|
|
514
534
|
}
|
|
515
535
|
function transferIndexTable(currentConfigObject, transferParameters, title, propertyDefinition, key, ids, breadcrumbs) {
|
|
536
|
+
if (!currentConfigObject || !(propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.additionalProperties)) {
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
516
539
|
Object.keys(currentConfigObject).forEach((newKey) => {
|
|
517
540
|
const nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject[newKey], propertyDefinition.additionalProperties, key, transferParameters.factory, transferParameters.pageType);
|
|
518
541
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
@@ -521,7 +544,7 @@ function transferIndexTable(currentConfigObject, transferParameters, title, prop
|
|
|
521
544
|
}
|
|
522
545
|
function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition) {
|
|
523
546
|
let objectPageSectionData;
|
|
524
|
-
const target =
|
|
547
|
+
const target = common_1.getTargetFromCustomColumnRef(propertyDefinition.$ref);
|
|
525
548
|
if (target) {
|
|
526
549
|
objectPageSectionData = {
|
|
527
550
|
target,
|
|
@@ -530,6 +553,15 @@ function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferP
|
|
|
530
553
|
}
|
|
531
554
|
transferColumnExtensions(transferParameters, configObject === null || configObject === void 0 ? void 0 : configObject.custom, nextDefinition.targetDefinition, objectPageSectionData);
|
|
532
555
|
}
|
|
556
|
+
function handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs) {
|
|
557
|
+
propertyDefinition['anyOf'].forEach((element) => {
|
|
558
|
+
const nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, element, key, transferParameters.factory, transferParameters.pageType);
|
|
559
|
+
if (nextDefinition) {
|
|
560
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
561
|
+
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
}
|
|
533
565
|
/**
|
|
534
566
|
* Function that traverses the content of the current object. It reads decorators and fills manifest entries and flex changes
|
|
535
567
|
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
@@ -541,51 +573,42 @@ function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferP
|
|
|
541
573
|
*/
|
|
542
574
|
function transferManifestEntriesAndFlexChange(transferParameters, configObject, parentIds, breadcrumbs, schemaDefinition, title) {
|
|
543
575
|
let currentConfigObject;
|
|
544
|
-
if (schemaDefinition
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
576
|
+
if (!(schemaDefinition === null || schemaDefinition === void 0 ? void 0 : schemaDefinition['properties'])) {
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
for (const key in schemaDefinition['properties']) {
|
|
580
|
+
currentConfigObject = configObject && configObject[key];
|
|
581
|
+
const childId = configObject && common_1.getChildId(configObject, key);
|
|
582
|
+
const ids = childId ? [...parentIds, childId] : parentIds;
|
|
583
|
+
const syncRule = common_1.getReflectMetadata(configObject, key);
|
|
584
|
+
const propertyDefinition = (transferParameters.propertyDefinition = schemaDefinition['properties'][key]);
|
|
585
|
+
const nextDefinition = (transferParameters.nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, propertyDefinition, key, transferParameters.factory, transferParameters.pageType));
|
|
586
|
+
//Evaluate sync rule for the export
|
|
587
|
+
evaluateExportRule(transferParameters, syncRule, configObject, [...breadcrumbs], ids, title, key);
|
|
588
|
+
//index table
|
|
589
|
+
transferIndexTable(currentConfigObject, transferParameters, title, propertyDefinition, key, ids, breadcrumbs);
|
|
590
|
+
if (currentConfigObject === undefined || typeof currentConfigObject === 'object') {
|
|
591
|
+
if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.type) === 'array' &&
|
|
592
|
+
(breadcrumbs[0] === 'sections' || breadcrumbs[0] === 'subsections') &&
|
|
593
|
+
key === 'custom') {
|
|
594
|
+
transferManifestExtensions(transferParameters, configObject[key], transferParameters.pageKeys[transferParameters.pageKeys.length - 1], ids, [...breadcrumbs, key], propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.items);
|
|
554
595
|
}
|
|
555
|
-
if (
|
|
556
|
-
|
|
557
|
-
|
|
596
|
+
else if (nextDefinition && key === 'custom') {
|
|
597
|
+
transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition);
|
|
598
|
+
continue;
|
|
558
599
|
}
|
|
559
|
-
if (
|
|
560
|
-
|
|
561
|
-
(breadcrumbs[0] === 'sections' || breadcrumbs[0] === 'subsections') &&
|
|
562
|
-
key === 'custom') {
|
|
563
|
-
transferManifestExtensions(transferParameters, configObject[key], transferParameters.pageKeys[transferParameters.pageKeys.length - 1], ids, [...breadcrumbs, key], propertyDefinition.items);
|
|
564
|
-
continue;
|
|
565
|
-
}
|
|
566
|
-
if (nextDefinition && key === 'custom') {
|
|
567
|
-
transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition);
|
|
568
|
-
continue;
|
|
569
|
-
}
|
|
570
|
-
else if (nextDefinition) {
|
|
571
|
-
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
|
|
572
|
-
}
|
|
573
|
-
else if (propertyDefinition['anyOf']) {
|
|
574
|
-
propertyDefinition['anyOf'].forEach((element) => {
|
|
575
|
-
nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, element, key, transferParameters.factory, transferParameters.pageType);
|
|
576
|
-
if (nextDefinition) {
|
|
577
|
-
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
|
|
578
|
-
}
|
|
579
|
-
});
|
|
580
|
-
}
|
|
600
|
+
else if (nextDefinition) {
|
|
601
|
+
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
|
|
581
602
|
}
|
|
582
|
-
else if (propertyDefinition
|
|
583
|
-
propertyDefinition
|
|
584
|
-
//empty config ==> delete all given extensions
|
|
585
|
-
transferColumnExtensions(transferParameters, [], transferParameters.appSchema['definitions']['TableCustomColumn']);
|
|
586
|
-
continue;
|
|
603
|
+
else if (propertyDefinition['anyOf']) {
|
|
604
|
+
handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs);
|
|
587
605
|
}
|
|
588
606
|
}
|
|
607
|
+
else if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.$ref) === common_1.DEFINITION_LINK_PREFIX + 'TableCustomColumns') {
|
|
608
|
+
//empty config ==> delete all given extensions
|
|
609
|
+
transferColumnExtensions(transferParameters, [], transferParameters.appSchema['definitions']['TableCustomColumn']);
|
|
610
|
+
continue;
|
|
611
|
+
}
|
|
589
612
|
}
|
|
590
613
|
}
|
|
591
614
|
exports.transferManifestEntriesAndFlexChange = transferManifestEntriesAndFlexChange;
|