@sap/ux-specification 1.96.13 → 1.96.16

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +108 -16
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  3. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  4. package/dist/documentation/v2/v2-ListReport.html +1 -1
  5. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  6. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  7. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  8. package/dist/documentation/v4/v4-FreestylePage.html +48 -0
  9. package/dist/documentation/v4/v4-ListReport.html +1 -1
  10. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  11. package/dist/index-min.js +1 -1
  12. package/dist/schemas/v2/AnalyticalListPageConfig.json +1 -0
  13. package/dist/schemas/v2/ListReportConfig.json +1 -0
  14. package/dist/schemas/v2/ObjectPageConfig.json +1 -0
  15. package/dist/schemas/v4/ApplicationV4.json +4 -0
  16. package/dist/schemas/v4/FreestylePageConfig.json +10 -0
  17. package/dist/schemas/v4/ListReportConfig.json +3 -3
  18. package/dist/src/apiTypes.d.ts +13 -4
  19. package/dist/src/specification/schemaAccess.d.ts +2 -1
  20. package/dist/src/specification/v2/controls/Table.d.ts +1 -0
  21. package/dist/src/specification/v2/controls/index.d.ts +1 -0
  22. package/dist/src/specification/v4/ApplicationV4.d.ts +4 -0
  23. package/dist/src/specification/v4/controls/Table.d.ts +2 -2
  24. package/dist/src/specification/v4/pages/FreestylePageConfig.d.ts +2 -0
  25. package/dist/src/specification/v4/pages/ListReportConfig.d.ts +1 -1
  26. package/dist/src/specification/v4/pages/index.d.ts +1 -0
  27. package/dist/src/specification/v4/webapp/manifest/sapUi5.d.ts +2 -0
  28. package/dist/src/sync/common/appProvider.d.ts +1 -1
  29. package/dist/src/sync/common/types.d.ts +5 -0
  30. package/dist/src/sync/common/utils.d.ts +19 -4
  31. package/dist/src/sync/v2/export/controls/Fragment.d.ts +2 -1
  32. package/dist/src/sync/v2/export/controls/Table.d.ts +1 -2
  33. package/dist/src/sync/v2/import/common/index.d.ts +1 -0
  34. package/dist/src/sync/v2/import/controls/table.d.ts +3 -1
  35. package/dist/src/sync/v2/types.d.ts +4 -3
  36. package/dist/src/sync/v4/export/pages/FreestylePage.d.ts +5 -0
  37. package/dist/src/sync/v4/export/pages/ListReport.d.ts +1 -1
  38. package/dist/src/sync/v4/export/pages/index.d.ts +1 -0
  39. package/dist/src/sync/v4/generate/freestylePage.d.ts +10 -0
  40. package/dist/src/sync/v4/generate/generate.d.ts +12 -0
  41. package/dist/src/sync/v4/generate/index.d.ts +2 -1
  42. package/dist/src/sync/v4/import/app/appProvider.d.ts +4 -17
  43. package/dist/src/sync/v4/import/app/baseAppProvider.d.ts +45 -0
  44. package/dist/src/sync/v4/import/app/freestyleProvider.d.ts +7 -0
  45. package/dist/src/sync/v4/import/app/index.d.ts +3 -0
  46. package/dist/src/sync/v4/utils/utils.d.ts +4 -3
  47. package/dist/test/test-utils/utils.d.ts +1 -2
  48. package/dist/test/unit/generateAppSchema/generateAppSchemaFFV4.test.d.ts +1 -0
  49. package/dist/test/unit/generateGenericSchema/generateGenericSchemaFFV4.test.d.ts +1 -0
  50. package/package.json +4 -4
@@ -586,6 +586,7 @@
586
586
  },
587
587
  "columnIndex": {
588
588
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
589
+ "minimum": 0,
589
590
  "type": "number"
590
591
  },
591
592
  "leadingProperty": {
@@ -590,6 +590,7 @@
590
590
  },
591
591
  "columnIndex": {
592
592
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
593
+ "minimum": 0,
593
594
  "type": "number"
594
595
  },
595
596
  "leadingProperty": {
@@ -875,6 +875,7 @@
875
875
  },
876
876
  "columnIndex": {
877
877
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
878
+ "minimum": 0,
878
879
  "type": "number"
879
880
  },
880
881
  "leadingProperty": {
@@ -29,6 +29,10 @@
29
29
  "$ref": "#/definitions/FlexibleColumnLayoutV4",
30
30
  "description": "The flexible column layout allows users to see more details on the page, and to expand and collapse the screen areas. For the overview page, this layout is not relevant."
31
31
  },
