@sap/ux-specification 1.96.4 → 1.96.9

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 (165) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/documentation/runDocu-min.js +1 -1
  3. package/dist/documentation/styleDocu.css +7 -14
  4. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  5. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  6. package/dist/documentation/v2/v2-ListReport.html +1 -1
  7. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  8. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  9. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  10. package/dist/documentation/v4/v4-ListReport.html +1 -1
  11. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  12. package/dist/index-min.js +1 -1
  13. package/dist/schemas/v2/AnalyticalListPageConfig.json +48 -24
  14. package/dist/schemas/v2/ApplicationV2.json +14 -14
  15. package/dist/schemas/v2/ListReportConfig.json +48 -24
  16. package/dist/schemas/v2/OverviewPageConfig.json +29 -28
  17. package/dist/schemas/v4/ApplicationV4.json +9 -5
  18. package/dist/schemas/v4/ListReportConfig.json +609 -209
  19. package/dist/schemas/v4/ObjectPageConfig.json +6 -38
  20. package/dist/specification/v2/index-min.js +1 -1
  21. package/dist/specification/v4/index-min.js +1 -1
  22. package/dist/src/api.d.ts +3 -3
  23. package/dist/src/apiTypes.d.ts +17 -20
  24. package/dist/src/extensionLogger.d.ts +1 -1
  25. package/dist/src/project.d.ts +1 -1
  26. package/dist/src/specification/common/Application.d.ts +24 -4
  27. package/dist/src/specification/common/page.d.ts +1 -1
  28. package/dist/src/specification/common/webapp/manifest/Manifest.d.ts +6 -6
  29. package/dist/src/specification/common/webapp/manifest/sapUi5.d.ts +1 -1
  30. package/dist/src/specification/schemaAccess.d.ts +1 -1
  31. package/dist/src/specification/v2/ApplicationV2.d.ts +3 -17
  32. package/dist/src/specification/v2/controls/Facets.d.ts +1 -1
  33. package/dist/src/specification/v2/controls/FilterBar.d.ts +47 -31
  34. package/dist/src/specification/v2/controls/Footer.d.ts +2 -2
  35. package/dist/src/specification/v2/controls/ObjectPageForm.d.ts +1 -1
  36. package/dist/src/specification/v2/controls/ObjectPageHeader.d.ts +1 -1
  37. package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +2 -2
  38. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +2 -2
  39. package/dist/src/specification/v2/controls/ObjectPageToolBar.d.ts +1 -1
  40. package/dist/src/specification/v2/controls/Table.d.ts +3 -3
  41. package/dist/src/specification/v2/controls/ToolBar.d.ts +1 -1
  42. package/dist/src/specification/v2/page.d.ts +1 -1
  43. package/dist/src/specification/v2/pages/AnalyticalListPageConfig.d.ts +4 -4
  44. package/dist/src/specification/v2/pages/ListReportConfig.d.ts +2 -2
  45. package/dist/src/specification/v2/pages/ObjectPageConfig.d.ts +3 -3
  46. package/dist/src/specification/v2/pages/OverviewPageConfig.d.ts +38 -4
  47. package/dist/src/specification/v2/webapp/manifest/sapUi5.d.ts +2 -2
  48. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.d.ts +2 -2
  49. package/dist/src/specification/v4/ApplicationV4.d.ts +4 -14
  50. package/dist/src/specification/v4/controls/ObjectPageHeader.d.ts +1 -1
  51. package/dist/src/specification/v4/controls/ObjectPageHeaderSection.d.ts +2 -14
  52. package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +2 -2
  53. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +3 -3
  54. package/dist/src/specification/v4/controls/ObjectPageToolBar.d.ts +1 -1
  55. package/dist/src/specification/v4/controls/Table.d.ts +162 -25
  56. package/dist/src/specification/v4/controls/ToolBar.d.ts +26 -1
  57. package/dist/src/specification/v4/page.d.ts +2 -2
  58. package/dist/src/specification/v4/pages/ListReportConfig.d.ts +17 -3
  59. package/dist/src/specification/v4/pages/ObjectPageConfig.d.ts +2 -2
  60. package/dist/src/specification/v4/pages/index.d.ts +0 -1
  61. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.d.ts +77 -0
  62. package/dist/src/specification/v4/webapp/manifest/sapUi5.d.ts +12 -3
  63. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.d.ts +20 -1
  64. package/dist/src/sync/common/appProvider.d.ts +6 -5
  65. package/dist/src/sync/common/decoration/control.d.ts +1 -1
  66. package/dist/src/sync/common/decoration/decorators.d.ts +1 -1
  67. package/dist/src/sync/common/decoration/factory.d.ts +3 -3
  68. package/dist/src/sync/common/decoration/flex.d.ts +3 -3
  69. package/dist/src/sync/common/flexUtils.d.ts +4 -4
  70. package/dist/src/sync/common/generate/objectPage.d.ts +5 -3
  71. package/dist/src/sync/common/generate/utils.d.ts +43 -9
  72. package/dist/src/sync/common/import/utils.d.ts +4 -3
  73. package/dist/src/sync/common/importProject.d.ts +4 -4
  74. package/dist/src/sync/common/types.d.ts +28 -6
  75. package/dist/src/sync/common/utils.d.ts +18 -8
  76. package/dist/src/sync/i18n.d.ts +1 -1
  77. package/dist/src/sync/v2/application.d.ts +2 -2
  78. package/dist/src/sync/v2/export/controls/Action.d.ts +1 -1
  79. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.d.ts +1 -1
  80. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.d.ts +1 -1
  81. package/dist/src/sync/v2/export/controls/Card.d.ts +1 -1
  82. package/dist/src/sync/v2/export/controls/Field.d.ts +1 -1
  83. package/dist/src/sync/v2/export/controls/FilterBar.d.ts +17 -4
  84. package/dist/src/sync/v2/export/controls/FormAction.d.ts +1 -1
  85. package/dist/src/sync/v2/export/controls/Fragment.d.ts +5 -11
  86. package/dist/src/sync/v2/export/controls/ObjectPageChart.d.ts +1 -1
  87. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.d.ts +3 -3
  88. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +1 -1
  89. package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts +1 -1
  90. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +1 -1
  91. package/dist/src/sync/v2/export/controls/ObjectPageLayout.d.ts +1 -1
  92. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +6 -6
  93. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +3 -3
  94. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.d.ts +1 -1
  95. package/dist/src/sync/v2/export/controls/Table.d.ts +3 -2
  96. package/dist/src/sync/v2/export/controls/TableColumn.d.ts +2 -2
  97. package/dist/src/sync/v2/export/controls/ToolBar.d.ts +1 -1
  98. package/dist/src/sync/v2/export/export.d.ts +3 -3
  99. package/dist/src/sync/v2/export/exportPage.d.ts +2 -2
  100. package/dist/src/sync/v2/export/factory.d.ts +2 -1
  101. package/dist/src/sync/v2/export/manifest.d.ts +1 -1
  102. package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts +4 -4
  103. package/dist/src/sync/v2/export/pages/ListReport.d.ts +2 -2
  104. package/dist/src/sync/v2/export/pages/ObjectPage.d.ts +3 -3
  105. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +3 -2
  106. package/dist/src/sync/v2/export/view-controller-generator.d.ts +2 -2
  107. package/dist/src/sync/v2/generate/analyticalListReport.d.ts +1 -1
  108. package/dist/src/sync/v2/generate/generate.d.ts +2 -2
  109. package/dist/src/sync/v2/generate/listReport.d.ts +7 -4
  110. package/dist/src/sync/v2/generate/objectPage.d.ts +1 -1
  111. package/dist/src/sync/v2/generate/overviewPage.d.ts +1 -1
  112. package/dist/src/sync/v2/generate/utils.d.ts +12 -5
  113. package/dist/src/sync/v2/import/app/appProvider.d.ts +4 -4
  114. package/dist/src/sync/v2/import/app/ovpProvider.d.ts +3 -3
  115. package/dist/src/sync/v2/import/common/index.d.ts +6 -5
  116. package/dist/src/sync/v2/import/controls/table.d.ts +1 -1
  117. package/dist/src/sync/v2/import/pages/analyticalListPage.d.ts +2 -2
  118. package/dist/src/sync/v2/import/pages/listReport.d.ts +2 -2
  119. package/dist/src/sync/v2/import/pages/objectPage.d.ts +1 -1
  120. package/dist/src/sync/v2/import/pages/overviewPage.d.ts +2 -2
  121. package/dist/src/sync/v2/import/utils.d.ts +3 -2
  122. package/dist/src/sync/v2/types.d.ts +7 -7
  123. package/dist/src/sync/v4/application.d.ts +9 -5
  124. package/dist/src/sync/v4/export/controls/FilterBar.d.ts +1 -1
  125. package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +2 -1
  126. package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts +1 -1
  127. package/dist/src/sync/v4/export/controls/ObjectPageHeaderSection.d.ts +1 -1
  128. package/dist/src/sync/v4/export/controls/ObjectPageLayout.d.ts +1 -1
  129. package/dist/src/sync/v4/export/controls/ObjectPageTable.d.ts +1 -1
  130. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.d.ts +1 -1
  131. package/dist/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts +1 -1
  132. package/dist/src/sync/v4/export/controls/Table.d.ts +125 -9
  133. package/dist/src/sync/v4/export/controls/TableColumn.d.ts +39 -1
  134. package/dist/src/sync/v4/export/controls/ToolBar.d.ts +1 -1
  135. package/dist/src/sync/v4/export/controls/ToolBarAction.d.ts +4 -1
  136. package/dist/src/sync/v4/export/export.d.ts +2 -2
  137. package/dist/src/sync/v4/export/exportCustomColumn.d.ts +2 -2
  138. package/dist/src/sync/v4/export/factory.d.ts +2 -1
  139. package/dist/src/sync/v4/export/flexibleColumnLayout.d.ts +1 -1
  140. package/dist/src/sync/v4/export/manifest.d.ts +2 -2
  141. package/dist/src/sync/v4/export/pages/ListReport.d.ts +8 -3
  142. package/dist/src/sync/v4/export/pages/ObjectPage.d.ts +2 -2
  143. package/dist/src/sync/v4/export/pages/index.d.ts +0 -1
  144. package/dist/src/sync/v4/export/types.d.ts +7 -5
  145. package/dist/src/sync/v4/export/utils.d.ts +1 -1
  146. package/dist/src/sync/v4/generate/generate.d.ts +5 -4
  147. package/dist/src/sync/v4/generate/listReport.d.ts +2 -4
  148. package/dist/src/sync/v4/generate/objectPage.d.ts +1 -1
  149. package/dist/src/sync/v4/import/app/appProvider.d.ts +6 -5
  150. package/dist/src/sync/v4/import/fragment.d.ts +2 -2
  151. package/dist/src/sync/v4/import/index.d.ts +0 -1
  152. package/dist/src/sync/v4/import/pages/listReport.d.ts +8 -7
  153. package/dist/src/sync/v4/import/pages/objectPage.d.ts +2 -2
  154. package/dist/src/sync/v4/import/utils.d.ts +2 -2
  155. package/dist/src/sync/v4/types.d.ts +2 -2
  156. package/dist/src/sync/v4/utils/utils.d.ts +14 -12
  157. package/dist/test/test-data/flexChange/v2/stta.prod.man/index.d.ts +1 -1
  158. package/dist/test/test-projects/index.d.ts +1 -1
  159. package/dist/test/test-utils/utils.d.ts +5 -4
  160. package/package.json +12 -12
  161. package/dist/documentation/v4/v4-AnalyticalListPage.html +0 -49
  162. package/dist/schemas/v4/AnalyticalListPageConfig.json +0 -481
  163. package/dist/src/specification/v4/pages/AnalyticalListPageConfig.d.ts +0 -13
  164. package/dist/src/sync/v4/export/pages/AnalyticalListPage.d.ts +0 -8
  165. package/dist/src/sync/v4/import/pages/analyticalListPage.d.ts +0 -11
