@sap/ux-specification 1.142.3 → 1.142.5
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 +71 -0
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +334 -327
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/ListReportNewConfig.json +202 -7
- package/dist/schemas/v4/ApplicationV4.json +14 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +161 -57
- package/dist/schemas/v4/ObjectPageConfig.json +112 -728
- package/dist/specification/package.json +10 -10
- package/dist/specification/scripts/generate-validity-report.js +1 -1
- package/dist/specification/scripts/generate-validity-report.js.map +1 -1
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +48 -1
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +36 -10
- 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 +39 -3
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/ftfs/ftfs.d.ts +8 -0
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
- package/dist/specification/src/ftfs/ftfs.js +1 -0
- package/dist/specification/src/ftfs/ftfs.js.map +1 -1
- package/dist/specification/src/ftfs/index.d.ts +1 -1
- package/dist/specification/src/ftfs/index.d.ts.map +1 -1
- package/dist/specification/src/ftfs/index.js +2 -1
- package/dist/specification/src/ftfs/index.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.js +3 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -1
- package/dist/specification/src/i18n/i18n.d.ts.map +1 -1
- package/dist/specification/src/i18n/i18n.js +2 -1
- package/dist/specification/src/i18n/i18n.js.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +8 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +10 -7
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/Decorator.d.ts +91 -0
- package/dist/specification/src/sync/common/decoration/Decorator.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/Decorator.js +139 -0
- package/dist/specification/src/sync/common/decoration/Decorator.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/condition-evaluator.d.ts +95 -0
- package/dist/specification/src/sync/common/decoration/condition-evaluator.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/condition-evaluator.js +210 -0
- package/dist/specification/src/sync/common/decoration/condition-evaluator.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +58 -22
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +23 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +6 -48
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +26 -106
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.d.ts +4 -0
- package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.js +4 -0
- package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/interfaces.d.ts +38 -0
- package/dist/specification/src/sync/common/decoration/interfaces.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/interfaces.js +3 -0
- package/dist/specification/src/sync/common/decoration/interfaces.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts +18 -0
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Enums.js +50 -0
- package/dist/specification/src/sync/common/decoration/steps/Enums.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Hide.d.ts +18 -0
- package/dist/specification/src/sync/common/decoration/steps/Hide.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Hide.js +46 -0
- package/dist/specification/src/sync/common/decoration/steps/Hide.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Message.d.ts +26 -0
- package/dist/specification/src/sync/common/decoration/steps/Message.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Message.js +77 -0
- package/dist/specification/src/sync/common/decoration/steps/Message.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Readonly.d.ts +18 -0
- package/dist/specification/src/sync/common/decoration/steps/Readonly.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Readonly.js +43 -0
- package/dist/specification/src/sync/common/decoration/steps/Readonly.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Validity.d.ts +18 -0
- package/dist/specification/src/sync/common/decoration/steps/Validity.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/Validity.js +68 -0
- package/dist/specification/src/sync/common/decoration/steps/Validity.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.d.ts +19 -0
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.js +48 -0
- package/dist/specification/src/sync/common/decoration/steps/enum-utils.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/index.d.ts +6 -0
- package/dist/specification/src/sync/common/decoration/steps/index.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/steps/index.js +14 -0
- package/dist/specification/src/sync/common/decoration/steps/index.js.map +1 -0
- package/dist/specification/src/sync/common/i18n.json +28 -0
- package/dist/specification/src/sync/common/importProject.d.ts.map +1 -1
- package/dist/specification/src/sync/common/importProject.js +2 -0
- package/dist/specification/src/sync/common/importProject.js.map +1 -1
- package/dist/specification/src/sync/common/rules.d.ts +25 -0
- package/dist/specification/src/sync/common/rules.d.ts.map +1 -1
- package/dist/specification/src/sync/common/rules.js +27 -2
- package/dist/specification/src/sync/common/rules.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Fragment.d.ts +4 -5
- package/dist/specification/src/sync/v2/export/controls/Fragment.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Fragment.js +29 -20
- package/dist/specification/src/sync/v2/export/controls/Fragment.js.map +1 -1
- package/dist/specification/src/sync/v2/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/export.js +3 -2
- package/dist/specification/src/sync/v2/export/export.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.js +48 -19
- package/dist/specification/src/sync/v2/export/exportPage.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts +2 -0
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +17 -6
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
- package/dist/specification/src/sync/v2/export/view-controller-generator.d.ts +54 -6
- package/dist/specification/src/sync/v2/export/view-controller-generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/view-controller-generator.js +106 -12
- package/dist/specification/src/sync/v2/export/view-controller-generator.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +7 -7
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +56 -2
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +2 -2
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js +4 -4
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.d.ts +12 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.js +167 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiEdit.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js +3 -3
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +59 -2
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +582 -7
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -1
- 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/v2/genericSchemaHandling/pages/pageAccess.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js +29 -6
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js.map +1 -1
- package/dist/specification/src/sync/v2/types.d.ts +2 -0
- package/dist/specification/src/sync/v2/types.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/types.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +25 -0
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +28 -4
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +12 -0
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +28 -3
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts +1 -2
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js +1 -2
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts +3 -5
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.js +2 -7
- package/dist/specification/src/sync/v4/export/controls/Header.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts +9 -3
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js +10 -6
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +1 -2
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js +1 -2
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts +11 -51
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +95 -246
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +6 -21
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +46 -37
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +1 -2
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +3 -4
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/factory.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/factory.js +2 -4
- package/dist/specification/src/sync/v4/export/factory.js.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts +1 -0
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js +212 -46
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/app.d.ts +11 -0
- package/dist/specification/src/sync/v4/generate/app.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/app.js +31 -0
- package/dist/specification/src/sync/v4/generate/app.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +13 -0
- 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 +93 -13
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js +4 -3
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +29 -27
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +12 -3
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +32 -13
- 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 +103 -78
- 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 +13 -6
- 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 +107 -108
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts +1 -2
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +162 -118
- 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 +20 -0
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.js +11 -50
- package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +2 -4
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js +2 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +2 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +3 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +1 -302
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +0 -753
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +2 -4
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/StableIdHelper.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/StableIdHelper.js +10 -4
- package/dist/specification/src/sync/v4/utils/StableIdHelper.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.d.ts +19 -0
- package/dist/specification/src/sync/v4/utils/macros.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.js +34 -0
- package/dist/specification/src/sync/v4/utils/macros.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +23 -3
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +239 -42
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/specification/test/test-utils/utils.d.ts +1 -0
- package/dist/specification/test/test-utils/utils.d.ts.map +1 -1
- package/dist/specification/test/test-utils/utils.js +11 -0
- package/dist/specification/test/test-utils/utils.js.map +1 -1
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +2 -2
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -1
- package/dist/specification/test/unit/decorators/validity-test-utils.js +6 -6
- package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -1
- package/dist/templates/AnalyticalTableColumnsExtension.xml +3 -3
- package/dist/templates/GridTableColumnsExtension.xml +3 -3
- package/dist/templates/ResponsiveTableColumnsExtension.xml +2 -2
- package/dist/templates/TreeTableColumnsExtension.xml +4 -4
- package/dist/templates/fragment.xml +3 -3
- package/dist/templates/view.xml +3 -3
- package/dist/types/src/apiTypes.d.ts +15 -5
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js +1 -0
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +11 -6
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +12 -7
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v4/application.d.ts +15 -0
- package/dist/types/src/v4/application.d.ts.map +1 -1
- package/dist/types/src/v4/application.js +10 -0
- package/dist/types/src/v4/application.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +86 -252
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.js.map +1 -1
- package/package.json +11 -11
|
@@ -3,17 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validity = exports.getDescriptionSrcURL = exports.descriptionSrcURL = exports.descriptionUrlMetadataKey = exports.getPageLayoutInformation = exports.getChildId = exports.childId = exports.pageLayoutInformation = exports.syncRule = exports.metadataKeys = void 0;
|
|
4
4
|
exports.getReflectMetadata = getReflectMetadata;
|
|
5
5
|
exports.getReflectTypeMetadata = getReflectTypeMetadata;
|
|
6
|
-
exports.getValidityMetadata = getValidityMetadata;
|
|
7
6
|
exports.isViewNode = isViewNode;
|
|
8
7
|
exports.description = description;
|
|
9
8
|
exports.hide = hide;
|
|
10
|
-
exports.getHideMetadata = getHideMetadata;
|
|
11
9
|
exports.message = message;
|
|
12
|
-
exports.getMessageMetadata = getMessageMetadata;
|
|
13
10
|
exports.readonly = readonly;
|
|
14
|
-
exports.getReadonlyMetadata = getReadonlyMetadata;
|
|
15
11
|
exports.enums = enums;
|
|
16
|
-
exports.getEnumsMetadata = getEnumsMetadata;
|
|
17
12
|
exports.getTextForDeprecated = getTextForDeprecated;
|
|
18
13
|
require("reflect-metadata");
|
|
19
14
|
const decorator_paths_1 = require("./decorator-paths");
|
|
@@ -34,6 +29,19 @@ exports.metadataKeys = {
|
|
|
34
29
|
readonly: Symbol('generate:readonly'),
|
|
35
30
|
enums: Symbol('generate:enums')
|
|
36
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Appends a decorator condition entry to the metadata array stored on a property.
|
|
34
|
+
*
|
|
35
|
+
* @param key - The metadata key identifying the decorator type (hide, message, readonly, enums)
|
|
36
|
+
* @param instance - The class instance that owns the decorated property
|
|
37
|
+
* @param propertyKey - The name of the decorated property
|
|
38
|
+
* @param entry - The parsed condition to append
|
|
39
|
+
*/
|
|
40
|
+
function appendCondition(key, instance, propertyKey, entry) {
|
|
41
|
+
const existing = Reflect.getMetadata(key, instance, propertyKey) || [];
|
|
42
|
+
existing.push(entry);
|
|
43
|
+
Reflect.defineMetadata(key, existing, instance, propertyKey);
|
|
44
|
+
}
|
|
37
45
|
// ============================================
|
|
38
46
|
// SYNC RULE DECORATORS
|
|
39
47
|
// ============================================
|
|
@@ -107,20 +115,6 @@ const validity = (validity) => {
|
|
|
107
115
|
return Reflect.metadata(exports.metadataKeys.validity, validity);
|
|
108
116
|
};
|
|
109
117
|
exports.validity = validity;
|
|
110
|
-
/**
|
|
111
|
-
* Retrieves the validity metadata associated with a specific property of a target object.
|
|
112
|
-
*
|
|
113
|
-
* @param target - The object containing the property.
|
|
114
|
-
* @param propertyName - The name of the property whose validity metadata is to be retrieved.
|
|
115
|
-
* @returns The validity information of the property, or undefined if no metadata is found.
|
|
116
|
-
*/
|
|
117
|
-
function getValidityMetadata(target, propertyName) {
|
|
118
|
-
let validityInfo;
|
|
119
|
-
if (target) {
|
|
120
|
-
validityInfo = Reflect.getMetadata(exports.metadataKeys.validity, target, propertyName);
|
|
121
|
-
}
|
|
122
|
-
return validityInfo;
|
|
123
|
-
}
|
|
124
118
|
// ============================================
|
|
125
119
|
// VIEW NODE DECORATOR
|
|
126
120
|
// ============================================
|
|
@@ -302,52 +296,35 @@ function parseCondition(condition) {
|
|
|
302
296
|
// ============================================
|
|
303
297
|
/**
|
|
304
298
|
* Decorator to conditionally hide a property based on conditions.
|
|
305
|
-
* The property will be hidden
|
|
299
|
+
* The property will be hidden when the condition(s) ARE met.
|
|
306
300
|
*
|
|
307
301
|
* @example
|
|
308
302
|
* ```typescript
|
|
309
303
|
* import { page, custom, when, and, or } from './decorator-paths';
|
|
310
304
|
*
|
|
311
|
-
* // Truthy check - hide
|
|
305
|
+
* // Truthy check - hide when page.isALP is truthy
|
|
312
306
|
* @hide(page.isALP)
|
|
313
307
|
*
|
|
314
|
-
* // Equality check - hide
|
|
308
|
+
* // Equality check - hide when page.type === 'GridTable'
|
|
315
309
|
* @hide(when(page.type, 'GridTable'))
|
|
316
310
|
*
|
|
317
|
-
* // Custom function - hide
|
|
311
|
+
* // Custom function - hide when function returns true (type !== 'GridTable')
|
|
318
312
|
* @hide(when(page.type, (type) => type !== 'GridTable'))
|
|
319
313
|
*
|
|
320
314
|
* // Always hide
|
|
321
315
|
* @hide(true)
|
|
322
316
|
*
|
|
323
|
-
* // AND logic - hide
|
|
317
|
+
* // AND logic - hide when isALP is truthy AND type === 'GridTable'
|
|
324
318
|
* @hide(and(page.isALP, when(page.type, 'GridTable')))
|
|
325
319
|
*
|
|
326
|
-
* // OR logic - hide
|
|
320
|
+
* // OR logic - hide when actionType === 'Bound' OR actionType === 'Custom'
|
|
327
321
|
* @hide(or(when(page.actionType, 'Bound'), when(page.actionType, 'Custom')))
|
|
328
322
|
* ```
|
|
329
323
|
* @param condition - The condition to evaluate
|
|
330
324
|
* @returns PropertyDecorator
|
|
331
325
|
*/
|
|
332
326
|
function hide(condition) {
|
|
333
|
-
return (
|
|
334
|
-
const hideInfo = parseCondition(condition);
|
|
335
|
-
Reflect.defineMetadata(exports.metadataKeys.hide, hideInfo, target, propertyKey);
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Retrieves the hide metadata associated with a specific property of a target object.
|
|
340
|
-
*
|
|
341
|
-
* @param target - The object containing the property.
|
|
342
|
-
* @param propertyName - The name of the property whose hide metadata is to be retrieved.
|
|
343
|
-
* @returns The hide information of the property, or undefined if no metadata is found.
|
|
344
|
-
*/
|
|
345
|
-
function getHideMetadata(target, propertyName) {
|
|
346
|
-
let hideInfo;
|
|
347
|
-
if (target) {
|
|
348
|
-
hideInfo = Reflect.getMetadata(exports.metadataKeys.hide, target, propertyName);
|
|
349
|
-
}
|
|
350
|
-
return hideInfo;
|
|
327
|
+
return (instance, propertyKey) => appendCondition(exports.metadataKeys.hide, instance, propertyKey, parseCondition(condition));
|
|
351
328
|
}
|
|
352
329
|
// ============================================
|
|
353
330
|
// MESSAGE DECORATOR
|
|
@@ -382,29 +359,12 @@ function getHideMetadata(target, propertyName) {
|
|
|
382
359
|
* ```
|
|
383
360
|
*/
|
|
384
361
|
function message(condition, messageConfig) {
|
|
385
|
-
return (
|
|
386
|
-
const
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
const existing = Reflect.getMetadata(exports.metadataKeys.message, target, propertyKey) || [];
|
|
390
|
-
existing.push(messageInfo);
|
|
391
|
-
Reflect.defineMetadata(exports.metadataKeys.message, existing, target, propertyKey);
|
|
362
|
+
return (instance, propertyKey) => {
|
|
363
|
+
const info = parseCondition(condition);
|
|
364
|
+
info.messageConfig = messageConfig;
|
|
365
|
+
appendCondition(exports.metadataKeys.message, instance, propertyKey, info);
|
|
392
366
|
};
|
|
393
367
|
}
|
|
394
|
-
/**
|
|
395
|
-
* Retrieves the message metadata associated with a specific property of a target object.
|
|
396
|
-
* Returns an array of DecoratorMetadata since multiple @message decorators can be applied.
|
|
397
|
-
*
|
|
398
|
-
* @param target - The object containing the property.
|
|
399
|
-
* @param propertyName - The name of the property whose message metadata is to be retrieved.
|
|
400
|
-
* @returns An array of message metadata, or undefined if no metadata is found.
|
|
401
|
-
*/
|
|
402
|
-
function getMessageMetadata(target, propertyName) {
|
|
403
|
-
if (target) {
|
|
404
|
-
return Reflect.getMetadata(exports.metadataKeys.message, target, propertyName);
|
|
405
|
-
}
|
|
406
|
-
return undefined;
|
|
407
|
-
}
|
|
408
368
|
// ============================================
|
|
409
369
|
// READONLY DECORATOR
|
|
410
370
|
// ============================================
|
|
@@ -429,24 +389,7 @@ function getMessageMetadata(target, propertyName) {
|
|
|
429
389
|
* @returns PropertyDecorator
|
|
430
390
|
*/
|
|
431
391
|
function readonly(condition) {
|
|
432
|
-
return (
|
|
433
|
-
const readonlyInfo = parseCondition(condition);
|
|
434
|
-
Reflect.defineMetadata(exports.metadataKeys.readonly, readonlyInfo, target, propertyKey);
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
/**
|
|
438
|
-
* Retrieves the readonly metadata associated with a specific property of a target object.
|
|
439
|
-
*
|
|
440
|
-
* @param target - The object containing the property.
|
|
441
|
-
* @param propertyName - The name of the property whose readonly metadata is to be retrieved.
|
|
442
|
-
* @returns The readonly information of the property, or undefined if no metadata is found.
|
|
443
|
-
*/
|
|
444
|
-
function getReadonlyMetadata(target, propertyName) {
|
|
445
|
-
let readonlyInfo;
|
|
446
|
-
if (target) {
|
|
447
|
-
readonlyInfo = Reflect.getMetadata(exports.metadataKeys.readonly, target, propertyName);
|
|
448
|
-
}
|
|
449
|
-
return readonlyInfo;
|
|
392
|
+
return (instance, propertyKey) => appendCondition(exports.metadataKeys.readonly, instance, propertyKey, parseCondition(condition));
|
|
450
393
|
}
|
|
451
394
|
/**
|
|
452
395
|
* Decorator to conditionally restrict enum values based on conditions.
|
|
@@ -471,30 +414,7 @@ function getReadonlyMetadata(target, propertyName) {
|
|
|
471
414
|
* @returns PropertyDecorator
|
|
472
415
|
*/
|
|
473
416
|
function enums(condition, allowedValues) {
|
|
474
|
-
return (
|
|
475
|
-
const enumsInfo = {
|
|
476
|
-
...parseCondition(condition),
|
|
477
|
-
allowedValues
|
|
478
|
-
};
|
|
479
|
-
// Support multiple @enums decorators - store as array, first match wins
|
|
480
|
-
const existing = Reflect.getMetadata(exports.metadataKeys.enums, target, propertyKey) || [];
|
|
481
|
-
existing.push(enumsInfo);
|
|
482
|
-
Reflect.defineMetadata(exports.metadataKeys.enums, existing, target, propertyKey);
|
|
483
|
-
};
|
|
484
|
-
}
|
|
485
|
-
/**
|
|
486
|
-
* Retrieves the enums metadata associated with a specific property of a target object.
|
|
487
|
-
* Returns an array of EnumsDecoratorMetadata since multiple @enums decorators can be applied.
|
|
488
|
-
*
|
|
489
|
-
* @param target - The object containing the property.
|
|
490
|
-
* @param propertyName - The name of the property whose enums metadata is to be retrieved.
|
|
491
|
-
* @returns An array of enums metadata, or undefined if no metadata is found.
|
|
492
|
-
*/
|
|
493
|
-
function getEnumsMetadata(target, propertyName) {
|
|
494
|
-
if (target) {
|
|
495
|
-
return Reflect.getMetadata(exports.metadataKeys.enums, target, propertyName);
|
|
496
|
-
}
|
|
497
|
-
return undefined;
|
|
417
|
+
return (instance, propertyKey) => appendCondition(exports.metadataKeys.enums, instance, propertyKey, { ...parseCondition(condition), allowedValues });
|
|
498
418
|
}
|
|
499
419
|
// ============================================
|
|
500
420
|
// DEPRECATION HELPER
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/decorators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,8 @@ export * from './control';
|
|
|
2
2
|
export * from './decorators';
|
|
3
3
|
export * from './flex';
|
|
4
4
|
export * from './decorator-paths';
|
|
5
|
+
export * from './interfaces';
|
|
6
|
+
export * from './condition-evaluator';
|
|
7
|
+
export * from './Decorator';
|
|
8
|
+
export * from './steps';
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
@@ -18,4 +18,8 @@ __exportStar(require("./control"), exports);
|
|
|
18
18
|
__exportStar(require("./decorators"), exports);
|
|
19
19
|
__exportStar(require("./flex"), exports);
|
|
20
20
|
__exportStar(require("./decorator-paths"), exports);
|
|
21
|
+
__exportStar(require("./interfaces"), exports);
|
|
22
|
+
__exportStar(require("./condition-evaluator"), exports);
|
|
23
|
+
__exportStar(require("./Decorator"), exports);
|
|
24
|
+
__exportStar(require("./steps"), exports);
|
|
21
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,yCAAuB;AACvB,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,yCAAuB;AACvB,oDAAkC;AAClC,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,0CAAwB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Definition } from 'typescript-json-schema';
|
|
2
|
+
import type { ExtensionLogger } from '@sap/ux-specification-types';
|
|
3
|
+
import type { App, AppSchema, Page } from '../../v4/sync-rules';
|
|
4
|
+
/**
|
|
5
|
+
* Combined context passed to Decorator and each DecoratorStep.
|
|
6
|
+
* Uses interfaces compatible with App and Page classes from sync-rules.
|
|
7
|
+
*/
|
|
8
|
+
export interface DecoratorContext {
|
|
9
|
+
/** App-level context (has config, getMinUI5Version) */
|
|
10
|
+
app?: App;
|
|
11
|
+
/** Page-level context (has config, target) */
|
|
12
|
+
page?: Page;
|
|
13
|
+
/** Custom context (e.g., table state, section state) */
|
|
14
|
+
custom?: Record<string, unknown>;
|
|
15
|
+
/** Schema context for definition lookup */
|
|
16
|
+
schema: AppSchema;
|
|
17
|
+
/** Logger for debugging and error reporting */
|
|
18
|
+
logger?: ExtensionLogger;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Interface for decorator processing steps.
|
|
22
|
+
* Each step handles a specific type of decorator metadata.
|
|
23
|
+
*
|
|
24
|
+
* Steps are executed in order: enums -> message -> hide
|
|
25
|
+
*/
|
|
26
|
+
export interface DecoratorStep {
|
|
27
|
+
/** Unique name for the step (used for disabling via options) */
|
|
28
|
+
readonly name: string;
|
|
29
|
+
/**
|
|
30
|
+
* Initialize this step's decorator logic for the schema definition.
|
|
31
|
+
*
|
|
32
|
+
* @param target - The class prototype containing decorator metadata
|
|
33
|
+
* @param definition - The schema definition to modify
|
|
34
|
+
* @param context - context for condition evaluation
|
|
35
|
+
*/
|
|
36
|
+
init(target: object, definition: Definition, context: DecoratorContext): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uDAAuD;IACvD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,8CAA8C;IAC9C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,2CAA2C;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Definition } from 'typescript-json-schema';
|
|
2
|
+
import type { DecoratorStep, DecoratorContext } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Enums step - filters enum values based on conditions.
|
|
5
|
+
* If multiple @enums decorators exist on the same property, the first matching condition wins.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Enums implements DecoratorStep {
|
|
8
|
+
readonly name = "enums";
|
|
9
|
+
/**
|
|
10
|
+
* Applies enum filtering to all properties in the definition.
|
|
11
|
+
*
|
|
12
|
+
* @param target - The class prototype containing decorator metadata
|
|
13
|
+
* @param definition - The schema definition to modify
|
|
14
|
+
* @param context - Runtime context for condition evaluation
|
|
15
|
+
*/
|
|
16
|
+
init(target: object, definition: Definition, context: DecoratorContext): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Enums.d.ts","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Enums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKrE;;;GAGG;AACH,qBAAa,KAAM,YAAW,aAAa;IACvC,QAAQ,CAAC,IAAI,WAAW;IAExB;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;CA+BhF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Enums = void 0;
|
|
4
|
+
const decorators_1 = require("../decorators");
|
|
5
|
+
const condition_evaluator_1 = require("../condition-evaluator");
|
|
6
|
+
const enum_utils_1 = require("./enum-utils");
|
|
7
|
+
/**
|
|
8
|
+
* Enums step - filters enum values based on conditions.
|
|
9
|
+
* If multiple @enums decorators exist on the same property, the first matching condition wins.
|
|
10
|
+
*/
|
|
11
|
+
class Enums {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.name = 'enums';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Applies enum filtering to all properties in the definition.
|
|
17
|
+
*
|
|
18
|
+
* @param target - The class prototype containing decorator metadata
|
|
19
|
+
* @param definition - The schema definition to modify
|
|
20
|
+
* @param context - Runtime context for condition evaluation
|
|
21
|
+
*/
|
|
22
|
+
init(target, definition, context) {
|
|
23
|
+
if (!definition?.properties || !target) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const evaluator = new condition_evaluator_1.ConditionEvaluator(context);
|
|
27
|
+
for (const propertyName in definition.properties) {
|
|
28
|
+
const property = definition.properties[propertyName];
|
|
29
|
+
const enumsMetadataList = Reflect.getMetadata(decorators_1.metadataKeys.enums, target, propertyName);
|
|
30
|
+
if (!enumsMetadataList?.length) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
// Find first matching condition (first match wins)
|
|
34
|
+
for (const enumsMetadata of enumsMetadataList) {
|
|
35
|
+
const { passed } = evaluator.evaluate(enumsMetadata);
|
|
36
|
+
if (passed) {
|
|
37
|
+
const currentEnumValues = (0, enum_utils_1.resolveEnumFromProperty)(property, context);
|
|
38
|
+
if (currentEnumValues) {
|
|
39
|
+
// Filter to only allowed values that exist in original enum
|
|
40
|
+
const filteredValues = enumsMetadata.allowedValues.filter((v) => currentEnumValues.includes(v));
|
|
41
|
+
(0, enum_utils_1.applyFilteredEnumToProperty)(property, filteredValues, context);
|
|
42
|
+
}
|
|
43
|
+
break; // First match wins, stop processing
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.Enums = Enums;
|
|
50
|
+
//# sourceMappingURL=Enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Enums.js","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Enums.ts"],"names":[],"mappings":";;;AAEA,8CAA6C;AAC7C,gEAA4D;AAC5D,6CAAoF;AAEpF;;;GAGG;AACH,MAAa,KAAK;IAAlB;QACa,SAAI,GAAG,OAAO,CAAC;IAwC5B,CAAC;IAtCG;;;;;;OAMG;IACH,IAAI,CAAC,MAAc,EAAE,UAAsB,EAAE,OAAyB;QAClE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;QAElD,KAAK,MAAM,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAe,CAAC;YACnE,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YAExF,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;gBAC7B,SAAS;YACb,CAAC;YAED,mDAAmD;YACnD,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;gBAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAErD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,iBAAiB,GAAG,IAAA,oCAAuB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrE,IAAI,iBAAiB,EAAE,CAAC;wBACpB,4DAA4D;wBAC5D,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChG,IAAA,wCAA2B,EAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBACnE,CAAC;oBACD,MAAM,CAAC,oCAAoC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAzCD,sBAyCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Definition } from 'typescript-json-schema';
|
|
2
|
+
import type { DecoratorStep, DecoratorContext } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Hide step - hides properties when their condition evaluates to true.
|
|
5
|
+
* Only hides if the message step did not add any messages to the property.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Hide implements DecoratorStep {
|
|
8
|
+
readonly name = "hide";
|
|
9
|
+
/**
|
|
10
|
+
* Hides properties whose hide condition evaluates to true and have no messages.
|
|
11
|
+
*
|
|
12
|
+
* @param target - The class prototype containing decorator metadata
|
|
13
|
+
* @param definition - The schema definition to modify
|
|
14
|
+
* @param context - Runtime context for condition evaluation
|
|
15
|
+
*/
|
|
16
|
+
init(target: object, definition: Definition, context: DecoratorContext): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Hide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hide.d.ts","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Hide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrE;;;GAGG;AACH,qBAAa,IAAK,YAAW,aAAa;IACtC,QAAQ,CAAC,IAAI,UAAU;IAEvB;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;CA0BhF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Hide = void 0;
|
|
4
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
5
|
+
const decorators_1 = require("../decorators");
|
|
6
|
+
const condition_evaluator_1 = require("../condition-evaluator");
|
|
7
|
+
/**
|
|
8
|
+
* Hide step - hides properties when their condition evaluates to true.
|
|
9
|
+
* Only hides if the message step did not add any messages to the property.
|
|
10
|
+
*/
|
|
11
|
+
class Hide {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.name = 'hide';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Hides properties whose hide condition evaluates to true and have no messages.
|
|
17
|
+
*
|
|
18
|
+
* @param target - The class prototype containing decorator metadata
|
|
19
|
+
* @param definition - The schema definition to modify
|
|
20
|
+
* @param context - Runtime context for condition evaluation
|
|
21
|
+
*/
|
|
22
|
+
init(target, definition, context) {
|
|
23
|
+
if (!definition?.properties || !target) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const evaluator = new condition_evaluator_1.ConditionEvaluator(context);
|
|
27
|
+
for (const propertyName in definition.properties) {
|
|
28
|
+
const property = definition.properties[propertyName];
|
|
29
|
+
const hideConditions = Reflect.getMetadata(decorators_1.metadataKeys.hide, target, propertyName);
|
|
30
|
+
if (hideConditions) {
|
|
31
|
+
// Hide when ANY condition IS met (OR semantics across multiple @hide decorators)
|
|
32
|
+
// But only if no messages were added by the message step
|
|
33
|
+
const hasMessages = Array.isArray(property[ux_specification_types_1.SchemaTag.messages]) && property[ux_specification_types_1.SchemaTag.messages].length > 0;
|
|
34
|
+
for (const condition of hideConditions) {
|
|
35
|
+
const { passed } = evaluator.evaluate(condition);
|
|
36
|
+
if (passed && !hasMessages) {
|
|
37
|
+
property[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Hide = Hide;
|
|
46
|
+
//# sourceMappingURL=Hide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hide.js","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Hide.ts"],"names":[],"mappings":";;;AACA,wEAAwD;AAExD,8CAA6C;AAC7C,gEAA4D;AAE5D;;;GAGG;AACH,MAAa,IAAI;IAAjB;QACa,SAAI,GAAG,MAAM,CAAC;IAmC3B,CAAC;IAjCG;;;;;;OAMG;IACH,IAAI,CAAC,MAAc,EAAE,UAAsB,EAAE,OAAyB;QAClE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;QAElD,KAAK,MAAM,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAe,CAAC;YACnE,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YAEpF,IAAI,cAAc,EAAE,CAAC;gBACjB,iFAAiF;gBACjF,yDAAyD;gBACzD,MAAM,WAAW,GACb,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kCAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,kCAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3F,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;oBACrC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACjD,IAAI,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;wBACzB,QAAQ,CAAC,kCAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;wBAClC,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AApCD,oBAoCC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Definition } from 'typescript-json-schema';
|
|
2
|
+
import type { DecoratorStep, DecoratorContext } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Message step - adds messages to properties when conditions are met.
|
|
5
|
+
* Multiple @message decorators can be applied to the same property.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Message implements DecoratorStep {
|
|
8
|
+
readonly name = "message";
|
|
9
|
+
/**
|
|
10
|
+
* Adds messages to properties whose conditions are met.
|
|
11
|
+
*
|
|
12
|
+
* @param target - The class prototype containing decorator metadata
|
|
13
|
+
* @param definition - The schema definition to modify
|
|
14
|
+
* @param context - Runtime context for condition evaluation
|
|
15
|
+
*/
|
|
16
|
+
init(target: object, definition: Definition, context: DecoratorContext): void;
|
|
17
|
+
/**
|
|
18
|
+
* Adds a translated message to the schema property if the metadata contains a MessageConfig.
|
|
19
|
+
*
|
|
20
|
+
* @param metadata - Decorator metadata containing the message config
|
|
21
|
+
* @param definition - The schema property definition to add the message to
|
|
22
|
+
* @param evaluator - Condition evaluator used to resolve PathNode params
|
|
23
|
+
*/
|
|
24
|
+
private addConditionalMessage;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAwBrE;;;GAGG;AACH,qBAAa,OAAQ,YAAW,aAAa;IACzC,QAAQ,CAAC,IAAI,aAAa;IAE1B;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAsB7E;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;CAahC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Message = void 0;
|
|
7
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
8
|
+
const decorators_1 = require("../decorators");
|
|
9
|
+
const decorator_paths_1 = require("../decorator-paths");
|
|
10
|
+
const condition_evaluator_1 = require("../condition-evaluator");
|
|
11
|
+
const i18next_1 = __importDefault(require("i18next"));
|
|
12
|
+
/**
|
|
13
|
+
* Adds a message to a schema element.
|
|
14
|
+
*
|
|
15
|
+
* @param element - The schema element to add the message to
|
|
16
|
+
* @param root0 - Message parameters object
|
|
17
|
+
* @param root0.text - The message text
|
|
18
|
+
* @param root0.deletable - Whether the message is deletable (default: false)
|
|
19
|
+
*/
|
|
20
|
+
function addMessageToSchema(element, { text, deletable = false }) {
|
|
21
|
+
if (!element[ux_specification_types_1.SchemaTag.messages]) {
|
|
22
|
+
element[ux_specification_types_1.SchemaTag.messages] = [];
|
|
23
|
+
}
|
|
24
|
+
element[ux_specification_types_1.SchemaTag.messages].push({ text, deletable });
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Message step - adds messages to properties when conditions are met.
|
|
28
|
+
* Multiple @message decorators can be applied to the same property.
|
|
29
|
+
*/
|
|
30
|
+
class Message {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.name = 'message';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Adds messages to properties whose conditions are met.
|
|
36
|
+
*
|
|
37
|
+
* @param target - The class prototype containing decorator metadata
|
|
38
|
+
* @param definition - The schema definition to modify
|
|
39
|
+
* @param context - Runtime context for condition evaluation
|
|
40
|
+
*/
|
|
41
|
+
init(target, definition, context) {
|
|
42
|
+
if (!definition?.properties || !target) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const evaluator = new condition_evaluator_1.ConditionEvaluator(context);
|
|
46
|
+
for (const propertyName in definition.properties) {
|
|
47
|
+
const property = definition.properties[propertyName];
|
|
48
|
+
const messageInfoList = Reflect.getMetadata(decorators_1.metadataKeys.message, target, propertyName);
|
|
49
|
+
if (messageInfoList) {
|
|
50
|
+
for (const messageInfo of messageInfoList) {
|
|
51
|
+
const { passed } = evaluator.evaluate(messageInfo);
|
|
52
|
+
if (passed && messageInfo.messageConfig) {
|
|
53
|
+
this.addConditionalMessage(messageInfo, property, evaluator);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Adds a translated message to the schema property if the metadata contains a MessageConfig.
|
|
61
|
+
*
|
|
62
|
+
* @param metadata - Decorator metadata containing the message config
|
|
63
|
+
* @param definition - The schema property definition to add the message to
|
|
64
|
+
* @param evaluator - Condition evaluator used to resolve PathNode params
|
|
65
|
+
*/
|
|
66
|
+
addConditionalMessage(metadata, definition, evaluator) {
|
|
67
|
+
// Handle MessageConfig format (from msg() helper)
|
|
68
|
+
if (metadata.messageConfig && (0, decorator_paths_1.isMessageConfig)(metadata.messageConfig)) {
|
|
69
|
+
const msgConfig = metadata.messageConfig;
|
|
70
|
+
const resolvedParams = evaluator.resolveMessageParams(msgConfig.params);
|
|
71
|
+
const messageText = i18next_1.default.t(msgConfig.i18nKey, resolvedParams);
|
|
72
|
+
addMessageToSchema(definition, { text: messageText, deletable: msgConfig.deletable });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.Message = Message;
|
|
77
|
+
//# sourceMappingURL=Message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Message.ts"],"names":[],"mappings":";;;;;;AACA,wEAAwD;AAExD,8CAAqE;AACrE,wDAAqD;AACrD,gEAA4D;AAC5D,sDAA8B;AAE9B;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACvB,OAAmB,EACnB,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAyC;IAElE,IAAI,CAAC,OAAO,CAAC,kCAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,kCAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,kCAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAa,OAAO;IAApB;QACa,SAAI,GAAG,SAAS,CAAC;IAmD9B,CAAC;IAjDG;;;;;;OAMG;IACH,IAAI,CAAC,MAAc,EAAE,UAAsB,EAAE,OAAyB;QAClE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;QAElD,KAAK,MAAM,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAe,CAAC;YACnE,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YAExF,IAAI,eAAe,EAAE,CAAC;gBAClB,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;oBACxC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACnD,IAAI,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CACzB,QAA2B,EAC3B,UAAsB,EACtB,SAA6B;QAE7B,kDAAkD;QAClD,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAA,iCAAe,EAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC;YACzC,MAAM,cAAc,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,WAAW,GAAG,iBAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACjE,kBAAkB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;CACJ;AApDD,0BAoDC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Definition } from 'typescript-json-schema';
|
|
2
|
+
import type { DecoratorStep, DecoratorContext } from '../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Readonly step - marks properties as readonly when their condition evaluates to true.
|
|
5
|
+
* Runs last in the pipeline.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Readonly implements DecoratorStep {
|
|
8
|
+
readonly name = "readonly";
|
|
9
|
+
/**
|
|
10
|
+
* Marks properties as readonly when their condition evaluates to true.
|
|
11
|
+
*
|
|
12
|
+
* @param target - The class prototype containing decorator metadata
|
|
13
|
+
* @param definition - The schema definition to modify
|
|
14
|
+
* @param context - Runtime context for condition evaluation
|
|
15
|
+
*/
|
|
16
|
+
init(target: object, definition: Definition, context: DecoratorContext): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Readonly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Readonly.d.ts","sourceRoot":"","sources":["../../../../../../../src/sync/common/decoration/steps/Readonly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrE;;;GAGG;AACH,qBAAa,QAAS,YAAW,aAAa;IAC1C,QAAQ,CAAC,IAAI,cAAc;IAE3B;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAuBhF"}
|