32
+ "viewPath": {
33
+ "description": "Prefix that is preceding the view",
34
+ "type": "string"
35
+ },
32
36
  "title": {
33
37
  "description": "To change the application header, in your project artifacts, change the i18n property file\nfor your app under webapp/i18n/i18n.properties ->appTitle. Then, refer to the title as\n{{appTitle}} in the sap.app section of the manifest file.",
34
38
  "i18nClassification": "TIT: Title of the application",
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "$schema": {
5
+ "type": "string"
6
+ }
7
+ },
8
+ "additionalProperties": false,
9
+ "$schema": "http://json-schema.org/draft-07/schema#"
10
+ }
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "filterBar": {
10
10
  "$ref": "#/definitions/FilterBar",
11
- "description": "Filter bar"
11
+ "description": "Filter Bar"
12
12
  },
13
13
  "chart": {
14
14
  "$ref": "#/definitions/ALPChartView",
@@ -240,7 +240,7 @@
240
240
  "artifactType": "Manifest"
241
241
  },
242
242
  "createAtEnd": {
243
- "description": "In case of inline creation mode you can decide if the new row will be created at the end of the table, or direcly after the currently selected table. The default value is \"true\"",
243
+ "description": "In case of inline creation mode you can decide if the new row will be created at the end of the table, or directly after the currently selected table. The default value is \"true\"",
244
244
  "type": "boolean",
245
245
  "artifactType": "Manifest"
246
246
  }
@@ -595,7 +595,7 @@
595
595
  "artifactType": "Manifest"
596
596
  },
597
597
  "createAtEnd": {
598
- "description": "In case of inline creation mode you can decide if the new row will be created at the end of the table, or direcly after the currently selected table. The default value is \"true\"",
598
+ "description": "In case of inline creation mode you can decide if the new row will be created at the end of the table, or directly after the currently selected table. The default value is \"true\"",
599
599
  "type": "boolean",
600
600
  "artifactType": "Manifest"
601
601
  }
@@ -7,9 +7,9 @@ import type { FileData, File, ExportResults } from './sync/common/types';
7
7
  import type { ApplicationV2, ObjectPageConfig as ObjectPageConfigV2, ListReportConfig as ListReportConfigV2, OverviewPageConfig as OverviewPageConfigV2, AnalyticalListPageConfig as AnalyticalListPageConfigV2, Manifest as ManifestV2, FlexChangeLayer } from './v2';
8
8
  import type { ApplicationV4, ObjectPageConfig as ObjectPageConfigV4, ListReportConfig as ListReportConfigV4, Manifest as ManifestV4 } from './v4';
9
9
  import type { ConvertedMetadata } from '@sap-ux/vocabularies-types';
10
- import type { CustomPage, CustomTableColumn, CustomSection } from '@sap-ux/fe-fpm-writer';
11
10
  import type { Editor } from 'mem-fs-editor';
12
11
  import type { TemplateType } from './sync/common';
12
+ import type { CustomPage as FPMCustomPage, CustomTableColumn as FPMCustomTableColumn, CustomSection as FPMCustomSection, ObjectPage as FPMObjectPage } from '@sap-ux/fe-fpm-writer';
13
13
  export declare type MessageMetadataType = (object | string | number)[];