@@ -2,14 +2,48 @@
2
2
  * This file is is based on a json schema to typescript generator and adjusted to our needs.
3
3
  * JSON schema source: https://github.wdf.sap.corp/AppDescriptor/manifest/blob/master/schema/sap.ovp/subschema_sapovp.json
4
4
  */
5
- import { PageConfig } from '../../common/page';
6
- import { ListCard, AnalyticalCard, StackCard, LinklistCard, TableCard, CustomCard } from '../controls/Card';
7
- import { DateRange } from '../controls/FilterBar';
5
+ import type { PageConfig } from '../../common/page';
6
+ import type { ListCard, AnalyticalCard, StackCard, LinklistCard, TableCard, CustomCard } from '../controls/Card';
7
+ import type { DateRange, DateRangeType, DefaultDateRange, FilterType } from '../controls/FilterBar';
8
+ /**
9
+ * @isViewNode false
10
+ */
11
+ export interface SelectedValues {
12
+ /**
13
+ * The selectedValues property is a set of standard date range values that you want to include or exclude.
14
+ */
15
+ selectedValues?: DateRangeType[];
16
+ /**
17
+ * The exclude property is set to True by default. This means excluding all values given as selectedValues from the list of date range filters. If the exclude property is set to False, the application shows only selected values in the list of date range filters.
18
+ */
19
+ exclude?: boolean;
20
+ /**
21
+ * This property references a JS class, which you use to modify the date range value list. You can either remove standard data range values or add custom values.
22
+ * The customDateRangeImplementation setting takes priority followed by filter and selectedValues when excluding date range types.
23
+ */
24
+ customDateRangeImplementation?: string;
25
+ /**
26
+ * You can use the filter settings to include and exclude specific date range values.
27
+ */
28
+ filter?: FilterType[];
29
+ /**
30
+ * You can set a default value for semantic date range.
31
+ */
32
+ defaultValue?: DefaultDateRange;
33
+ }
34
+ export interface DateRangeOVP extends DateRange {
35
+ /**
36
+ * For a fields' list you can define the set of standard date range values separately.
37
+ */
38
+ fields?: {
39
+ [field: string]: SelectedValues;
40
+ };
41
+ }
8
42
  export declare type FilterSettingsType = {
9
43
  /**
10
44
  * You can define date ranges, such as lastYear or nextQuarter on the Smart Filter Bar
11
45
  */
12
- dateSettings?: DateRange;
46
+ dateSettings?: DateRangeOVP;
13
47
  };
