@sap/ux-specification 1.136.11 → 1.136.12
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 +38 -1
- 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 +250 -247
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/ListReportNewConfig.json +79 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +90 -546
- package/dist/schemas/v4/ListReportConfig.json +0 -41
- package/dist/specification/package.json +10 -9
- package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +2 -1
- package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
- package/dist/specification/src/api.js +2 -2
- package/dist/specification/src/ftfs/ftfs.d.ts +1 -1
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
- package/dist/specification/src/ftfs/ftfs.js +38 -5
- package/dist/specification/src/ftfs/ftfs.js.map +1 -1
- package/dist/specification/src/ftfs/parser/annotations.d.ts +9 -0
- package/dist/specification/src/ftfs/parser/annotations.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/annotations.js +13 -0
- package/dist/specification/src/ftfs/parser/annotations.js.map +1 -0
- package/dist/specification/src/ftfs/parser/index.d.ts +15 -0
- package/dist/specification/src/ftfs/parser/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/index.js +35 -0
- package/dist/specification/src/ftfs/parser/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts +65 -0
- package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/AggregationValidator.js +209 -0
- package/dist/specification/src/ftfs/parser/model/AggregationValidator.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts +49 -0
- package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js +122 -0
- package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts +38 -0
- package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/NodeProperty.js +25 -0
- package/dist/specification/src/ftfs/parser/model/NodeProperty.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts +339 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js +682 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts +24 -0
- package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/RootAggregation.js +57 -0
- package/dist/specification/src/ftfs/parser/model/RootAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts +224 -0
- package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/TreeModel.js +947 -0
- package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts +34 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js +94 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts +67 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js +113 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts +3 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.js +19 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts +17 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js +29 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts +46 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js +66 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts +3 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js +19 -0
- package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts +21 -0
- package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js +30 -0
- package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/chart/index.d.ts +2 -0
- package/dist/specification/src/ftfs/parser/model/chart/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/chart/index.js +18 -0
- package/dist/specification/src/ftfs/parser/model/chart/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts +9 -0
- package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js +16 -0
- package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts +25 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js +45 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts +22 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js +37 -0
- package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/index.d.ts +4 -0
- package/dist/specification/src/ftfs/parser/model/fields/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/fields/index.js +20 -0
- package/dist/specification/src/ftfs/parser/model/fields/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts +39 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js +97 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts +36 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js +59 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts +3 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/index.js +19 -0
- package/dist/specification/src/ftfs/parser/model/filter-fields/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/index.d.ts +19 -0
- package/dist/specification/src/ftfs/parser/model/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/index.js +35 -0
- package/dist/specification/src/ftfs/parser/model/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts +29 -0
- package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js +50 -0
- package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/macros/index.d.ts +2 -0
- package/dist/specification/src/ftfs/parser/model/macros/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/macros/index.js +18 -0
- package/dist/specification/src/ftfs/parser/model/macros/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts +31 -0
- package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js +82 -0
- package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts +78 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js +126 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts +135 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js +402 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts +50 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js +120 -0
- package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts +39 -0
- package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js +70 -0
- package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/index.d.ts +6 -0
- package/dist/specification/src/ftfs/parser/model/sections/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/sections/index.js +22 -0
- package/dist/specification/src/ftfs/parser/model/sections/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts +89 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js +175 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts +113 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js +290 -0
- package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts +13 -0
- package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js +21 -0
- package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts +15 -0
- package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js +22 -0
- package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/index.d.ts +5 -0
- package/dist/specification/src/ftfs/parser/model/table/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/index.js +21 -0
- package/dist/specification/src/ftfs/parser/model/table/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/utils.d.ts +12 -0
- package/dist/specification/src/ftfs/parser/model/table/utils.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/table/utils.js +44 -0
- package/dist/specification/src/ftfs/parser/model/table/utils.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts +63 -0
- package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/annotations.js +29 -0
- package/dist/specification/src/ftfs/parser/model/types/annotations.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/common.d.ts +13 -0
- package/dist/specification/src/ftfs/parser/model/types/common.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/common.js +3 -0
- package/dist/specification/src/ftfs/parser/model/types/common.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/index.d.ts +219 -0
- package/dist/specification/src/ftfs/parser/model/types/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/types/index.js +156 -0
- package/dist/specification/src/ftfs/parser/model/types/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts +38 -0
- package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/annotations.js +120 -0
- package/dist/specification/src/ftfs/parser/model/utils/annotations.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts +33 -0
- package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/i18n.js +69 -0
- package/dist/specification/src/ftfs/parser/model/utils/i18n.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/index.d.ts +6 -0
- package/dist/specification/src/ftfs/parser/model/utils/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/index.js +22 -0
- package/dist/specification/src/ftfs/parser/model/utils/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/object.d.ts +25 -0
- package/dist/specification/src/ftfs/parser/model/utils/object.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/object.js +68 -0
- package/dist/specification/src/ftfs/parser/model/utils/object.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts +31 -0
- package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/sort.js +18 -0
- package/dist/specification/src/ftfs/parser/model/utils/sort.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts +95 -0
- package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/utils/utils.js +267 -0
- package/dist/specification/src/ftfs/parser/model/utils/utils.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts +62 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js +111 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts +54 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js +144 -0
- package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/index.d.ts +3 -0
- package/dist/specification/src/ftfs/parser/model/views/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/views/index.js +19 -0
- package/dist/specification/src/ftfs/parser/model/views/index.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts +11 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js +18 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts +11 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js +18 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts +3 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/index.js +19 -0
- package/dist/specification/src/ftfs/parser/model/visual-filters/index.js.map +1 -0
- package/dist/specification/src/sync/common/i18n.json +5 -4
- package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.js +1 -92
- package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +2 -17
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts +40 -0
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js +179 -0
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js.map +1 -0
- package/dist/specification/src/sync/v2/generate/utils.d.ts +63 -3
- package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/utils.js +191 -7
- package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts +59 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js +193 -4
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts +8 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js +52 -7
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js.map +1 -1
- package/dist/specification/src/sync/v4/export/manifest.js +1 -1
- package/dist/specification/src/sync/v4/export/manifest.js.map +1 -1
- package/dist/specification/src/sync/v4/import/app/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/app/appProvider.js +3 -0
- package/dist/specification/src/sync/v4/import/app/appProvider.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js +3 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/types/src/apiTypes.d.ts +22 -0
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/index.js +2 -1
- package/dist/types/src/index.js.map +1 -1
- package/dist/types/src/parser/application.d.ts +22 -0
- package/dist/types/src/parser/application.d.ts.map +1 -0
- package/dist/types/src/parser/application.js +3 -0
- package/dist/types/src/parser/application.js.map +1 -0
- package/dist/types/src/parser/index.d.ts +3 -0
- package/dist/types/src/parser/index.d.ts.map +1 -0
- package/dist/types/src/parser/index.js +18 -0
- package/dist/types/src/parser/index.js.map +1 -0
- package/dist/types/src/parser/model.d.ts +17 -0
- package/dist/types/src/parser/model.d.ts.map +1 -0
- package/dist/types/src/parser/model.js +3 -0
- package/dist/types/src/parser/model.js.map +1 -0
- package/dist/types/src/v4/controls/Table.d.ts +0 -5
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/package.json +10 -9
- package/dist/specification/src/ftfs/annotations.d.ts +0 -12
- package/dist/specification/src/ftfs/annotations.d.ts.map +0 -1
- package/dist/specification/src/ftfs/annotations.js +0 -50
- package/dist/specification/src/ftfs/annotations.js.map +0 -1
|
@@ -1520,47 +1520,6 @@
|
|
|
1520
1520
|
"description": "Each chart can be based on a different entitySet.",
|
|
1521
1521
|
"type": "string",
|
|
1522
1522
|
"artifactType": "Manifest"
|
|
1523
|
-
},
|
|
1524
|
-
"enableMassEdit": {
|
|
1525
|
-
"artifactType": "Manifest",
|
|
1526
|
-
"descriptionSrcURL": "https://ui5.sap.com/sdk/#/topic/965ef5b2895641bc9b6cd44f1bd0eb4d",
|
|
1527
|
-
"description": "Mass editing allows end users to simultaneously change multiple objects that share the same editable properties.",
|
|
1528
|
-
"anyOf": [
|
|
1529
|
-
{
|
|
1530
|
-
"type": "object",
|
|
1531
|
-
"properties": {
|
|
1532
|
-
"visibleFields": {
|
|
1533
|
-
"description": "The 'visibleFields' property lets you specify which fields are available in the mass edit dialog.",
|
|
1534
|
-
"artifactType": "Manifest",
|
|
1535
|
-
"descriptionSrcURL": "https://ui5.sap.com/sdk/#/topic/965ef5b2895641bc9b6cd44f1bd0eb4d",
|
|
1536
|
-
"type": "array",
|
|
1537
|
-
"items": {
|
|
1538
|
-
"type": "string"
|
|
1539
|
-
}
|
|
1540
|
-
},
|
|
1541
|
-
"ignoredFields": {
|
|
1542
|
-
"description": "The 'ignoredFields' property lets you hide specific fields from the mass edit dialog, even if these fields are displayed in the table.",
|
|
1543
|
-
"artifactType": "Manifest",
|
|
1544
|
-
"descriptionSrcURL": "https://ui5.sap.com/sdk/#/topic/965ef5b2895641bc9b6cd44f1bd0eb4d",
|
|
1545
|
-
"type": "array",
|
|
1546
|
-
"items": {
|
|
1547
|
-
"type": "string"
|
|
1548
|
-
}
|
|
1549
|
-
},
|
|
1550
|
-
"operationGroupingMode": {
|
|
1551
|
-
"$ref": "#/definitions/OperationGroupingMode",
|
|
1552
|
-
"description": "Define how the changes using mass edit should be applied. The default mode for mass editing is 'ChangeSet' on the Object Page and 'Isolated' in the List Report.\n\n- ChangeSet: Grouped for all objects within the same request.\n- Isolated: Separately for each object (as an individual OData change set in the same request)."
|
|
1553
|
-
}
|
|
1554
|
-
},
|
|
1555
|
-
"additionalProperties": false
|
|
1556
|
-
},
|
|
1557
|
-
{
|
|
1558
|
-
"type": "boolean"
|
|
1559
|
-
}
|
|
1560
|
-
]
|
|
1561
|
-
},
|
|
1562
|
-
"analyticalConfiguration": {
|
|
1563
|
-
"$ref": "#/definitions/ViewAnalyticalConfiguration"
|
|
1564
1523
|
}
|
|
1565
1524
|
},
|
|
1566
1525
|
"additionalProperties": false,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap/ux-specification",
|
|
3
|
-
"version": "1.136.
|
|
3
|
+
"version": "1.136.12",
|
|
4
4
|
"displayName": "SAP Fiori tools - Specification",
|
|
5
5
|
"description": "SAP Fiori tools - Specification",
|
|
6
6
|
"files": [
|
|
@@ -49,19 +49,20 @@
|
|
|
49
49
|
"publisher": "SAPSE",
|
|
50
50
|
"license": "SEE LICENSE IN LICENSE",
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@sap-ux/fe-fpm-writer": "0.39.
|
|
53
|
-
"@sap-ux/vocabularies-types": "0.13.
|
|
52
|
+
"@sap-ux/fe-fpm-writer": "0.39.25",
|
|
53
|
+
"@sap-ux/vocabularies-types": "0.13.2"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@sap-ux/annotation-converter": "0.10.
|
|
56
|
+
"@sap-ux/annotation-converter": "0.10.9",
|
|
57
57
|
"@sap-ux/edmx-parser": "0.9.6",
|
|
58
|
-
"@sap-ux/project-access": "1.32.
|
|
59
|
-
"@sap/ux-specification-types": "1.136.
|
|
58
|
+
"@sap-ux/project-access": "1.32.9",
|
|
59
|
+
"@sap/ux-specification-types": "1.136.12",
|
|
60
60
|
"@sapui5/types": "latest-1.136",
|
|
61
61
|
"@types/d3": "7.4.3",
|
|
62
|
-
"@types/jquery": "3.5.
|
|
63
|
-
"@types/mem-fs": "1.1.
|
|
62
|
+
"@types/jquery": "3.5.33",
|
|
63
|
+
"@types/mem-fs": "1.1.5",
|
|
64
64
|
"@types/mem-fs-editor": "7.0.1",
|
|
65
|
+
"@types/json-schema": "7.0.5",
|
|
65
66
|
"@ui5/flexibility-utils": "0.1.3",
|
|
66
67
|
"@xml-tools/ast": "5.0.5",
|
|
67
68
|
"@xml-tools/parser": "1.0.11",
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
"deepmerge": "4.3.1",
|
|
72
73
|
"ejs": "3.1.10",
|
|
73
74
|
"excel4node": "1.8.2",
|
|
74
|
-
"i18next": "25.6.
|
|
75
|
+
"i18next": "25.6.3",
|
|
75
76
|
"jquery": "3.7.1",
|
|
76
77
|
"jsdom": "25.0.1",
|
|
77
78
|
"lodash.unset": "4.5.2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-json-schema.d.ts","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAK1F,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AA8BhD;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,CAAC,EAAE,yBAAyB,QAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA4BxG;AA2FD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"to-json-schema.d.ts","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAK1F,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AA8BhD;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,CAAC,EAAE,yBAAyB,QAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA4BxG;AA2FD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,yBAqBzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CA0BrD"}
|
|
@@ -203,7 +203,8 @@ exports.FACTORY_FOR_LIST_REPORT_NEW = {
|
|
|
203
203
|
const metadataClass = v2Controls[schemaPropertyName];
|
|
204
204
|
// Naming convention: Types that are only introduced as host for enums have a name ending with 'Enum'.
|
|
205
205
|
// They cannot be instantiated.
|
|
206
|
-
|
|
206
|
+
// In addition to that ButtonType (imported from sap.m) is also an enum.
|
|
207
|
+
if (schemaPropertyName.endsWith('Enum') || schemaPropertyName === 'ButtonType') {
|
|
207
208
|
return metadataClass;
|
|
208
209
|
}
|
|
209
210
|
let instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,gFAEC;AAUD,8CA4BC;
|
|
1
|
+
{"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -265,8 +265,8 @@ async function importProjectSchema(importParameters) {
|
|
|
265
265
|
*/
|
|
266
266
|
function getApiVersion() {
|
|
267
267
|
return {
|
|
268
|
-
version: '
|
|
269
|
-
fpmWriter: '
|
|
268
|
+
version: '24',
|
|
269
|
+
fpmWriter: '35',
|
|
270
270
|
moduleVersion: package_json_1.default.version
|
|
271
271
|
};
|
|
272
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ftfs.d.ts","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ftfs.d.ts","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,aAAa,EAClB,KAAK,aAAa,EAErB,MAAM,6BAA6B,CAAC;AAqBrC;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAuD5E"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.readApp = readApp;
|
|
4
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
4
5
|
const project_access_1 = require("@sap-ux/project-access");
|
|
5
6
|
const mem_fs_1 = require("mem-fs");
|
|
6
7
|
const mem_fs_editor_1 = require("mem-fs-editor");
|
|
7
|
-
const annotations_1 = require("./annotations");
|
|
8
8
|
const api_1 = require("../api");
|
|
9
|
+
const parser_1 = require("./parser");
|
|
9
10
|
// Retrieve API version
|
|
10
11
|
const ApiVersion = (0, api_1.getApiVersion)();
|
|
11
12
|
/**
|
|
@@ -28,10 +29,10 @@ async function readApp(options) {
|
|
|
28
29
|
// Reuse app access or create new instance
|
|
29
30
|
const appAccess = typeof options.app === 'string' ? await (0, project_access_1.createApplicationAccess)(options.app, memFs) : options.app;
|
|
30
31
|
let files = [];
|
|
31
|
-
const manifest =
|
|
32
|
+
const manifest = await appAccess.readManifest(memFs);
|
|
32
33
|
if (manifest) {
|
|
33
|
-
const annotationData = await
|
|
34
|
-
const changeFiles = await
|
|
34
|
+
const annotationData = await appAccess.readAnnotationFiles(memFs);
|
|
35
|
+
const changeFiles = await appAccess.readFlexChanges(memFs);
|
|
35
36
|
// Import project using specification API
|
|
36
37
|
files = await (0, api_1.importProject)({
|
|
37
38
|
manifest: manifest,
|
|
@@ -40,10 +41,42 @@ async function readApp(options) {
|
|
|
40
41
|
logger: options.logger
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
// Application model
|
|
45
|
+
let applicationModel;
|
|
46
|
+
if (!options.skipParsing) {
|
|
47
|
+
const appFile = files.find((file) => file.dataSourceUri === ux_specification_types_1.FileName.App);
|
|
48
|
+
const application = appFile ? JSON.parse(appFile.fileContent) : {};
|
|
49
|
+
const appSchemaFile = files.find((file) => application.$schema?.endsWith(file.dataSourceUri));
|
|
50
|
+
if (application && appSchemaFile) {
|
|
51
|
+
applicationModel = {
|
|
52
|
+
...application,
|
|
53
|
+
model: (0, parser_1.getModel)(appSchemaFile.fileContent, application),
|
|
54
|
+
pages: {}
|
|
55
|
+
};
|
|
56
|
+
for (const pageId in application.pages ?? {}) {
|
|
57
|
+
const page = application.pages[pageId];
|
|
58
|
+
// Paths are unified and does not require OS specific handling
|
|
59
|
+
const pageSourceUri = `pages/${pageId}.json`;
|
|
60
|
+
const configFile = files.find((file) => file.dataSourceUri === pageSourceUri);
|
|
61
|
+
const config = configFile ? JSON.parse(configFile.fileContent) : {};
|
|
62
|
+
const schemaFile = files.find((file) => config.$schema?.endsWith(file.dataSourceUri));
|
|
63
|
+
if (schemaFile) {
|
|
64
|
+
applicationModel.pages[pageId] = {
|
|
65
|
+
...page,
|
|
66
|
+
model: (0, parser_1.getModel)(schemaFile.fileContent, config, page.pageType)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const result = {
|
|
44
73
|
files,
|
|
45
74
|
appAccess,
|
|
46
75
|
version: ApiVersion
|
|
47
76
|
};
|
|
77
|
+
if (applicationModel) {
|
|
78
|
+
result.applicationModel = applicationModel;
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
48
81
|
}
|
|
49
82
|
//# sourceMappingURL=ftfs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ftfs.js","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ftfs.js","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TooComplexData } from './model';
|
|
2
|
+
/**
|
|
3
|
+
* Type guard to check whether a given value is of type `TooComplexData`.
|
|
4
|
+
*
|
|
5
|
+
* @param value The value to check.
|
|
6
|
+
* @returns true if the value is a TooComplexData object.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isTooComplex<T>(value: T | TooComplexData): value is TooComplexData;
|
|
9
|
+
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../../../src/ftfs/parser/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,cAAc,GAAG,KAAK,IAAI,cAAc,CAElF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTooComplex = isTooComplex;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard to check whether a given value is of type `TooComplexData`.
|
|
6
|
+
*
|
|
7
|
+
* @param value The value to check.
|
|
8
|
+
* @returns true if the value is a TooComplexData object.
|
|
9
|
+
*/
|
|
10
|
+
function isTooComplex(value) {
|
|
11
|
+
return value?.tooComplex === true;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=annotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../src/ftfs/parser/annotations.ts"],"names":[],"mappings":";;AAQA,oCAEC;AARD;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,KAAyB;IACrD,OAAQ,KAAwB,EAAE,UAAU,KAAK,IAAI,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PageConfig, PageType } from '@sap/ux-specification-types';
|
|
2
|
+
import type { PageAnnotations } from './model';
|
|
3
|
+
import { TreeModel } from './model';
|
|
4
|
+
export * from './model';
|
|
5
|
+
/**
|
|
6
|
+
* Method initializes and returns model.
|
|
7
|
+
*
|
|
8
|
+
* @param schema JSON schema.
|
|
9
|
+
* @param data Page or application config.
|
|
10
|
+
* @param pageType Page type.
|
|
11
|
+
* @param annotation Page annotations.
|
|
12
|
+
* @returns Initialized model.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getModel(schema: string, data: PageConfig, pageType?: PageType, annotation?: PageAnnotations): TreeModel;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ftfs/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,cAAc,SAAS,CAAC;AAExB;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,CAAC,EAAE,eAAe,GAC7B,SAAS,CAWX"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getModel = getModel;
|
|
18
|
+
const model_1 = require("./model");
|
|
19
|
+
__exportStar(require("./model"), exports);
|
|
20
|
+
/**
|
|
21
|
+
* Method initializes and returns model.
|
|
22
|
+
*
|
|
23
|
+
* @param schema JSON schema.
|
|
24
|
+
* @param data Page or application config.
|
|
25
|
+
* @param pageType Page type.
|
|
26
|
+
* @param annotation Page annotations.
|
|
27
|
+
* @returns Initialized model.
|
|
28
|
+
*/
|
|
29
|
+
function getModel(schema, data, pageType, annotation) {
|
|
30
|
+
return new model_1.TreeModel('Root', data, schema, annotation ?? {
|
|
31
|
+
dynamicNodes: {},
|
|
32
|
+
nodes: []
|
|
33
|
+
}, pageType);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ftfs/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAeA,4BAgBC;AA7BD,mCAAoC;AAEpC,0CAAwB;AAExB;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CACpB,MAAc,EACd,IAAgB,EAChB,QAAmB,EACnB,UAA4B;IAE5B,OAAO,IAAI,iBAAS,CAChB,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,IAAI;QACV,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE;KACZ,EACD,QAAQ,CACX,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Parser } from '@sap/ux-specification-types';
|
|
2
|
+
import type { ObjectAggregation, AggregationVariant } from './ObjectAggregation';
|
|
3
|
+
import type { PageData } from './types';
|
|
4
|
+
import { ValidationState } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Represents validator for aggregations.
|
|
7
|
+
*/
|
|
8
|
+
export declare class AggregationValidator {
|
|
9
|
+
/**
|
|
10
|
+
* Method validates states of properties and aggregation. Following states are supported:
|
|
11
|
+
* 1. Valid.
|
|
12
|
+
* 2. Invalid - when value is set for property/aggregation, but it is not valid.
|
|
13
|
+
* 3. Skipped - when property/aggregation is not relevant in current value context and value does not set.
|
|
14
|
+
*
|
|
15
|
+
* @param aggregation ObjectAggregation which state should be validated.
|
|
16
|
+
* @param data Page data.
|
|
17
|
+
*/
|
|
18
|
+
validate(aggregation: ObjectAggregation, data: PageData): void;
|
|
19
|
+
/**
|
|
20
|
+
* Method receives possible variants of variants received from schema and validates against current values.
|
|
21
|
+
*
|
|
22
|
+
* @param variants Array of variants.
|
|
23
|
+
* @param aggregation Aggregation to validate.
|
|
24
|
+
* @returns State of each property and aggregation.
|
|
25
|
+
*/
|
|
26
|
+
validateVariants(variants: Array<AggregationVariant>, aggregation: ObjectAggregation): {
|
|
27
|
+
[k: string]: ValidationState;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Method receives single variants and validates received property against variant schema.
|
|
31
|
+
*
|
|
32
|
+
* @param variant Variant to use as validation rule.
|
|
33
|
+
* @param aggregation Aggregation to validate.
|
|
34
|
+
* @param property Name of inner property or aggregation, which should be validated.
|
|
35
|
+
* @param ignoreUnexisting Do not return skip state when ignore passed and variant property does not exist.
|
|
36
|
+
* @returns Validation result.
|
|
37
|
+
*/
|
|
38
|
+
validateVariant(variant: AggregationVariant, aggregation: ObjectAggregation, property: string, ignoreUnexisting?: boolean): ValidationState;
|
|
39
|
+
/**
|
|
40
|
+
* Iterates over all aggregations contained in the given variants.
|
|
41
|
+
* Useful for replacing nested loops when traversing variant aggregations.
|
|
42
|
+
*
|
|
43
|
+
* @param variants List of variant aggregations to traverse.
|
|
44
|
+
* @yields A tuple containing:
|
|
45
|
+
* - `name`: The aggregation key within the variant.
|
|
46
|
+
* - `aggregation`: The aggregation within the variant.
|
|
47
|
+
*/
|
|
48
|
+
private iterateVariantAggregations;
|
|
49
|
+
/**
|
|
50
|
+
* Method goes through passed variants and checks for unify aggregations.
|
|
51
|
+
* If there is any aggregation for unification, then method updates unify aggregation with latest valid context paths.
|
|
52
|
+
*
|
|
53
|
+
* @param aggregation Aggregation to validate.
|
|
54
|
+
* @param variants Valid aggeregation to use as context for properties and aggregations paths.
|
|
55
|
+
*/
|
|
56
|
+
private unifyVariants;
|
|
57
|
+
/**
|
|
58
|
+
* Recursive method updates paths of all aggregations and properties using passed context path.
|
|
59
|
+
*
|
|
60
|
+
* @param aggregation Target aggregation.
|
|
61
|
+
* @param contextPath Context path.
|
|
62
|
+
*/
|
|
63
|
+
applyContextPath(aggregation: ObjectAggregation, contextPath: Parser.PropertyPath): void;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=AggregationValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggregationValidator.d.ts","sourceRoot":"","sources":["../../../../../../src/ftfs/parser/model/AggregationValidator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C;;GAEG;AACH,qBAAa,oBAAoB;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IA2B9D;;;;;;OAMG;IACH,gBAAgB,CACZ,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,EACnC,WAAW,EAAE,iBAAiB,GAC/B;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE;IAkDnC;;;;;;;;OAQG;IACH,eAAe,CACX,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,UAAQ,GACzB,eAAe;IA0BlB;;;;;;;;OAQG;IACH,OAAO,CAAE,0BAA0B;IAQnC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAkCrB;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,GAAG,IAAI;CAS3F"}
|
|
@@ -0,0 +1,209 @@
|
|
|
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.AggregationValidator = void 0;
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const i18next_1 = __importDefault(require("i18next"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
/**
|
|
11
|
+
* Represents validator for aggregations.
|
|
12
|
+
*/
|
|
13
|
+
class AggregationValidator {
|
|
14
|
+
/**
|
|
15
|
+
* Method validates states of properties and aggregation. Following states are supported:
|
|
16
|
+
* 1. Valid.
|
|
17
|
+
* 2. Invalid - when value is set for property/aggregation, but it is not valid.
|
|
18
|
+
* 3. Skipped - when property/aggregation is not relevant in current value context and value does not set.
|
|
19
|
+
*
|
|
20
|
+
* @param aggregation ObjectAggregation which state should be validated.
|
|
21
|
+
* @param data Page data.
|
|
22
|
+
*/
|
|
23
|
+
validate(aggregation, data) {
|
|
24
|
+
if (aggregation.state === types_1.ValidationState.Valid && aggregation.variants.length >= 1) {
|
|
25
|
+
const properties = this.validateVariants(aggregation.variants, aggregation);
|
|
26
|
+
for (const property in properties) {
|
|
27
|
+
const entry = aggregation.properties[property] || aggregation.aggregations[property];
|
|
28
|
+
if (entry) {
|
|
29
|
+
entry.state = properties[property];
|
|
30
|
+
if (entry.state === types_1.ValidationState.Invalid) {
|
|
31
|
+
// Property is defined in source, but it is not allowed
|
|
32
|
+
(0, utils_1.addValidationMessages)(entry, [
|
|
33
|
+
{
|
|
34
|
+
text: i18next_1.default.t('PAGE_EDITOR_PROPERTIES_PROPERTY_WARNING_PROPERTY_NOT_ALLOWED', {
|
|
35
|
+
name: property
|
|
36
|
+
}),
|
|
37
|
+
deletable: true
|
|
38
|
+
}
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Go through standard aggregation with recursion
|
|
45
|
+
for (const name in aggregation.aggregations) {
|
|
46
|
+
this.validate(aggregation.aggregations[name], data ? data[name] : {});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Method receives possible variants of variants received from schema and validates against current values.
|
|
51
|
+
*
|
|
52
|
+
* @param variants Array of variants.
|
|
53
|
+
* @param aggregation Aggregation to validate.
|
|
54
|
+
* @returns State of each property and aggregation.
|
|
55
|
+
*/
|
|
56
|
+
validateVariants(variants, aggregation) {
|
|
57
|
+
const valueProperties = {};
|
|
58
|
+
// Get properties with actual values
|
|
59
|
+
for (const property in aggregation.properties) {
|
|
60
|
+
if (aggregation.properties[property].value !== undefined) {
|
|
61
|
+
valueProperties[property] = aggregation.properties[property].value;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (const property in aggregation.aggregations) {
|
|
65
|
+
if (aggregation.aggregations[property].value !== undefined) {
|
|
66
|
+
valueProperties[property] = aggregation.aggregations[property].value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Get valid variants
|
|
70
|
+
let validVariants = [...variants];
|
|
71
|
+
for (const property in valueProperties) {
|
|
72
|
+
validVariants = validVariants.filter((variant) => {
|
|
73
|
+
const result = this.validateVariant(variant, aggregation, property);
|
|
74
|
+
return result === types_1.ValidationState.Valid;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (validVariants.length === 0) {
|
|
78
|
+
validVariants = [...variants];
|
|
79
|
+
for (const property in valueProperties) {
|
|
80
|
+
validVariants = validVariants.filter((variant) => {
|
|
81
|
+
const result = this.validateVariant(variant, aggregation, property, true);
|
|
82
|
+
return result === types_1.ValidationState.Valid;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Unify aggregation and variants if 'unionName' is used in aggregation
|
|
87
|
+
this.unifyVariants(aggregation, validVariants);
|
|
88
|
+
// Populate property states
|
|
89
|
+
const propertyStates = {};
|
|
90
|
+
const properties = [...Object.keys(aggregation.properties), ...Object.keys(aggregation.aggregations)];
|
|
91
|
+
for (const property of properties) {
|
|
92
|
+
const valid = validVariants.some((variant) => {
|
|
93
|
+
return property in variant.properties || property in variant.aggregations;
|
|
94
|
+
});
|
|
95
|
+
if (valid) {
|
|
96
|
+
propertyStates[property] = types_1.ValidationState.Valid;
|
|
97
|
+
}
|
|
98
|
+
else if (property in valueProperties) {
|
|
99
|
+
propertyStates[property] = types_1.ValidationState.Invalid;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
propertyStates[property] = types_1.ValidationState.Skipped;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return propertyStates;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Method receives single variants and validates received property against variant schema.
|
|
109
|
+
*
|
|
110
|
+
* @param variant Variant to use as validation rule.
|
|
111
|
+
* @param aggregation Aggregation to validate.
|
|
112
|
+
* @param property Name of inner property or aggregation, which should be validated.
|
|
113
|
+
* @param ignoreUnexisting Do not return skip state when ignore passed and variant property does not exist.
|
|
114
|
+
* @returns Validation result.
|
|
115
|
+
*/
|
|
116
|
+
validateVariant(variant, aggregation, property, ignoreUnexisting = false) {
|
|
117
|
+
const variantProperty = variant.aggregations[property] || variant.properties[property];
|
|
118
|
+
if (variantProperty === undefined) {
|
|
119
|
+
return ignoreUnexisting ? types_1.ValidationState.Valid : types_1.ValidationState.Skipped;
|
|
120
|
+
}
|
|
121
|
+
// Check enum value
|
|
122
|
+
const entity = aggregation.properties[property] || aggregation.aggregations[property] || {};
|
|
123
|
+
const value = 'value' in entity ? entity.value : undefined;
|
|
124
|
+
if (variantProperty.schema) {
|
|
125
|
+
if (variantProperty.schema.pattern &&
|
|
126
|
+
!new RegExp(variantProperty.schema.pattern).exec(value.toString())) {
|
|
127
|
+
return types_1.ValidationState.Skipped;
|
|
128
|
+
}
|
|
129
|
+
if (variantProperty.schema.enum &&
|
|
130
|
+
!variantProperty.schema.enum.includes(value) &&
|
|
131
|
+
!variantProperty.freeText) {
|
|
132
|
+
return types_1.ValidationState.Skipped;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return types_1.ValidationState.Valid;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Iterates over all aggregations contained in the given variants.
|
|
139
|
+
* Useful for replacing nested loops when traversing variant aggregations.
|
|
140
|
+
*
|
|
141
|
+
* @param variants List of variant aggregations to traverse.
|
|
142
|
+
* @yields A tuple containing:
|
|
143
|
+
* - `name`: The aggregation key within the variant.
|
|
144
|
+
* - `aggregation`: The aggregation within the variant.
|
|
145
|
+
*/
|
|
146
|
+
*iterateVariantAggregations(variants) {
|
|
147
|
+
for (const variant of variants) {
|
|
148
|
+
for (const [name, aggregation] of Object.entries(variant.aggregations)) {
|
|
149
|
+
yield [name, aggregation];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Method goes through passed variants and checks for unify aggregations.
|
|
155
|
+
* If there is any aggregation for unification, then method updates unify aggregation with latest valid context paths.
|
|
156
|
+
*
|
|
157
|
+
* @param aggregation Aggregation to validate.
|
|
158
|
+
* @param variants Valid aggeregation to use as context for properties and aggregations paths.
|
|
159
|
+
*/
|
|
160
|
+
unifyVariants(aggregation, variants) {
|
|
161
|
+
const handledProperties = {};
|
|
162
|
+
for (const [name, variantAggregation] of this.iterateVariantAggregations(variants)) {
|
|
163
|
+
if (variantAggregation.union && !handledProperties[name]) {
|
|
164
|
+
this.applyContextPath(aggregation.aggregations[name], variantAggregation.path);
|
|
165
|
+
// Name correction to show context
|
|
166
|
+
aggregation.aggregations[name].name =
|
|
167
|
+
variantAggregation.path[variantAggregation.path.length - 1].toString();
|
|
168
|
+
// Mark handled property
|
|
169
|
+
handledProperties[name] = true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!Object.keys(handledProperties).length) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// update variant arrays
|
|
176
|
+
for (const name in handledProperties) {
|
|
177
|
+
aggregation.aggregations[name].variants = [];
|
|
178
|
+
}
|
|
179
|
+
for (const variant of variants) {
|
|
180
|
+
for (const name in handledProperties) {
|
|
181
|
+
const variantAggregation = variant.aggregations[name];
|
|
182
|
+
if (!variantAggregation) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
aggregation.aggregations[name].variants = [
|
|
186
|
+
...aggregation.aggregations[name].variants,
|
|
187
|
+
...(variantAggregation.variants.length ? variantAggregation.variants : [variantAggregation])
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Recursive method updates paths of all aggregations and properties using passed context path.
|
|
194
|
+
*
|
|
195
|
+
* @param aggregation Target aggregation.
|
|
196
|
+
* @param contextPath Context path.
|
|
197
|
+
*/
|
|
198
|
+
applyContextPath(aggregation, contextPath) {
|
|
199
|
+
aggregation.path = aggregation.path.slice();
|
|
200
|
+
for (let i = 0; i < contextPath.length; i++) {
|
|
201
|
+
aggregation.path[i] = contextPath[i];
|
|
202
|
+
}
|
|
203
|
+
for (const name in aggregation.aggregations) {
|
|
204
|
+
this.applyContextPath(aggregation.aggregations[name], contextPath);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
exports.AggregationValidator = AggregationValidator;
|
|
209
|
+
//# sourceMappingURL=AggregationValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggregationValidator.js","sourceRoot":"","sources":["../../../../../../src/ftfs/parser/model/AggregationValidator.ts"],"names":[],"mappings":"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"}
|