14
14
  /**
15
15
  * Interface used to define a logger for the specificaton API
@@ -92,7 +92,15 @@ export declare type GenerateAnalyticalListPageV4 = {
92
92
  manifest?: object;
93
93
  };
94
94
  };
95
- export declare type GenerateSchemaV4Type = GenerateListReportV4 | GenerateObjectPageV4 | GenerateAnalyticalListPageV4;
95
+ export declare type GenerateFreestylePageV4 = {
96
+ [SchemaType.FreestylePage]: {
97
+ genericSchema: object;
98
+ annotations: FileData[];
99
+ manifest: object;
100
+ logger?: ExtensionLogger;
101
+ };
102
+ };
103
+ export declare type GenerateSchemaV4Type = GenerateListReportV4 | GenerateObjectPageV4 | GenerateAnalyticalListPageV4 | GenerateFreestylePageV4;
96
104
  export interface GenerateSchemaV4 {
97
105
  [FioriElementsVersion.v4]: GenerateSchemaV4Type;
98
106
  }
@@ -292,7 +300,8 @@ export interface GenerateAppSchemaParameters {
292
300
  export declare enum CustomExtensionType {
293
301
  CustomPage = "CustomPage",
294
302
  CustomColumn = "CustomColumn",
295
- CustomSection = "CustomSection"
303
+ CustomSection = "CustomSection",
304
+ ObjectPage = "ObjectPage"
296
305
  }
297
306
  export interface GenerateCustomExtensionParams {
298
307
  customExtension: CustomExtensionType;
@@ -300,7 +309,7 @@ export interface GenerateCustomExtensionParams {
300
309
  data: CustomExtensionData;
301
310
  fsEditor?: Editor;
302
311
  }
303
- export declare type CustomExtensionData = CustomPage | CustomTableColumn | CustomSection;
312
+ export declare type CustomExtensionData = FPMCustomPage | FPMCustomTableColumn | FPMCustomSection | FPMObjectPage;
304
313
  export declare const FPMWriterMap: Map<CustomExtensionType, (basePath: string, data: CustomExtensionData, fs?: Editor) => Editor>;
305
314
  /**
306
315
  * API Version
@@ -7,7 +7,8 @@ export declare enum SchemaType {
7
7
  ObjectPage = "ObjectPage",
8
8
  ListReport = "ListReport",
9
9
  OverviewPage = "OverviewPage",
10
- AnalyticalListPage = "AnalyticalListPage"
10
+ AnalyticalListPage = "AnalyticalListPage",
11
+ FreestylePage = "FreestylePage"
11
12
  }
12
13
  /**
13
14
  * Return the generic schema for a given version and type
@@ -45,6 +45,7 @@ export interface TableCustomColumn {
45
45
  columnKey: string;
46
46
  /**
47
47
  * The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.
48
+ * @minimum 0
48
49
  */
49
50
  columnIndex?: number;
50
51
  /**
@@ -7,6 +7,7 @@ export * from './Table';
7
7
  export * from './ToolBar';
8
8
  export * from './Footer';
9
9
  export * from './AnalyticalListPageChart';
10
+ export * from './AnalyticalListPageKPI';
10
11
  export * from './ObjectPageHeader';
11
12
  export * from './ObjectPageLayout';
12
13
  export * from './ObjectPageSection';
@@ -6,6 +6,10 @@ export interface AppSettings extends CommonAppSettings {
6
6
  * The flexible column layout allows users to see more details on the page, and to expand and collapse the screen areas. For the overview page, this layout is not relevant.
7
7
  */
8
8
  flexibleColumnLayout?: FlexibleColumnLayoutV4;
9
+ /**
10
+ * Prefix that is preceding the view
11
+ */
12
+ viewPath?: string;
9
13
  }