14
48
  export declare enum ContainerLayoutType {
15
49
  fixed = "fixed",
@@ -1,5 +1,5 @@
1
- import { SapUi5RootView, SapUi5OdataModel, SapUi5ResourceModel, SapUi5RoutingRoute, SAPUI5_FRAGMENT_CLASS, SAPUI5_VIEW_CLASS, ViewTypes } from '../../../common/webapp/manifest/sapUi5';
2
- import { ManifestSection } from '../../../v4';
1
+ import type { SapUi5RootView, SapUi5OdataModel, SapUi5ResourceModel, SapUi5RoutingRoute, SAPUI5_FRAGMENT_CLASS, SAPUI5_VIEW_CLASS, ViewTypes } from '../../../common/webapp/manifest/sapUi5';
2
+ import type { ManifestSection } from '../../../v4';
3
3
  export interface SapUi5 {
4
4
  flexEnabled?: boolean;
5
5
  resources?: object;
@@ -1,5 +1,5 @@
1
- import { SapUiGenericAppPageSettings } from '../../../common/page';
2
- import { FlexibleColumnLayout, FlexibleColumnLayoutType } from '../../../common';
1
+ import type { SapUiGenericAppPageSettings } from '../../../common/page';
2
+ import type { FlexibleColumnLayout, FlexibleColumnLayoutType } from '../../../common';
3
3
  export interface SapUiAppV2 {
4
4
  pages: SapUiAppPagesV2;
5
5
  _version?: string;
@@ -1,17 +1,7 @@
1
- import { Application, FlexibleColumnLayout, PageTypeV4, PageBase } from '../common';
2
- import { Pages, PageView } from './page';
3
- import { FlexibleColumnLayoutAggregations } from '.';
4
- export interface AppSettings {
5
- /**
6
- * To change the application header, in your project artifacts, change i18n property file for your app under webapp/i18n/i18n.properties ->appTitle. Then, refer to the title as {{appTitle}} in the sap.app section of the manifest file.
7
- * @i18nClassification TIT: Title of the application
8
- */
9
- title?: string;
10
- /**
11
- * To change the application header, in your project artifacts, change i18n property file for your app under webapp/i18n/i18n.properties ->appDescription. Then, refer to the description as {{appDescription}} in the sap.app section of the manifest file.
12
- * @i18nClassification TIT: Description of the application
13
- */
14
- description?: string;
1
+ import type { Application, CommonAppSettings, FlexibleColumnLayout, PageTypeV4, PageBase } from '../common';
2
+ import type { Pages, PageView } from './page';
3
+ import type { FlexibleColumnLayoutAggregations } from '.';
4
+ export interface AppSettings extends CommonAppSettings {
15
5
  /**
16
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.
17
7
  */
@@ -1,4 +1,4 @@
1
- import { HeaderSections } from './ObjectPageHeaderSection';
1
+ import type { HeaderSections } from './ObjectPageHeaderSection';
2
2
  export declare type HeaderActionV4 = object;
3
3
  export interface GenericActions {
4
4
  [id: string]: HeaderActionV4;
@@ -21,20 +21,6 @@ export interface ObjectPageHeaderSectionForm extends CommonHeaderFacetSettings {
21
21
  */
22
22
  form?: object;
23
23
  }
24
- export interface ObjectPageHeaderSectionChart extends CommonHeaderFacetSettings {
25
- /**
26
- * Chart
27
- * @isViewNode true
28
- */
29
- chart?: object;
30
- }
31
- export interface ObjectPageHeaderSectionDataPoint extends CommonHeaderFacetSettings {
32
- /**
33
- * Data Point
34
- * @isViewNode true
35
- */
36
- dataPoint?: object;
37
- }
38
24
  export interface ObjectPageHeaderSectionContact extends CommonHeaderFacetSettings {
39
25
  /**
40
26
  * Contact
@@ -49,6 +35,8 @@ export interface ObjectPageHeaderSectionAddress extends CommonHeaderFacetSetting
49
35
  */
50
36
  address?: object;
51
37
  }
38
+ export declare type ObjectPageHeaderSectionChart = CommonHeaderFacetSettings;
39
+ export declare type ObjectPageHeaderSectionDataPoint = CommonHeaderFacetSettings;
52
40
  /**
53
41
  * Header Sections
54
42
  * @isViewNode true
@@ -1,5 +1,5 @@
1
- import { ObjectPageSectionTableV4 } from '../controls/ObjectPageTable';
2
- import { SAPUI5_FRAGMENT_CLASS } from '../../common/webapp/manifest/sapUi5';
1
+ import type { ObjectPageSectionTableV4 } from '../controls/ObjectPageTable';
2
+ import type { SAPUI5_FRAGMENT_CLASS } from '../../common/webapp/manifest/sapUi5';
3
3
  export interface ObjectPageSectionForm {
4
4
  /**
5
5
  * Form
@@ -1,6 +1,6 @@
1
- import { AnnotationPathAsObject, TableCreationModeType, TableSettings } from '../controls';
2
- import { Placement, ObjectPageTableColumn as ObjectPageTableColumnIF, ObjectPageTableColumnAction, TableCustomColumn } from '../webapp/manifest/ManifestSettings';
3
- import { ObjectPageToolBar } from './ObjectPageToolBar';
1
+ import type { AnnotationPathAsObject, TableCreationModeType, TableSettings } from '../controls';
2
+ import type { Placement, ObjectPageTableColumn as ObjectPageTableColumnIF, ObjectPageTableColumnAction, TableCustomColumn } from '../webapp/manifest/ManifestSettings';
3
+ import type { ObjectPageToolBar } from './ObjectPageToolBar';
4
4
  export interface PositionOP {
5
5
  /**
6
6
  * The key of another column to be used as placement anchor.
@@ -1,4 +1,4 @@
1
- import { SelectType } from './ToolBar';
1
+ import type { SelectType } from './ToolBar';
2
2
  /**
3
3
  * Action
4
4
  * @isViewNode true
@@ -1,5 +1,5 @@
1
- import { TableColumn, TableColumnAction, TableCustomColumn } from './../webapp/manifest/ManifestSettings';
2
- import { ToolBar } from './ToolBar';
1
+ import type { TableColumn, TableColumnAction, TableCustomColumn, ViewTableColumn, ViewTableColumnAction, ViewTableCustomColumn } from './../webapp/manifest/ManifestSettings';
2
+ import type { ToolBar, ViewChartToolBar } from './ToolBar';
3
3
  export declare enum SelectionMode {
4
4
  Multi = "Multi",
5
5
  None = "None",
@@ -21,6 +21,11 @@ export declare enum InitialLoadType {
21
21
  Enabled = "Enabled",
22
22
  Auto = "Auto"
23
23
  }
24
+ export declare enum DefaultPathType {
25
+ Primary = "primary",
26
+ Secondary = "secondary",
27
+ Both = "both"
28
+ }
24
29
  export interface TableCreationMode {
25
30
  /**
26
31
  * The name property of TableCreationMode defines the creation mode; possible values are:
@@ -35,6 +40,20 @@ export interface TableCreationMode {
35
40
  */
36
41
  createAtEnd?: boolean;
37
42
  }
43
+ export interface ViewTableCreationMode {
44
+ /**
45
+ * The name property of TableCreationMode defines the creation mode; possible values are:
46
+ * - NewPage: The create action leads to a new page.
47
+ * - Inline: The create action leads to a new row at the table.
48
+ * - CreationRow: No create button will be rendered, an empty row is directly given.
49
+ * The default is "NewPage".
50
+ */
51
+ name?: TableCreationModeType;
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"
54
+ */
55
+ createAtEnd?: boolean;
56
+ }
38
57
  export interface PersonalizationType {
39
58
  /**
40
59
  * Defines whether the user can add and remove columns to a given table.
@@ -49,6 +68,20 @@ export interface PersonalizationType {
49
68
  */
50
69
  filter?: boolean;
51
70
  }
71
+ export interface ViewPersonalizationType {
72
+ /**
73
+ * Defines whether the user can add and remove columns to a given table.
74
+ */
75
+ column?: boolean;
76
+ /**
77
+ * Defines whether the user can sort a given table.
78
+ */
79
+ sort?: boolean;
80
+ /**
81
+ * Defines whether the user can filter data of a given table.
82
+ */
83
+ filter?: boolean;
84
+ }
52
85
  export interface AnnotationPathAsObject {
53
86
  annotationPath: string;
54
87
  }
@@ -71,34 +104,17 @@ export interface QuickVariantSelectionV4 {
71
104
  */
72
105
  showCounts?: boolean;
73
106
  }
74
- export interface MultiTableModeV4 {
75
- /**
76
- * List of annotation paths referring to SelectionVariant annotations
77
- */
78
- paths: AnnotationPathWithKey[];
79
- /**
80
- * You can show the counts of entries of each view. To do so, add the showCounts option and set it to true.
81
- */
82
- showCounts?: boolean;
83
- }
84
107
  export interface GenericColumns {
85
108
  [key: string]: TableColumn | TableColumnAction | TableCustomColumn;
86
109
  }
87
- export interface TableSettings<COLS = GenericColumns> {
110
+ export interface ViewColumns {
111
+ [key: string]: ViewTableColumn | ViewTableColumnAction | ViewTableCustomColumn;
112
+ }
113
+ export interface TableSettings {
88
114
  /**
89
115
  * Use type to define the table type. Note: Grid tables, analytical tables, and tree tables cannot be rendered on smartphones. Instead, responsive tables always show on smartphones.
90
116
  */
91
117
  type?: TableTypeV4;
92
- /**
93
- * Defines the page behavior when a new record is created.
94
- */
95
- creationMode?: TableCreationMode;
96
- /**
97
- * Defines the personalization mode, currently only effective if variant management on page is either set to Page or Control.
98
- * By default all table settings are enabled. You can change this for the different parts of the table by setting the properties "Column", "Sort" and "Filter" accordingly.
99
- * Omitting a property is treated as false, this allows apps to avoid getting new features like grouping in upcoming releases.
100
- */
101
- personalization?: PersonalizationType;
102
118
  /**
103
119
  * Applications can influence whether the table rows are selectable or not, and whether it allows for single selection or multiple selection. It can take the following values:
104
120
  * - "Auto": This is the default value. In this mode, Fiori Elements first checks if there are any custom actions or IBN buttons in the table toolbar that require a context. If no such buttons are found, then no table selection is allowed in display mode. In edit mode too a selection is not allowed unless there is a Delete button in the table toolbar in which case multiple row selection will be allowed.
@@ -128,7 +144,120 @@ export interface TableSettings<COLS = GenericColumns> {
128
144
  * You can set the content density to condensed for ui.table on the list report and object page applications.
129
145
  */
130
146
  condensedTableLayout?: boolean;
131
- columns?: COLS;
147
+ }
148
+ /**
149
+ * Views
150
+ * @isViewNode true
151
+ */
152
+ export interface MultiTableModeV4 {
153
+ /**
154
+ * List of annotation paths
155
+ */
156
+ [key: string]: LRTableView | LRChartView | boolean;
157
+ /**
158
+ * You can show the counts of entries of each view. To do so, add the showCounts option and set it to true.
159
+ */
160
+ showCounts?: boolean;
161
+ }
162
+ /**
163
+ * Chart View
164
+ * @isViewNode true
165
+ */
166
+ export interface ALPChartView {
167
+ /**
168
+ * The primary annotation path can be either UI.Chart, UI.PresentationVariant, or UI.SelectionPresentationVariant.
169
+ */
170
+ annotationPath: string;
171
+ /**
172
+ * Chart Toolbar
173
+ * @isViewNode true
174
+ */
175
+ toolBar?: ViewChartToolBar;
176
+ }
177
+ /**
178
+ * Chart View
179
+ * @isViewNode true
180
+ */
181
+ export interface LRChartView {
182
+ /**
183
+ * To use charts in multiple table mode, define a UI.Chart annotation, including a qualifier.
184
+ * Reference the UI.Chart annotation in your SelectionPresentationVariant or PresentationVariant for your view.
185
+ */
186
+ annotationPath: string;
187
+ /**
188
+ * Each chart can be based on a different entitySet.
189
+ */
190
+ entitySet?: string;
191
+ /**
192
+ * Chart Toolbar
193
+ * @isViewNode true
194
+ */
195
+ toolBar?: ViewChartToolBar;
196
+ }
197
+ /**
198
+ * Table View
199
+ * @isViewNode true
200
+ */
201
+ export interface ALPTableView extends TableSettings {
202
+ /**
203
+ * The secondary annotation path can be either UI.LineItem, UI.PresentationVariant, or UI.SelectionPresentationVariant.
204
+ */
205
+ annotationPath: string;
206
+ /**
207
+ * initialLoad defines whether or not the data in the table is automatically loaded.
208
+ * - Disabled - Data is never loaded when opening the app without an app state.
209
+ * - Enabled - Data is always loaded when opening the app.
210
+ * - Auto - Data is only loaded, if initial/preset filters are available (e.g. defined by "SelectionVariant" definition, URL parameters or user defaults).
211
+ */
212
+ initialLoad?: InitialLoadType;
213
+ /**
214
+ * Defines the personalization mode, currently only effective if variant management on page is either set to Page or Control.
215
+ * By default all table settings are enabled. You can change this for the different parts of the table by setting the properties "Column", "Sort" and "Filter" accordingly.
216
+ * Omitting a property is treated as false, this allows apps to avoid getting new features like grouping in upcoming releases.
217
+ */
218
+ personalization?: ViewPersonalizationType;
219
+ /**
220
+ * Defines the page behavior when a new record is created.
221
+ */
222
+ creationMode?: ViewTableCreationMode;
223
+ /**
224
+ * Table Toolbar
225
+ */
226
+ toolBar?: ToolBar;
227
+ columns?: ViewColumns;
228
+ }
229
+ /**
230
+ * Table View
231
+ * @isViewNode true
232
+ */
233
+ export interface LRTableView extends TableSettings {
234
+ /**
235
+ * The annotation path can be either UI.LineItem, UI.PresentationVariant, or UI.SelectionPresentationVariant.
236
+ */
237
+ annotationPath: string;
238
+ /**
239
+ * Each table can be based on a different entitySet.
240
+ */
241
+ entitySet?: string;
242
+ /**
243
+ * The tab keeps the default LineItem ID (without the key), so the variant is applied to it.
244
+ */
245
+ keepPreviousPersonalization?: boolean;
246
+ /**
247
+ * Defines the personalization mode, currently only effective if variant management on page is either set to Page or Control.
248
+ * By default all table settings are enabled. You can change this for the different parts of the table by setting the properties "Column", "Sort" and "Filter" accordingly.
249
+ * Omitting a property is treated as false, this allows apps to avoid getting new features like grouping in upcoming releases.
250
+ */
251
+ personalization?: ViewPersonalizationType;
252
+ /**
253
+ * Defines the page behavior when a new record is created.
254
+ */
255
+ creationMode?: ViewTableCreationMode;
256
+ /**
257
+ * Table Toolbar
258
+ */
259
+ toolBar?: ToolBar;
260
+ columns?: ViewColumns;
132
261
  }
133
262
  /**
134
263
  * Table
@@ -143,11 +272,19 @@ export interface Table extends TableSettings {
143
272
  */
144
273
  initialLoad?: InitialLoadType;
145
274
  /**
146
- * With the views property you can switch on the multiple view feature. Contrary to quickVariantSelection, each view will be rendered in a different instance of table). It links to SelectionVariant (filters) or SelectionPresentationVariant (filters and sorters) you must have added to your annotations beforehand.
275
+ * Defines the page behavior when a new record is created.
276
+ */
277
+ creationMode?: TableCreationMode;
278
+ /**
279
+ * Defines the personalization mode, currently only effective if variant management on page is either set to Page or Control.
280
+ * By default all table settings are enabled. You can change this for the different parts of the table by setting the properties "Column", "Sort" and "Filter" accordingly.
281
+ * Omitting a property is treated as false, this allows apps to avoid getting new features like grouping in upcoming releases.
147
282
  */
283
+ personalization?: PersonalizationType;
148
284
  views?: MultiTableModeV4;
149
285
  /**
150
286
  * Tool Bar
151
287
  */
152
288
  toolBar?: ToolBar;
289
+ columns?: GenericColumns;
153
290
  }
@@ -12,6 +12,17 @@ export interface ToolBarAction {
12
12
  */
13
13
  enableOnSelect?: SelectType;
14
14
  }
15
+ /**
16
+ * Action
17
+ * @isViewNode true
18
+ */
19
+ export interface ViewToolBarAction {
20
+ /**
21
+ * Enables single selection for a bound action
22
+ */
23
+ enableOnSelect?: SelectType;
24
+ }
25
+ export declare type ChartToolBarAction = {};
15
26
  /**
16
27
  * Actions
17
28
  * @isViewNode true
@@ -20,9 +31,23 @@ export interface Actions {
20
31
  [key: string]: ToolBarAction;
21
32
  }
22
33
  /**
23
- * Toolbar
34
+ * Actions
35
+ * @isViewNode true
36
+ */
37
+ export interface ViewActions {
38
+ [key: string]: ViewToolBarAction | ChartToolBarAction;
39
+ }
40
+ /**
41
+ * Table Toolbar
24
42
  * @isViewNode true
25
43
  */
26
44
  export interface ToolBar {
27
45
  actions: Actions;
28
46
  }
47
+ /**
48
+ * Chart Toolbar
49
+ * @isViewNode true
50
+ */
51
+ export interface ViewChartToolBar {
52
+ actions: ViewActions;
53
+ }
@@ -1,5 +1,5 @@
1
- import { PagesBase, PageBase, PageTypeV4, SapUiGenericAppPageSettings } from '../common';
2
- import { FlexibleColumnLayoutAggregations } from '.';
1
+ import type { PagesBase, PageBase, PageTypeV4, SapUiGenericAppPageSettings } from '../common';
2
+ import type { FlexibleColumnLayoutAggregations } from '.';
3
3
  export interface Pages extends PagesBase {
4
4
  [key: string]: Page;
5
5
  }
@@ -1,17 +1,31 @@
1
- import { Table, FilterBar } from '../controls';
2
- import { PageConfig } from '../../common/page';
1
+ import type { Table, FilterBar, ALPTableView, ALPChartView, DefaultPathType } from '../controls';
2
+ import type { PageConfig } from '../../common/page';
3
3
  export declare enum VariantManagementTypeListReport {
4
4
  None = "None",
5
5
  Control = "Control",
6
6
  Page = "Page"
7
7
  }
8
8
  export interface ListReportConfig extends PageConfig {
9
- table?: Table;
10
9
  /**
11
10
  * variantManagement defines how the variant management of page personalizations is controlled.
12
11
  * - None - No variant management by default.
13
12
  * - Control - Individual personalizations for each control.
14
13
  */
15
14
  variantManagement?: VariantManagementTypeListReport;
15
+ /**
16
+ * Filter bar
17
+ */
16
18
  filterBar?: FilterBar;
19
+ /**
20
+ * Chart
21
+ */
22
+ chart?: ALPChartView;
23
+ /**
24
+ * Table
25
+ */
26
+ table?: Table | ALPTableView;
27
+ /**
28
+ * "defaultPath" can be "primary", "secondary", or "both". If it is "primary", SAP Fiori elements loads the app in chart-only view. If it is "secondary", SAP Fiori elements loads the app in table-only view. If it is "both", SAP Fiori elements loads the app in hybrid view.
29
+ */
30
+ defaultPath?: DefaultPathType;
17
31
  }
@@ -1,5 +1,5 @@
1
- import { PageConfig } from '../../common/page';
2
- import { ObjectPageLayout, ObjectPageHeader, ObjectPageFooter, GenericSections, CustomSections } from '../controls';
1
+ import type { PageConfig } from '../../common/page';
2
+ import type { ObjectPageLayout, ObjectPageHeader, ObjectPageFooter, GenericSections, CustomSections } from '../controls';
3
3
  export declare enum VariantManagementTypeObjectPage {
4
4
  None = "None",
5
5
  Control = "Control"
@@ -1,3 +1,2 @@
1
1
  export * from './ObjectPageConfig';
2
2
  export * from './ListReportConfig';
3
- export * from './AnalyticalListPageConfig';
@@ -13,6 +13,16 @@ export interface Position {
13
13
  */
14
14
  placement: Placement;
15
15
  }
16
+ export interface ViewPosition {
17
+ /**
18
+ * The key of another column to be used as placement anchor.
19
+ */
20
+ anchor?: string;
21
+ /**
22
+ * Define the placement, either before or after the anchor column.
23
+ */
24
+ placement: Placement;
25
+ }
16
26
  export declare type Positionable = {
17
27
  /**
18
28
  * Defines the position of the column relative to other columns.
@@ -67,6 +77,24 @@ export interface TableColumn {
67
77
  */
68
78
  availability?: Availability;
69
79
  }
80
+ /**
81
+ * Table Column
82
+ * @isViewNode true
83
+ */
84
+ export interface ViewTableColumn {
85
+ /**
86
+ * A string type that represents CSS size values.
87
+ * Refer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.
88
+ */
89
+ width?: string;
90
+ /**
91
+ * Defines where the column should be shown.
92
+ * Default: it will be shown by default in the table.
93
+ * Adaptation: it will initially not shown in the table but be available via end user adaptation.
94
+ * Hidden: the column is neither available in the table nor in adaptation.
95
+ */
96
+ availability?: Availability;
97
+ }
70
98
  /**
71
99
  * Table Column
72
100
  * @isViewNode true
@@ -95,6 +123,16 @@ export interface TableColumnAction extends TableColumn {
95
123
  */
96
124
  afterExecution?: ActionAfterExecutionConfiguration;
97
125
  }
126
+ /**
127
+ * Inline Action
128
+ * @isViewNode true
129
+ */
130
+ export interface ViewTableColumnAction extends ViewTableColumn {
131
+ /**
132
+ * Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)
133
+ */
134
+ afterExecution?: ActionAfterExecutionConfiguration;
135
+ }
98
136
  export declare type ColumnPropertiesType = string[];
99
137
  /**
100
138
  * Inline Action for Object Page
@@ -145,3 +183,42 @@ export interface TableCustomColumn {
145
183
  */
146
184
  properties?: ColumnPropertiesType;
147
185
  }
186
+ /**
187
+ * Custom Column
188
+ * @isViewNode true
189
+ */
190
+ export interface ViewTableCustomColumn {
191
+ /**
192
+ * Defines the position of the column relative to other columns.
193
+ */
194
+ position?: ViewPosition;
195
+ /**
196
+ * The header is shown on the table as header, as well as in the add/remove dialog.
197
+ * @i18nClassification COL: Custom column header text
198
+ */
199
+ header: string;
200
+ /**
201
+ * A string type that represents CSS size values.
202
+ * Refer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.
203
+ */
204
+ width?: string;
205
+ /**
206
+ * Relevant for extension columns; allows the definition of a target fragment.
207
+ */
208
+ template: string;
209
+ /**
210
+ * Aligns the header as well as the content horizontally.
211
+ */
212
+ horizontalAlign?: HorizontalAlign;
213
+ /**
214
+ * Defines where the column should be shown.
215
+ * - Default: it will be shown by default in the table.
216
+ * - Adaptation: it will initially not shown in the table but be available via end user adaptation
217
+ * - Hidden: the column is neither available in the table nor in adaptation
218
+ */
219
+ availability?: Availability;
220
+ /**
221
+ * If provided and sorting is enabled for the table the custom column header can be clicked. This will lead to a list of properties (or one) that can be sorted by, they are displayed as the labels of the properties, corresponding to their definition in the annotations.
222
+ */
223
+ properties?: ColumnPropertiesType;
224
+ }
@@ -1,6 +1,6 @@
1
- import { SapUi5RootView, SapUi5OdataModel, SapUi5ResourceModel, SapUi5RoutingRoute } from '../../../common/webapp/manifest/sapUi5';
2
- import { FlexibleColumnLayoutV4 } from '../../ApplicationV4';
3
- import { SapUiGenericAppPageSettings } from '../../../common/page';
1
+ import type { SapUi5RootView, SapUi5OdataModel, SapUi5ResourceModel, SapUi5RoutingRoute } from '../../../common/webapp/manifest/sapUi5';
2
+ import type { FlexibleColumnLayoutV4 } from '../../ApplicationV4';
3
+ import type { SapUiGenericAppPageSettings } from '../../../common/page';
4
4
  export interface SapUi5V4 {
5
5
  flexEnabled?: boolean;
6
6
  resources?: object;
@@ -50,12 +50,21 @@ export interface SapUi5RoutingTargetNavigationV4 {
50
50
  route: string;
51
51
  };
52
52
  }
53
+ export interface SapUi5ViewPath {
54
+ key: string;
55
+ annotationPath: string;
56
+ entitySet?: string;
57
+ }
53
58
  export interface SapUi5RoutingTargetSettingsV4 {
54
59
  entitySet?: string;
55
60
  navigation?: {
56
61
  [key: string]: SapUi5RoutingTargetNavigationV4;
57
62
  };
58
63
  variantManagement?: string;
64
+ views?: {
65
+ paths: Array<SapUi5ViewPath>;
66
+ showCounts?: boolean;
67
+ };
59
68
  content?: {
60
69
  header?: {
61
70
  facets?: {};
@@ -1,4 +1,4 @@
1
- import { SapUiGenericAppPageSettings } from '../../../common/page';
1
+ import type { SapUiGenericAppPageSettings } from '../../../common/page';
2
2
  export interface SapUiAppV4 {
3
3
  pages: SapUiAppPageV4[] | SapUiGenericAppPageMapV4;
4
4
  _version?: string;
@@ -12,6 +12,24 @@ export interface SapUiNavDetailsV4 {
12
12
  route?: string;
13
13
  };
14
14
  }
15
+ export declare type SapUi5MultiViewPath = {
16
+ key: string;
17
+ annotationPath: string;
18
+ };
19
+ export declare type SapUi5MultiViewPaths = SapUi5MultiViewPath[];
20
+ export declare type SapUi5ALPPaths = [{
21
+ primary: [{
22
+ annotationPath: string;
23
+ }];
24
+ secondary: [{
25
+ annotationPath: string;
26
+ }];
27
+ defaultPath: string;
28
+ }];
29
+ export declare type SapUi5Views = {
30
+ paths: SapUi5MultiViewPaths | SapUi5ALPPaths;
31
+ showCounts?: boolean;
32
+ };
15
33
  export declare type SapUiPageSettingsV4 = SapUiGenericAppPageSettings & {
16
34
  entitySet?: string;
17
35
  navigation?: {
@@ -19,6 +37,7 @@ export declare type SapUiPageSettingsV4 = SapUiGenericAppPageSettings & {
19
37
  };
20
38
  controlConfiguration?: SapUiGenericAppPageSettings;
21
39
  content?: SapUi5RoutingTargetContent;
40
+ views?: SapUi5Views;
22
41
  };
23
42
  export interface SapUiAppPageV4 {
24
43
  type: string;