@sap/ux-specification 1.96.103 → 1.96.105
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 +544 -463
- 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 +257 -254
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/AnalyticalListPageConfig.json +3 -3
- package/dist/schemas/v2/ListReportConfig.json +5 -5
- package/dist/schemas/v2/ListReportNewConfig.json +1 -1
- package/dist/schemas/v2/ObjectPageConfig.json +5 -5
- package/dist/schemas/v4/ApplicationV4.json +1 -1
- package/dist/schemas/v4/BuildingBlocksConfig.json +10 -5
- package/dist/schemas/v4/ListReportConfig.json +24 -6
- package/dist/schemas/v4/ObjectPageConfig.json +9 -3
- package/dist/specification/package.json +13 -11
- package/dist/specification/scripts/extractDocu.js +18 -1
- package/dist/specification/scripts/extractDocu.js.map +1 -1
- package/dist/specification/scripts/generate-validity-report.d.ts +15 -0
- package/dist/specification/scripts/generate-validity-report.d.ts.map +1 -0
- package/dist/specification/scripts/generate-validity-report.js +327 -0
- package/dist/specification/scripts/generate-validity-report.js.map +1 -0
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +4 -1
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/src/api.js +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +501 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +497 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +149 -23
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +369 -74
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.d.ts +1 -0
- package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.js +1 -0
- package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
- package/dist/specification/src/sync/common/dist_tag.json +8 -3
- package/dist/specification/src/sync/common/i18n.json +2 -1
- package/dist/specification/src/sync/common/utils.d.ts +35 -7
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +224 -21
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +48 -0
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.js +3 -1
- package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +2 -0
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts +1 -9
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.js +30 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.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 +28 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.js +2 -0
- package/dist/specification/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.js +5 -6
- package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js +2 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts +28 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.js +37 -0
- package/dist/specification/src/sync/v2/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +12 -2
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +19 -2
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +20 -2
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +27 -2
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts +4 -3
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.js +7 -3
- package/dist/specification/src/sync/v4/export/controls/Header.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts +1 -0
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js +7 -0
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +1 -13
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +21 -8
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +39 -41
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js +2 -2
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +36 -6
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +8 -1
- 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 +10 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.js +1 -1
- package/dist/specification/src/sync/v4/generate/index.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +73 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +333 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.d.ts → list-report/listReport.d.ts} +21 -14
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.js → list-report/listReport.js} +146 -139
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +142 -49
- package/dist/specification/src/sync/v4/generate/objectPage.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 +17 -11
- package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +9 -7
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js +4 -8
- 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 -9
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +2 -11
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +177 -46
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +498 -152
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +17 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js +15 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts +1 -0
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js +17 -9
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts +5 -0
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js +21 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/utils.js +4 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/index.d.ts +2 -0
- package/dist/specification/src/sync/v4/utils/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/utils/index.js +18 -0
- package/dist/specification/src/sync/v4/utils/index.js.map +1 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts +9 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +18 -3
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/specification/test/test-projects/v2sttaProdMan2/webapp/manifest.json +550 -0
- package/dist/specification/test/test-projects/v4new/webapp/manifest.json +147 -0
- package/dist/specification/test/test-utils/utils.d.ts +71 -0
- package/dist/specification/test/test-utils/utils.d.ts.map +1 -0
- package/dist/specification/test/test-utils/utils.js +400 -0
- package/dist/specification/test/test-utils/utils.js.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +274 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js +583 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -0
- package/dist/types/src/apiTypes.d.ts +2 -3
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +131 -13
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +10 -1
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v2/controls/Table.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/Table.d.ts +3 -3
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/package.json +14 -12
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts +0 -107
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js +0 -374
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Definition } from 'typescript-json-schema';
|
|
2
2
|
import type { MetadataInstanceInterface } from './decoration/factory';
|
|
3
|
-
import type { Manifest, ExtensionLogger, FacetConfig, FacetConfigs, FacetSection, FileData, SchemaFilePath, FeatureToggle } from '@sap/ux-specification-types';
|
|
3
|
+
import type { Manifest, ExtensionLogger, FacetConfig, FacetConfigs, FacetSection, FileData, SchemaFilePath, FeatureToggle, AccessorPath } from '@sap/ux-specification-types';
|
|
4
4
|
import { TemplateType, v4, FioriElementsVersion, OdataVersion, PageTypeV2, PageTypeV4, SchemaType } from '@sap/ux-specification-types';
|
|
5
5
|
import type { DataField, DataFieldAbstractTypes, DataFieldForActionAbstractTypes, FacetTypes } from '@sap-ux/vocabularies-types/vocabularies/UI';
|
|
6
6
|
import type { ConvertedMetadata, EntityType, PropertyPath, PropertyAnnotationValue } from '@sap-ux/vocabularies-types';
|
|
@@ -492,17 +492,25 @@ export declare function convertSyncRulePathToJsonPath(syncRulePath: string, targ
|
|
|
492
492
|
*/
|
|
493
493
|
export declare function appendJsonPathSegment(basePath: string, segment: string, prevSegment?: string): string;
|
|
494
494
|
export interface ManifestPathParams {
|
|
495
|
-
pageName
|
|
496
|
-
manifest
|
|
495
|
+
pageName?: string | string[];
|
|
496
|
+
manifest?: Manifest;
|
|
497
497
|
pathsParts?: unknown[];
|
|
498
498
|
targetAnnotation?: string;
|
|
499
499
|
targetAnnotationEncoded?: string;
|
|
500
500
|
sectionId?: string;
|
|
501
|
+
columnKey?: string;
|
|
502
|
+
configObject?: object;
|
|
503
|
+
originalIds?: string[];
|
|
504
|
+
cardKeys?: string[];
|
|
505
|
+
viewConfig?: {
|
|
506
|
+
key?: string;
|
|
507
|
+
entitySet?: string;
|
|
508
|
+
};
|
|
501
509
|
}
|
|
502
510
|
/**
|
|
503
511
|
* Internal helper interface used while traversing a schema to resolve `manifestPath`.
|
|
504
512
|
*/
|
|
505
|
-
interface ManifestPropertyResolution {
|
|
513
|
+
export interface ManifestPropertyResolution {
|
|
506
514
|
/**
|
|
507
515
|
* Name of the parent property in the schema.
|
|
508
516
|
*/
|
|
@@ -511,6 +519,18 @@ interface ManifestPropertyResolution {
|
|
|
511
519
|
* Manifest path derived from the sync rule.
|
|
512
520
|
*/
|
|
513
521
|
rulePath?: string;
|
|
522
|
+
/**
|
|
523
|
+
* Indication that schema reference was resolved.
|
|
524
|
+
*/
|
|
525
|
+
reference?: boolean;
|
|
526
|
+
/**
|
|
527
|
+
* Absolute manifest path to root definition.
|
|
528
|
+
*/
|
|
529
|
+
absoluteManifestPath?: string;
|
|
530
|
+
/**
|
|
531
|
+
* Relative manifest path to root definition.
|
|
532
|
+
*/
|
|
533
|
+
relativeManifestPath?: string;
|
|
514
534
|
}
|
|
515
535
|
/**
|
|
516
536
|
* Adds 'manifestPath' to each property in a definition based on metadata sync rules.
|
|
@@ -521,13 +541,21 @@ interface ManifestPropertyResolution {
|
|
|
521
541
|
* If `undefined`, the function attempts to resolve the definition name from the `$ref` property of the provided definition.
|
|
522
542
|
* @param definition - The definition object containing property schemas.
|
|
523
543
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
524
|
-
* @param parentProperty - Information about the parent property used when resolving
|
|
544
|
+
* @param parentProperty - Information about the parent property used when resolving.
|
|
525
545
|
* nested or inherited manifest paths (e.g. parent property name and resolved rule path).
|
|
546
|
+
* @param handleRelative - A flag indicating whether to use relative paths for definition properties.
|
|
526
547
|
*/
|
|
527
548
|
export declare function addManifestPathsToProperties(controls: Array<{
|
|
528
549
|
[key: string]: {
|
|
529
550
|
prototype: object;
|
|
530
551
|
};
|
|
531
|
-
}>, appSchema: Definition, definitionName: string | undefined, definition: Definition, pathParams: ManifestPathParams, parentProperty?: ManifestPropertyResolution): void;
|
|
532
|
-
|
|
552
|
+
}>, appSchema: Definition, definitionName: string | undefined, definition: Definition, pathParams: ManifestPathParams, parentProperty?: ManifestPropertyResolution, handleRelative?: boolean): void;
|
|
553
|
+
/**
|
|
554
|
+
* Converts a JSONPath string into an array of accessors.
|
|
555
|
+
* Note: This is a copy of a similar implementation in tools-suite. In future we should find a way to use one single implementation of this function.
|
|
556
|
+
*
|
|
557
|
+
* @param path - The JSONPath string to convert.
|
|
558
|
+
* @returns An array of accessors representing the path.
|
|
559
|
+
*/
|
|
560
|
+
export declare function jsonPathToArray(path: string): AccessorPath;
|
|
533
561
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/sync/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EACR,QAAQ,EACR,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/sync/common/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,7 @@ exports.compareTemplateNames = compareTemplateNames;
|
|
|
52
52
|
exports.convertSyncRulePathToJsonPath = convertSyncRulePathToJsonPath;
|
|
53
53
|
exports.appendJsonPathSegment = appendJsonPathSegment;
|
|
54
54
|
exports.addManifestPathsToProperties = addManifestPathsToProperties;
|
|
55
|
+
exports.jsonPathToArray = jsonPathToArray;
|
|
55
56
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
56
57
|
const i18next_1 = __importDefault(require("i18next"));
|
|
57
58
|
const deepmerge_1 = __importDefault(require("deepmerge"));
|
|
@@ -464,6 +465,24 @@ function getSectionFacet(facetDefinition, sourceEntityType, oDataServiceAVT, log
|
|
|
464
465
|
return undefined;
|
|
465
466
|
}
|
|
466
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* Decodes encoded path element and returns it in form as used in manifest settings.
|
|
470
|
+
*
|
|
471
|
+
* @param {string} pathElement - path of the property in the manifest
|
|
472
|
+
* @param {string} targetAnnotation - target annotation (optional)
|
|
473
|
+
* @param {string} targetAnnotationEncoded - target annotation in its encoded form, as used in manifest settings (optional)
|
|
474
|
+
* @returns returns decoded element (manifest setting key)
|
|
475
|
+
*/
|
|
476
|
+
function getDecodedPathElement(pathElement, targetAnnotation, targetAnnotationEncoded) {
|
|
477
|
+
let decodedElement;
|
|
478
|
+
if (targetAnnotationEncoded && targetAnnotationEncoded === pathElement) {
|
|
479
|
+
decodedElement = targetAnnotation;
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
decodedElement = pathElement.replace(/\?\?/g, '/');
|
|
483
|
+
}
|
|
484
|
+
return decodedElement;
|
|
485
|
+
}
|
|
467
486
|
/**
|
|
468
487
|
* Method prepares value as empty object or array based on passed path.
|
|
469
488
|
* For array path should end with '[]'.
|
|
@@ -1741,13 +1760,14 @@ function convertSyncRulePathToJsonPath(syncRulePath, targetAnnotation, targetAnn
|
|
|
1741
1760
|
let jsonPath = '$';
|
|
1742
1761
|
let prevSegment = undefined;
|
|
1743
1762
|
for (const segment of pathParts) {
|
|
1744
|
-
// Replace encoded annotation(like '::' -> '/')
|
|
1745
|
-
const resolvedSegment = segment
|
|
1763
|
+
// Replace encoded annotation(like '::' -> '/') and '??' -> '/'
|
|
1764
|
+
const resolvedSegment = getDecodedPathElement(segment, targetAnnotation, targetAnnotationEncoded);
|
|
1746
1765
|
jsonPath = appendJsonPathSegment(jsonPath, resolvedSegment, prevSegment);
|
|
1747
1766
|
prevSegment = resolvedSegment;
|
|
1748
1767
|
}
|
|
1749
1768
|
return jsonPath;
|
|
1750
1769
|
}
|
|
1770
|
+
const ESCAPE_CHAR = '\\';
|
|
1751
1771
|
/**
|
|
1752
1772
|
* Appends a single segment to an existing JSONPath string.
|
|
1753
1773
|
*
|
|
@@ -1772,18 +1792,23 @@ function appendJsonPathSegment(basePath, segment, prevSegment) {
|
|
|
1772
1792
|
return `${basePath}.${segment}`;
|
|
1773
1793
|
}
|
|
1774
1794
|
// Otherwise, use bracket notation with quotes
|
|
1775
|
-
const escapedSegment = segment.includes('"')
|
|
1795
|
+
const escapedSegment = segment.includes('"') || segment.includes(ESCAPE_CHAR)
|
|
1796
|
+
? segment.replaceAll(ESCAPE_CHAR, ESCAPE_CHAR + ESCAPE_CHAR).replaceAll('"', ESCAPE_CHAR + '"')
|
|
1797
|
+
: segment;
|
|
1776
1798
|
return `${basePath}["${escapedSegment}"]`;
|
|
1777
1799
|
}
|
|
1778
1800
|
/**
|
|
1779
|
-
* Finds the control class object for a given definition
|
|
1801
|
+
* Finds the control class object for a given definition names from an array of control objects.
|
|
1780
1802
|
*
|
|
1781
1803
|
* @param controls - Array of control objects, each mapping definition names to class objects.
|
|
1782
|
-
* @param
|
|
1804
|
+
* @param definitionNames - The names of the definition/class to look for.
|
|
1783
1805
|
* @returns The control class object, or undefined if not found.
|
|
1784
1806
|
*/
|
|
1785
|
-
function findClassControl(controls,
|
|
1786
|
-
|
|
1807
|
+
function findClassControl(controls, definitionNames) {
|
|
1808
|
+
for (const definitionName of definitionNames) {
|
|
1809
|
+
if (!definitionName) {
|
|
1810
|
+
continue;
|
|
1811
|
+
}
|
|
1787
1812
|
for (const control of controls) {
|
|
1788
1813
|
if (control[definitionName]) {
|
|
1789
1814
|
return control[definitionName];
|
|
@@ -1797,15 +1822,84 @@ function findClassControl(controls, definitionName) {
|
|
|
1797
1822
|
* @param rule - The sync rule object containing the manifest path function.
|
|
1798
1823
|
* @param pathParams - Parameters for manifest path resolution.
|
|
1799
1824
|
* @param parentProperty - Optional parent property resolution info.
|
|
1825
|
+
* @param propertyName - Optional, property name being resolved.
|
|
1800
1826
|
* @returns The resolved manifest rule path as a string.
|
|
1801
1827
|
*/
|
|
1802
|
-
function resolveManifestRulePath(rule, pathParams, parentProperty) {
|
|
1803
|
-
let rulePath
|
|
1804
|
-
|
|
1805
|
-
|
|
1828
|
+
function resolveManifestRulePath(rule, pathParams, parentProperty, propertyName) {
|
|
1829
|
+
let rulePath;
|
|
1830
|
+
const { cardKeys } = pathParams;
|
|
1831
|
+
// OVP card sync rule path method (check getCardSettingsPath) requires array like parameter e.g. ['cards', 'cardKey', <propertyName>]
|
|
1832
|
+
if (cardKeys) {
|
|
1833
|
+
const manifestPathParam = parentProperty?.name ? [...cardKeys, parentProperty.name] : [...cardKeys];
|
|
1834
|
+
if (propertyName) {
|
|
1835
|
+
manifestPathParam.push(propertyName);
|
|
1836
|
+
}
|
|
1837
|
+
rulePath = rule?.manifest?.path(manifestPathParam);
|
|
1838
|
+
}
|
|
1839
|
+
else {
|
|
1840
|
+
rulePath = rule?.manifest?.path(Array.isArray(pathParams.pageName) ? pathParams.pageName : [pathParams.pageName], pathParams.manifest, ...(pathParams.pathsParts ?? []));
|
|
1841
|
+
if (rulePath === parentProperty?.rulePath) {
|
|
1842
|
+
rulePath = `${rulePath}/${parentProperty.name}`;
|
|
1843
|
+
}
|
|
1806
1844
|
}
|
|
1807
1845
|
return rulePath;
|
|
1808
1846
|
}
|
|
1847
|
+
/**
|
|
1848
|
+
* Sets the absolute manifest path for a property schema based on the sync rule and path parameters.
|
|
1849
|
+
*
|
|
1850
|
+
* @param propertySchema - The schema definition of the property to update.
|
|
1851
|
+
* @param propertyName - The name of the property.
|
|
1852
|
+
* @param rule - The sync rule containing manifest path logic.
|
|
1853
|
+
* @param pathParams - Parameters used for manifest path resolution.
|
|
1854
|
+
* @param parentProperty - Optional parent property resolution info.
|
|
1855
|
+
* @returns The resolved rule path as a string, or undefined if not applicable.
|
|
1856
|
+
*/
|
|
1857
|
+
function applyAbsoluteManifestPath(propertySchema, propertyName, rule, pathParams, parentProperty) {
|
|
1858
|
+
if (!rule?.manifest?.path) {
|
|
1859
|
+
return;
|
|
1860
|
+
}
|
|
1861
|
+
const rulePath = resolveManifestRulePath(rule, pathParams, parentProperty, propertyName);
|
|
1862
|
+
const exportPropertyKey = rule?.manifest?.key ?? propertyName;
|
|
1863
|
+
const propertyRulePath = `${rulePath}/${exportPropertyKey}`;
|
|
1864
|
+
propertySchema.manifestPath = convertSyncRulePathToJsonPath(propertyRulePath, pathParams.targetAnnotation, pathParams.targetAnnotationEncoded);
|
|
1865
|
+
return rulePath;
|
|
1866
|
+
}
|
|
1867
|
+
/**
|
|
1868
|
+
* Sets the relative manifest path for a property schema based on the root definition, sync rule, and path parameters.
|
|
1869
|
+
*
|
|
1870
|
+
* @param rootDefinition - The root schema definition for the current context.
|
|
1871
|
+
* @param propertySchema - The schema definition of the property to update.
|
|
1872
|
+
* @param propertyName - The name of the property.
|
|
1873
|
+
* @param rule - The sync rule containing manifest path logic (optional).
|
|
1874
|
+
* @param pathParams - Parameters used for manifest path resolution.
|
|
1875
|
+
* @param parentProperty - Optional parent property resolution info.
|
|
1876
|
+
*/
|
|
1877
|
+
function applyRelativeManifestPath(rootDefinition, propertySchema, propertyName, rule, pathParams, parentProperty) {
|
|
1878
|
+
let manifestPath;
|
|
1879
|
+
let exportPropertyKey = propertyName;
|
|
1880
|
+
if (rule) {
|
|
1881
|
+
const rulePath = resolveManifestRulePath(rule, pathParams, parentProperty, propertyName);
|
|
1882
|
+
exportPropertyKey = rule?.manifest?.key ?? propertyName;
|
|
1883
|
+
manifestPath = convertSyncRulePathToJsonPath(rulePath, pathParams.targetAnnotation, pathParams.targetAnnotationEncoded);
|
|
1884
|
+
}
|
|
1885
|
+
else if (parentProperty.absoluteManifestPath) {
|
|
1886
|
+
manifestPath = parentProperty.absoluteManifestPath;
|
|
1887
|
+
}
|
|
1888
|
+
if (manifestPath) {
|
|
1889
|
+
let segmentPath = '';
|
|
1890
|
+
if (!rootDefinition['manifestPath'] && parentProperty?.absoluteManifestPath === undefined) {
|
|
1891
|
+
rootDefinition['manifestPath'] = parentProperty?.relativeManifestPath ?? manifestPath;
|
|
1892
|
+
}
|
|
1893
|
+
else if (manifestPath.startsWith(rootDefinition['manifestPath']) &&
|
|
1894
|
+
manifestPath !== rootDefinition['manifestPath']) {
|
|
1895
|
+
segmentPath = manifestPath.slice(rootDefinition['manifestPath'].length);
|
|
1896
|
+
if (segmentPath.startsWith('.')) {
|
|
1897
|
+
segmentPath = segmentPath.slice(1);
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
propertySchema.manifestPath = segmentPath ? `${segmentPath}.${exportPropertyKey}` : exportPropertyKey;
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1809
1903
|
/**
|
|
1810
1904
|
* Adds 'manifestPath' to each property in a definition based on metadata sync rules.
|
|
1811
1905
|
*
|
|
@@ -1815,10 +1909,13 @@ function resolveManifestRulePath(rule, pathParams, parentProperty) {
|
|
|
1815
1909
|
* If `undefined`, the function attempts to resolve the definition name from the `$ref` property of the provided definition.
|
|
1816
1910
|
* @param definition - The definition object containing property schemas.
|
|
1817
1911
|
* @param pathParams - Additional context required to compute manifest paths.
|
|
1818
|
-
* @param parentProperty - Information about the parent property used when resolving
|
|
1912
|
+
* @param parentProperty - Information about the parent property used when resolving.
|
|
1819
1913
|
* nested or inherited manifest paths (e.g. parent property name and resolved rule path).
|
|
1914
|
+
* @param handleRelative - A flag indicating whether to use relative paths for definition properties.
|
|
1820
1915
|
*/
|
|
1821
|
-
function addManifestPathsToProperties(controls, appSchema, definitionName, definition, pathParams, parentProperty) {
|
|
1916
|
+
function addManifestPathsToProperties(controls, appSchema, definitionName, definition, pathParams, parentProperty, handleRelative = false) {
|
|
1917
|
+
const rootDefinition = definition;
|
|
1918
|
+
let isRef = parentProperty?.reference ? parentProperty.reference : false;
|
|
1822
1919
|
// If `definitionName` is undefined, attempt to resolve it from the definition's `$ref`
|
|
1823
1920
|
if (definitionName === undefined && definition.$ref) {
|
|
1824
1921
|
const innerDefinitionKey = getDefinitionKey(definition.$ref);
|
|
@@ -1827,40 +1924,146 @@ function addManifestPathsToProperties(controls, appSchema, definitionName, defin
|
|
|
1827
1924
|
definition = innerDefinition;
|
|
1828
1925
|
definitionName = innerDefinitionKey;
|
|
1829
1926
|
}
|
|
1927
|
+
isRef = true;
|
|
1830
1928
|
}
|
|
1831
1929
|
// Resolve root definition name in case if reference has syntax like `definitionName<annotation>`
|
|
1832
1930
|
if (definitionName?.includes('<')) {
|
|
1833
1931
|
definitionName = definitionName.split('<')[0];
|
|
1834
1932
|
}
|
|
1933
|
+
const definitionsNames = [definitionName];
|
|
1835
1934
|
if (!definition.properties && definition.$ref) {
|
|
1836
1935
|
const innerDefinition = getDefinitionKey(definition.$ref);
|
|
1837
1936
|
definition = appSchema.definitions?.[innerDefinition] ?? definition;
|
|
1937
|
+
isRef = true;
|
|
1938
|
+
if (!definition['isViewNode'] && definitionName !== innerDefinition) {
|
|
1939
|
+
definitionsNames.push(innerDefinition);
|
|
1940
|
+
}
|
|
1838
1941
|
}
|
|
1839
|
-
const classControl = findClassControl(controls,
|
|
1942
|
+
const classControl = findClassControl(controls, definitionsNames);
|
|
1840
1943
|
if (classControl) {
|
|
1841
1944
|
for (const property in definition.properties ?? {}) {
|
|
1842
1945
|
const rule = (0, decoration_1.getReflectMetadata)(classControl.prototype, property);
|
|
1843
1946
|
const propertySchema = definition.properties[property];
|
|
1947
|
+
if (propertySchema.isViewNode) {
|
|
1948
|
+
continue;
|
|
1949
|
+
}
|
|
1844
1950
|
const propertyPath = {
|
|
1845
|
-
name: property
|
|
1951
|
+
name: property,
|
|
1952
|
+
reference: isRef
|
|
1846
1953
|
};
|
|
1847
1954
|
if (rule?.manifest?.path) {
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1955
|
+
if (!pathParams.cardKeys && (!handleRelative || !isRef)) {
|
|
1956
|
+
propertyPath.rulePath = applyAbsoluteManifestPath(propertySchema, property, rule, pathParams, parentProperty);
|
|
1957
|
+
propertyPath.absoluteManifestPath = propertySchema.manifestPath;
|
|
1958
|
+
}
|
|
1959
|
+
else {
|
|
1960
|
+
applyRelativeManifestPath(rootDefinition, propertySchema, property, rule, pathParams, parentProperty);
|
|
1961
|
+
propertyPath.absoluteManifestPath = rootDefinition.manifestPath;
|
|
1962
|
+
}
|
|
1963
|
+
}
|
|
1964
|
+
else if (parentProperty) {
|
|
1965
|
+
propertyPath.relativeManifestPath = property;
|
|
1852
1966
|
}
|
|
1853
1967
|
// Recursively apply manifest paths to inner properties
|
|
1854
|
-
addManifestPathsToProperties(controls, appSchema, undefined, propertySchema, pathParams, propertyPath);
|
|
1968
|
+
addManifestPathsToProperties(controls, appSchema, undefined, propertySchema, pathParams, propertyPath, handleRelative);
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
else if (handleRelative && parentProperty?.absoluteManifestPath) {
|
|
1972
|
+
for (const property in definition.properties ?? {}) {
|
|
1973
|
+
const propertySchema = definition.properties[property];
|
|
1974
|
+
// Recursively apply manifest paths to inner properties
|
|
1975
|
+
applyRelativeManifestPath(rootDefinition, propertySchema, property, undefined, pathParams, parentProperty);
|
|
1855
1976
|
}
|
|
1856
1977
|
}
|
|
1857
1978
|
// Recursively apply manifest paths to properties inside `anyOf` variants
|
|
1858
1979
|
if (definition.anyOf) {
|
|
1859
1980
|
for (const schemaVariant of definition.anyOf) {
|
|
1860
1981
|
if (typeof schemaVariant === 'object') {
|
|
1861
|
-
addManifestPathsToProperties(controls, appSchema, undefined, schemaVariant, pathParams, parentProperty);
|
|
1982
|
+
addManifestPathsToProperties(controls, appSchema, undefined, schemaVariant, pathParams, parentProperty, parentProperty?.absoluteManifestPath ? true : handleRelative);
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
}
|
|
1986
|
+
if (definition.items) {
|
|
1987
|
+
const items = Array.isArray(definition.items) ? definition.items : [definition.items];
|
|
1988
|
+
for (const schemaVariant of items) {
|
|
1989
|
+
if (typeof schemaVariant === 'object') {
|
|
1990
|
+
addManifestPathsToProperties(controls, appSchema, undefined, schemaVariant, pathParams, parentProperty, parentProperty?.absoluteManifestPath ? true : handleRelative);
|
|
1862
1991
|
}
|
|
1863
1992
|
}
|
|
1864
1993
|
}
|
|
1865
1994
|
}
|
|
1995
|
+
/**
|
|
1996
|
+
* Converts a JSONPath string into an array of accessors.
|
|
1997
|
+
* Note: This is a copy of a similar implementation in tools-suite. In future we should find a way to use one single implementation of this function.
|
|
1998
|
+
*
|
|
1999
|
+
* @param path - The JSONPath string to convert.
|
|
2000
|
+
* @returns An array of accessors representing the path.
|
|
2001
|
+
*/
|
|
2002
|
+
function jsonPathToArray(path) {
|
|
2003
|
+
if (!path.startsWith('$')) {
|
|
2004
|
+
throw new Error('Invalid JSONPath: must start with $');
|
|
2005
|
+
}
|
|
2006
|
+
const result = [];
|
|
2007
|
+
let i = 1; // skip '$'
|
|
2008
|
+
while (i < path.length) {
|
|
2009
|
+
const char = path[i];
|
|
2010
|
+
// Dot notation: .key
|
|
2011
|
+
if (char === '.') {
|
|
2012
|
+
i++;
|
|
2013
|
+
const start = i;
|
|
2014
|
+
while (i < path.length && /[A-Za-z0-9_$]/.test(path[i])) {
|
|
2015
|
+
i++;
|
|
2016
|
+
}
|
|
2017
|
+
result.push(path.slice(start, i));
|
|
2018
|
+
continue;
|
|
2019
|
+
}
|
|
2020
|
+
// Bracket notation: ['key'] or [0]
|
|
2021
|
+
if (char === '[') {
|
|
2022
|
+
i++;
|
|
2023
|
+
// Quoted key
|
|
2024
|
+
if (path[i] === '"' || path[i] === "'") {
|
|
2025
|
+
const quote = path[i++];
|
|
2026
|
+
const start = i;
|
|
2027
|
+
// Collect positions of escape characters within the quoted key
|
|
2028
|
+
const escapeCharPositions = [];
|
|
2029
|
+
while (i < path.length) {
|
|
2030
|
+
if (path[i] === ESCAPE_CHAR) {
|
|
2031
|
+
escapeCharPositions.push(i - start);
|
|
2032
|
+
i++; // skip escaped character
|
|
2033
|
+
}
|
|
2034
|
+
else if (path[i] === quote) {
|
|
2035
|
+
break; // end of quoted key
|
|
2036
|
+
}
|
|
2037
|
+
i++;
|
|
2038
|
+
}
|
|
2039
|
+
// Cut out the string representing of the quoted key
|
|
2040
|
+
const segment = path.slice(start, i);
|
|
2041
|
+
// segment may still contain escape characters, need to remove them.
|
|
2042
|
+
let currentStart = 0;
|
|
2043
|
+
let segmentReduced = '';
|
|
2044
|
+
for (const pos of escapeCharPositions) {
|
|
2045
|
+
segmentReduced += segment.slice(currentStart, pos);
|
|
2046
|
+
currentStart = pos + 1;
|
|
2047
|
+
}
|
|
2048
|
+
segmentReduced += segment.slice(currentStart);
|
|
2049
|
+
result.push(segmentReduced);
|
|
2050
|
+
i += 2; // skip closing quote + ]
|
|
2051
|
+
continue;
|
|
2052
|
+
}
|
|
2053
|
+
// Numeric index
|
|
2054
|
+
const start = i;
|
|
2055
|
+
while (i < path.length && path[i] !== ']') {
|
|
2056
|
+
i++;
|
|
2057
|
+
}
|
|
2058
|
+
const index = Number(path.slice(start, i));
|
|
2059
|
+
if (!Number.isNaN(index)) {
|
|
2060
|
+
result.push(index);
|
|
2061
|
+
}
|
|
2062
|
+
i++; // skip ]
|
|
2063
|
+
continue;
|
|
2064
|
+
}
|
|
2065
|
+
i++;
|
|
2066
|
+
}
|
|
2067
|
+
return result;
|
|
2068
|
+
}
|
|
1866
2069
|
//# sourceMappingURL=utils.js.map
|