10
14
  export interface PagesV4 extends Pages {
11
15
  [key: string]: PageV4;
@@ -36,7 +36,7 @@ export interface TableCreationMode {
36
36
  */
37
37
  name?: TableCreationModeType;
38
38
  /**
39
- * In case of inline creation mode you can decide if the new row will be created at the end of the table, or direcly after the currently selected table. The default value is "true"
39
+ * In case of inline creation mode you can decide if the new row will be created at the end of the table, or directly after the currently selected table. The default value is "true"
40
40
  */
41
41
  createAtEnd?: boolean;
42
42
  }
@@ -50,7 +50,7 @@ export interface ViewTableCreationMode {
50
50
  */
51
51
  name?: TableCreationModeType;
52
52
  /**
53
- * In case of inline creation mode you can decide if the new row will be created at the end of the table, or direcly after the currently selected table. The default value is "true"
53
+ * In case of inline creation mode you can decide if the new row will be created at the end of the table, or directly after the currently selected table. The default value is "true"
54
54
  */
55
55
  createAtEnd?: boolean;
56
56
  }
@@ -0,0 +1,2 @@
1
+ import type { PageConfig } from '../../common';
2
+ export declare type FreestylePageConfig = PageConfig;
@@ -13,7 +13,7 @@ export interface ListReportConfig extends PageConfig {
13
13
  */
14
14
  variantManagement?: VariantManagementTypeListReport;
15
15
  /**
16
- * Filter bar
16
+ * Filter Bar
17
17
  */
18
18
  filterBar?: FilterBar;
19
19
  /**
@@ -1,2 +1,3 @@
1
1
  export * from './ObjectPageConfig';
2
2
  export * from './ListReportConfig';
3
+ export * from './FreestylePageConfig';
@@ -61,6 +61,7 @@ export interface SapUi5RoutingTargetSettingsV4 {
61
61
  [key: string]: SapUi5RoutingTargetNavigationV4;
62
62
  };
63
63
  variantManagement?: string;
64
+ viewPath?: string;
64
65
  views?: {
65
66
  paths: Array<SapUi5ViewPath>;
66
67
  showCounts?: boolean;
@@ -80,6 +81,7 @@ export declare type RouterClass = typeof FIORI_FCL_ROUTER_CLASS | string;
80
81
  export interface SapUi5RoutingConfig {
81
82
  routerClass?: RouterClass;
82
83
  flexibleColumnLayout?: FlexibleColumnLayoutV4;
84
+ viewPath?: string;
83
85
  }
84
86
  export declare enum FlexibleColumnLayoutAggregations {
85
87
  BeginColumnPages = "beginColumnPages",
@@ -10,7 +10,7 @@ export interface Controllers {
10
10
  export declare abstract class AppProvider {
11
11
  readonly app: Application;
12
12
  readonly logger: ExtensionLogger;
13
- private readonly schemas;
13
+ readonly schemas: Files;
14
14
  unhandledControllers: Array<string>;
15
15
  protected constructor(manifest: ManifestV2 | ManifestV4, schemas: Files, home: string, pages: PagesBase, version: FioriElementsVersion, settings?: AppSettingsV2 | AppSettingsV4, logger?: ExtensionLogger);
16
16
  /**
@@ -228,7 +228,9 @@ export declare enum ViewTemplateType {
228
228
  ResponsiveTableCellsExtension = "ResponsiveTableCellsExtension"
229
229
  }
230
230
  export declare enum DefinitionName {
231
+ Action = "Action",
231
232
  Actions = "Actions",
233
+ ActionsLR = "Actions<LineItems>",
232
234
  ALPChart = "ALPChart",
233
235
  ALPChartView = "ALPChartView",
234
236
  ALPTable = "ALPTable",
@@ -247,7 +249,9 @@ export declare enum DefinitionName {
247
249
  Fields4Dialog = "Fields4Dialog",
248
250
  FilterBar = "FilterBar",
249
251
  Footer = "Footer",
252
+ FooterAction = "FooterAction",
250
253
  FooterActions = "FooterActions",
254
+ FooterActionsLR = "FooterActions<LineItems>",
251
255
  Form = "Form",
252
256
  FormAction = "FormAction",
253
257
  GenericActions = "GenericActions",
@@ -295,6 +299,7 @@ export declare enum DefinitionName {
295
299
  QuickVariantSelectionV4OP = "QuickVariantSelectionV4OP",
296
300
  RelatedFacetKeys = "RelatedFacetKeys",
297
301
  Sections = "Sections",
302
+ SelectionFields = "SelectionFields",
298
303
  Table = "Table",
299
304
  TableSPV = "TableSPV",
300
305
  TableColumn = "TableColumn",
@@ -3,6 +3,7 @@ import type { ExtensionLogger } from '../../apiTypes';
3
3
  import type { FacetConfigs, FileData, FacetConfig, FacetSection, SchemaFilePath, anyFacetType } from './types';
4
4
  import type { Manifest } from '../../specification/common';
5
5
  import type { MetadataInstanceInterface } from './decoration/factory';
6
+ import type { SapUiAppPageV4, SapUi5RoutingTargetCustomPageV4 } from '../../specification/v4';
6
7
  import type { DataFieldAbstractTypes } from '@sap-ux/vocabularies-types/vocabularies/UI';
7
8
  import type { ConvertedMetadata, EntityType, PropertyPath } from '@sap-ux/vocabularies-types';
8
9
  import { FioriElementsVersion, PageType, PageTypeV4 } from '../../specification/common';
@@ -13,7 +14,8 @@ export declare enum TemplateType {
13
14
  ListReportObjectPageV4 = "ListReportObjectPageV4",
14
15
  OverviewPageV2 = "OverviewPageV2",
15
16
  AnalyticalListPageV2 = "AnalyticalListPageV2",
16
- AnalyticalListPageV4 = "AnalyticalListPageV4"
17
+ AnalyticalListPageV4 = "AnalyticalListPageV4",
18
+ FreestylePageV4 = "FreestylePageV4"
17
19
  }
18
20
  export declare const DEFINITION_LINK_PREFIX = "#/definitions/";
19
21
  /**
@@ -73,7 +75,7 @@ export declare function getPageTypeV2(name: string): PageType | undefined;
73
75
  * Return the page type for a given V4 page in manifest
74
76
  * @param name - page component name
75
77
  */
76
- export declare function getPageTypeV4(name: string): PageTypeV4 | undefined;
78
+ export declare function getPageTypeV4(v4App: SapUiAppPageV4 | SapUi5RoutingTargetCustomPageV4): PageTypeV4 | undefined;
77
79
  /**
78
80
  * Finds the alias for a given namespace in the references' section of the converted service metadata
79
81
  * @param {string} namespace - complete namespace, e.g. 'com.sap.vocabularies.UI.v1'
@@ -94,7 +96,7 @@ export declare function getSectionFacet(facetDefinition: anyFacetType, sourceEnt
94
96
  /**
95
97
  * Finds the alias for a given namespace in the references' section of the converted service metadata.
96
98
  * An empty object is created if the path element does not exist yet.
97
- * Exception: if an empty array is the next element of the 'path' definition, an empty array is created instaed of an empty object.
99
+ * Exception: if an empty array is the next element of the 'path' definition, an empty array is created instead of an empty object.
98
100
  * @param {object} manifest - manifest that is being modified during export
99
101
  * @param {string} path - path of the property in the manifest
100
102
  * @param {string} targetAnnotation - target annotation (optional)
@@ -208,7 +210,7 @@ export declare type NextDefinition = {
208
210
  };
209
211
  /**
210
212
  * Recursive function to determine the next config part, next definition in the app schema and the title
211
- * @param appSchema - app-spcific JSON schema
213
+ * @param appSchema - app-specific JSON schema
212
214
  * @param title - default title
213
215
  * @param currentConfigObject - current part of the configuration that gets traversed
214
216
  * @param propertyDefinition - definition of a given property in the app schema
@@ -226,3 +228,16 @@ export declare function getNextTargetDefinition(appSchema: object, title: string
226
228
  * @returns
227
229
  */
228
230
  export declare const arrayCombineMerge: (target: any, source: any, options: any) => string[];
231
+ /**
232
+ * Converts an enum into a CSV
233
+ * @param {object} manifestSection - manifestSection where the key exists
234
+ * @param {object} configPart - Property as mentioned in config file
235
+ * @param {string} key - Property to be exported to manifest
236
+ */
237
+ export declare function convertEnumToCSV(manifestSection: any, configPart: any, key: string): void;
238
+ /**
239
+ * Converts an action ID from the internal format (schema, config) to the stable ID representation
240
+ * @param actionId - the (unique) internal format of the action ID
241
+ * @returns the converted action ID
242
+ */
243
+ export declare function convertActionKeyToStableId(actionId: string): string;
@@ -7,9 +7,10 @@ export declare const SAP_UI_TABLE = "sap.ui.table";
7
7
  /**
8
8
  * Method which receives fragment definition node and reads root column definition.
9
9
  * @param {unknown} definition - Application or Page Config object.
10
+ * @param {unknown} fragment - fragment definition
10
11
  * @returns {unknown | undefined} Root column read from definition.
11
12
  */
12
- export declare function getRootCustomColumnFromFragmentJSON(definition: unknown): string | unknown | undefined;
13
+ export declare function getRootCustomColumnFromFragmentJSON(definition: unknown, fragment?: unknown): string | unknown | undefined;
13
14
  /**
14
15
  * Identifies the right extensions based on a pattern, then deletes all corresponding columns and cells
15
16
  * @param manifestSection - Section in manifest.json comprising the extensions
@@ -1,6 +1,5 @@
1
1
  /// <reference types="@sapui5/ts-types-esm" />
2
- import type { AnalyticalTable as AnalyticalTableConfig, TableALP as TableALPConfig, CommonTableSettings as CommonTableConfig, DefaultContentView, DefaultFilterMode, GenericColumns, GridTable as GridTableConfig, LoadDataOnAppLaunchSettings, QuickVariantSelectionX as QuickVariantSelectionXInterface, ResponsiveTable as ResponsiveTableConfig, TreeTable as TreeTableConfig, Strategy, FieldPath as FieldPathInterface, QuickVariant, QuickVariantX, CreationFieldKeys, ToolBar } from '../../../../specification/v2';
3
- import { TableTypeV2 } from '../../../../specification/v2';
2
+ import type { AnalyticalTable as AnalyticalTableConfig, TableALP as TableALPConfig, CommonTableSettings as CommonTableConfig, DefaultContentView, DefaultFilterMode, GenericColumns, GridTable as GridTableConfig, LoadDataOnAppLaunchSettings, QuickVariantSelectionX as QuickVariantSelectionXInterface, ResponsiveTable as ResponsiveTableConfig, TreeTable as TreeTableConfig, Strategy, FieldPath as FieldPathInterface, QuickVariant, QuickVariantX, CreationFieldKeys, ToolBar, TableTypeV2 } from '../../../../specification/v2';
4
3
  import type { ControlTypeFunction, DeprecatedProperties } from '../../../common';
5
4
  import type { PopinLayout } from 'sap/m/library';
6
5
  import type { smarttable } from 'sap/ui/comp/library';
@@ -6,6 +6,7 @@ import type { SapUiAppPageV2 } from '../../../../specification/v2';
6
6
  import { TableTypeV2 } from '../../../../specification/v2';
7
7
  import type { ExtensionLogger } from '../../../../apiTypes';
8
8
  export declare type LROPConfigsType = ListReportConfig | AnalyticalListPageConfig | ObjectPageConfig;
9
+ export declare function convertActionKey(actionProperty: string): string;
9
10
  /**
10
11
  * Unescapes the selector ID of a flex change
11
12
  * @param selectorId - escaped selector ID
@@ -1,13 +1,15 @@
1
1
  import type { TreeTable, ResponsiveTable, AnalyticalTable, GridTable, TableALP } from '../../../../specification/v2/index';
2
+ import type { Definition } from 'typescript-json-schema';
2
3
  export declare type FlexForTransfer = {
3
4
  controlId: string;
4
5
  controlType: string;
5
6
  propertyId: string;
6
7
  facetId?: string;
7
8
  newValue: any;
9
+ creation: string;
8
10
  };
9
11
  export interface FlexChangesForTransfer {
10
12
  [controlId: string]: FlexForTransfer;
11
13
  }
12
14
  export declare type ConfigTableType = ResponsiveTable | TreeTable | AnalyticalTable | GridTable | TableALP;
13
- export declare function addFlexForTable(config: ConfigTableType, change: FlexForTransfer, jsonSchema: object): void;
15
+ export declare function addFlexForTable(config: ConfigTableType, change: FlexForTransfer, jsonSchema: Definition): void;
@@ -62,7 +62,8 @@ export declare type ObjectPageV2ConfigParameters = {
62
62
  objectPageConfig?: ObjectPageConfig;
63
63
  };
64
64
  export declare type SectionPartProperties = {
65
- id: string;
66
- type: SectionTypeV2;
67
- schema: Definition;
65
+ id?: string;
66
+ type?: SectionTypeV2;
67
+ schema?: Definition;
68
+ title?: string;
68
69
  };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Sync class for import and export of V4 freestyle page
3
+ */
4
+ export declare class FreestylePage {
5
+ }
@@ -9,5 +9,5 @@ export declare class ListReport implements ListReportConfigV4 {
9
9
  variantManagement?: VariantManagementTypeListReport;
10
10
  defaultPath?: DefaultPathType;
11
11
  defaultTemplateAnnotationPath?: string;
12
- filterbar?: FilterBar;
12
+ filterBar?: FilterBar;
13
13
  }
@@ -1,2 +1,3 @@
1
1
  export * from './ListReport';
2
2
  export * from './ObjectPage';
3
+ export * from './FreestylePage';
@@ -0,0 +1,10 @@
1
+ import type { GenerateAppSchemaParameters } from '../../../apiTypes';
2
+ /**
3
+ * Generates an app specific schema for the FE V4 Freestyle page from the generic schema.
4
+ * Generic types are replaced by information from the app specific annotations.
5
+ * @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
6
+ * @param genericSchema - generic JSON schema of an object page
7
+ *
8
+ * @returns {object} application-specific schema of the freestyle page
9
+ */
10
+ export declare function generateFreestyleSchemaV4(_generateParameters: GenerateAppSchemaParameters, genericSchema: object): object;
@@ -28,3 +28,15 @@ export declare function generateObjectPageInterfaceV4(genericSchema: object, ent
28
28
  * @returns the app specific JSON schema
29
29
  */
30
30
  export declare function generateListReportInterfaceV4(templateType: TemplateType, genericSchema: object, entitySetName: string, annotations: FileData[], logger?: ExtensionLogger, manifest?: object): object;
31
+ /**
32
+ * Generates the app specific schema of a freestyle page out of the generic schema.
33
+ * Generic types are replaced by information from the app specific annotations.
34
+ * @param {TemplateType} templateType - the template type allows distinguishing LR and ALP
35
+ * @param genericSchema - generic JSON schema of a list report
36
+ * @param annotations - list of all annotation files (file content plus URI as identifier)
37
+ * @param {ExtensionLogger} logger - Logger class for logging messages
38
+ * @param manifest - manifest.json of the app
39
+ *
40
+ * @returns the app specific JSON schema
41
+ */
42
+ export declare function generateFreestyleInterfaceV4(templateType: TemplateType, genericSchema: object, annotations: FileData[], manifest?: object, entitySetName?: string, logger?: ExtensionLogger): object;
@@ -1,3 +1,4 @@
1
1
  export { generateListReportSchemaV4 } from './listReport';
2
2
  export { generateObjectPageSchemaV4 } from './objectPage';
3
- export { generateListReportInterfaceV4, generateObjectPageInterfaceV4 } from './generate';
3
+ export { generateFreestyleSchemaV4 } from './freestylePage';
4
+ export { generateListReportInterfaceV4, generateObjectPageInterfaceV4, generateFreestyleInterfaceV4 } from './generate';
@@ -1,20 +1,7 @@
1
- import { AppProvider } from '../../../common/appProvider';
2
- import type { Files } from '../../../common';
3
- import { TemplateType } from '../../../common';
4
- import type { SapUiAppPagesV4, Manifest, Pages } from '../../../../specification/v4';
1
+ import type { Files, TemplateType } from '../../../common';
5
2
  import type { ExtensionLogger } from '../../../..';
6
- export declare enum Constants {
7
- OptionalQuery = ":?query:",
8
- Component = "sap/fe/AppComponent",
9
- Namespace = "sap.fe.templates"
10
- }
11
- /**
12
- * Determines the Pages(app.json) using routing configuration from manifest and creates the configuration for each page
13
- * @param manifest - manifest.json of the app
14
- * @param schemas - list of JSON schemas of all pages
15
- */
16
- export declare function getPagesAndConfigs(manifest: Manifest, schemas: Files, templateType: TemplateType, logger?: ExtensionLogger): Pages;
17
- export declare class V4AppProvider extends AppProvider {
3
+ import type { Manifest } from '../../../../specification/v4';
4
+ import { BaseAppProvider } from './baseAppProvider';
5
+ export declare class V4AppProvider extends BaseAppProvider {
18
6
  constructor(manifest: Manifest, schemas: Files, templateType: TemplateType, logger?: ExtensionLogger);
19
7
  }
20
- export declare function getPages(manifest: Manifest, targetName: string): SapUiAppPagesV4;
@@ -0,0 +1,45 @@
1
+ import { AppProvider } from '../../../common/appProvider';
2
+ import { AppSettings } from '../../application';
3
+ import type { Files } from '../../../common';
4
+ import { TemplateType } from '../../../common';
5
+ import type { SapUiAppPagesV4, SapUi5RoutingV4, Manifest, Pages, Page, RoutingTargetOptions } from '../../../../specification/v4';
6
+ import { PageTypeV4 } from '../../../../specification/common';
7
+ import type { ExtensionLogger } from '../../../..';
8
+ export declare enum Constants {
9
+ OptionalQuery = ":?query:",
10
+ Component = "sap/fe/AppComponent",
11
+ Namespace = "sap.fe.templates"
12
+ }
13
+ export declare const unhandledControllers: Array<string>;
14
+ export declare type ConversionParameters = {
15
+ target: RoutingTargetOptions;
16
+ pageType: PageTypeV4;
17
+ manifest: Manifest;
18
+ schemas: Files;
19
+ logger: ExtensionLogger;
20
+ page: Page;
21
+ id: string;
22
+ templateType: TemplateType;
23
+ };
24
+ /**
25
+ * Determines the Pages(app.json) using routing configuration from manifest and creates the configuration for each page
26
+ * @param manifest - manifest.json of the app
27
+ * @param schemas - list of JSON schemas of all pages
28
+ */
29
+ export declare function getPagesAndConfigs(manifest: Manifest, schemas: Files, templateType: TemplateType, logger?: ExtensionLogger): Pages;
30
+ /**
31
+ * Get the id of the page that is to open when the application is started.
32
+ * @param routing UI5 routing configuration
33
+ */
34
+ export declare function getHome(routing: SapUi5RoutingV4): string;
35
+ /**
36
+ * Method which detects app settings from manifest.
37
+ * Currently only one setting is detected -Flexible Column Layout
38
+ * @param routing UI5 routing configuration.
39
+ * @return {AppSettings} Application settings.
40
+ */
41
+ export declare function getSettings(routing: SapUi5RoutingV4): AppSettings;
42
+ export declare function getPages(manifest: Manifest, targetName: string): SapUiAppPagesV4;
43
+ export declare abstract class BaseAppProvider extends AppProvider {
44
+ constructor(manifest: Manifest, schemas: Files, templateType: TemplateType, logger?: ExtensionLogger);
45
+ }
@@ -0,0 +1,7 @@
1
+ import type { Files, TemplateType } from '../../../common';
2
+ import type { ExtensionLogger } from '../../../..';
3
+ import type { Manifest } from '../../../../specification/v4';
4
+ import { BaseAppProvider } from './baseAppProvider';
5
+ export declare class V4FreestyleAppProvider extends BaseAppProvider {
6
+ constructor(manifest: Manifest, schemas: Files, templateType: TemplateType, logger?: ExtensionLogger);
7
+ }
@@ -0,0 +1,3 @@
1
+ export { getPages, getHome, getPagesAndConfigs, getSettings } from './baseAppProvider';
2
+ export { V4AppProvider } from './appProvider';
3
+ export { V4FreestyleAppProvider } from './freestyleProvider';
@@ -11,7 +11,7 @@ import type { Definition } from 'typescript-json-schema';
11
11
  * @param logger - logger for error messages
12
12
  * @param customColumnDefinitionName - custom column definition name
13
13
  * @param sectionId - identifier of the current object page section in schema
14
- * @param sectionIdInManfest - identifier of the current object page section in manifest
14
+ * @param sectionIdInManifest - identifier of the current object page section in manifest
15
15
  */
16
16
  export declare function addCustomColumnDefinition(appSchema: object, v4Page: SapUiAppPageV4, logger: ExtensionLogger, customColumnDefinitionName?: string, sectionId?: string, sectionIdInManifest?: string): void;
17
17
  /**
@@ -30,7 +30,7 @@ export declare function handleActionRecord(appSchema: Definition, entityType: En
30
30
  * @param lineItemAnnotation - the UI.LineItem annotation, comprising all records
31
31
  * @param entityType - the entity type as part of the AVT ConvertedMetadata
32
32
  * @param {ConvertedMetadata} oDataServiceAVT - complete service information, as returned by Annotation Vocabularies Tool
33
- * @param lineItemId - in case of OP the paramter must be passed to distinguish the OP tables;
33
+ * @param lineItemId - in case of OP the parameter must be passed to distinguish the OP tables;
34
34
  * in case of LR or ALP 'LineItems' is passed.
35
35
  * @param columnDefinitionName - name of the column definition, i.e. TableColumn or ObjectPageTableColumn
36
36
  * @param customColumnDefinitionName - name of the custom column definition
@@ -42,6 +42,7 @@ export declare function addLineItemsType(appSchema: Definition, lineItemAnnotati
42
42
  * @param lineItemId - ID of the current line item in schema
43
43
  * @param v4Page - current page in manifest
44
44
  * @param positionName - ID of the definition of custom column position in schema
45
+ * @param sectionIdInManifest - identifier of the current object page section in manifest
45
46
  */
46
47
  export declare function addFragmentEnumForAnchor(appSchema: Definition, lineItemId: string, v4Page: SapUiAppPageV4, positionName?: DefinitionName, sectionIdInManifest?: string): void;
47
48
  /**
@@ -59,4 +60,4 @@ export declare function findPageV4(pages: SapUiAppPageV4[], pageName: string, en
59
60
  * @param {GenerateAppSchemaParameters} generateParameters - object comprising all input parameters
60
61
  * @returns the right definition name for the table in the schema
61
62
  */
62
- export declare function alignSchemaWithTemplateType(appSchema: Definition, generateParameters: GenerateAppSchemaParameters): string;
63
+ export declare function alignSchemaWithTemplateType(appSchema: Definition, generateParameters: GenerateAppSchemaParameters): DefinitionName.Table | DefinitionName.ALPTableView;
@@ -1,5 +1,4 @@
1
- import type { FileData } from '../../src';
2
- import type { ExtensionLogger } from '../../src';
1
+ import type { FileData, ExtensionLogger } from '../../src';
3
2
  import type { Location } from '../../src/extensionLogger';
4
3
  import type { ExportResults } from '../../src/sync/common';
5
4
  export declare class Logger implements ExtensionLogger {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap/ux-specification",
3
- "version": "1.96.13",
3
+ "version": "1.96.16",
4
4
  "displayName": "SAP Fiori tools - Specification",
5
5
  "description": "SAP Fiori tools - Specification",
6
6
  "files": [
@@ -13,8 +13,8 @@
13
13
  "v4": "dist/specification/v4/index-min.js"
14
14
  },
15
15
  "engines": {
16
- "node": ">=12.22.5",
17
- "yarn": ">=1.22.5"
16
+ "node": ">=14.16.0",
17
+ "yarn": ">=1.22.18"
18
18
  },
19
19
  "scripts": {
20
20
  "clean": "rimraf ./dist ./schemas",
@@ -46,7 +46,7 @@
46
46
  "publisher": "SAPSE",
47
47
  "license": "SEE LICENSE IN LICENSE",
48
48
  "dependencies": {
49
- "@sap-ux/fe-fpm-writer": "0.6.1"
49
+ "@sap-ux/fe-fpm-writer": "0.11.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@sap-ux/annotation-converter": "0.5.7",