@openui5/sap.f 1.125.0 → 1.126.1

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 (106) hide show
  1. package/.reuse/dep5 +4 -4
  2. package/THIRDPARTY.txt +6 -6
  3. package/package.json +4 -4
  4. package/src/sap/f/.library +1 -1
  5. package/src/sap/f/Avatar.js +1 -1
  6. package/src/sap/f/AvatarGroup.js +1 -1
  7. package/src/sap/f/AvatarGroupItem.js +1 -1
  8. package/src/sap/f/CalendarAppointmentInCard.js +1 -1
  9. package/src/sap/f/CalendarInCard.js +1 -1
  10. package/src/sap/f/Card.js +1 -1
  11. package/src/sap/f/CardBase.js +1 -1
  12. package/src/sap/f/DynamicPage.js +2 -2
  13. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +1 -1
  14. package/src/sap/f/DynamicPageHeader.js +1 -1
  15. package/src/sap/f/DynamicPageTitle.js +1 -1
  16. package/src/sap/f/FlexibleColumnLayout.js +1 -1
  17. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  18. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
  19. package/src/sap/f/GridContainer.js +1 -1
  20. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  21. package/src/sap/f/GridContainerSettings.js +2 -2
  22. package/src/sap/f/GridList.js +1 -1
  23. package/src/sap/f/GridListItem.js +1 -1
  24. package/src/sap/f/IllustratedMessage.js +1 -1
  25. package/src/sap/f/Illustration.js +1 -1
  26. package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
  27. package/src/sap/f/ProductSwitch.js +1 -1
  28. package/src/sap/f/ProductSwitchItem.js +1 -1
  29. package/src/sap/f/SearchManager.js +1 -1
  30. package/src/sap/f/ShellBar.js +1 -1
  31. package/src/sap/f/SidePanel.js +1 -1
  32. package/src/sap/f/SidePanelItem.js +1 -1
  33. package/src/sap/f/cards/BaseHeader.js +6 -10
  34. package/src/sap/f/cards/Header.js +1 -1
  35. package/src/sap/f/cards/HeaderRenderer.js +4 -0
  36. package/src/sap/f/cards/NumericHeader.js +1 -1
  37. package/src/sap/f/cards/NumericHeaderRenderer.js +7 -2
  38. package/src/sap/f/cards/NumericIndicators.js +1 -1
  39. package/src/sap/f/cards/NumericSideIndicator.js +1 -1
  40. package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
  41. package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
  42. package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
  43. package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
  44. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  45. package/src/sap/f/cards/loading/PlaceholderBase.js +2 -1
  46. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  47. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  48. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  49. package/src/sap/f/delegate/GridContainerItemNavigation.js +9 -6
  50. package/src/sap/f/delegate/GridItemNavigation.js +1 -1
  51. package/src/sap/f/dnd/GridDragOver.js +1 -1
  52. package/src/sap/f/dnd/GridDropInfo.js +1 -1
  53. package/src/sap/f/library.js +2 -2
  54. package/src/sap/f/semantic/AddAction.js +1 -1
  55. package/src/sap/f/semantic/CloseAction.js +1 -1
  56. package/src/sap/f/semantic/CopyAction.js +1 -1
  57. package/src/sap/f/semantic/DeleteAction.js +1 -1
  58. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  59. package/src/sap/f/semantic/EditAction.js +1 -1
  60. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  61. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  62. package/src/sap/f/semantic/FlagAction.js +1 -1
  63. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  64. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  65. package/src/sap/f/semantic/MainAction.js +1 -1
  66. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  67. package/src/sap/f/semantic/NegativeAction.js +1 -1
  68. package/src/sap/f/semantic/PositiveAction.js +1 -1
  69. package/src/sap/f/semantic/PrintAction.js +1 -1
  70. package/src/sap/f/semantic/SemanticButton.js +1 -1
  71. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  72. package/src/sap/f/semantic/SemanticControl.js +1 -1
  73. package/src/sap/f/semantic/SemanticPage.js +1 -1
  74. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  75. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  76. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  77. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  78. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  79. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  80. package/src/sap/f/shellBar/CoPilot.js +1 -1
  81. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  82. package/src/sap/f/shellBar/Search.js +1 -1
  83. package/src/sap/f/themes/base/Card.less +11 -2
  84. package/src/sap/f/themes/sap_hcb/base_AvatarGroup.less +275 -0
  85. package/src/sap/f/themes/sap_hcb/base_CalendarPlaceholder.less +70 -0
  86. package/src/sap/f/themes/sap_hcb/base_Card.less +638 -0
  87. package/src/sap/f/themes/sap_hcb/base_CardLoading.less +268 -0
  88. package/src/sap/f/themes/sap_hcb/base_CardNumericIndicators.less +38 -0
  89. package/src/sap/f/themes/sap_hcb/base_DynamicPage.less +418 -0
  90. package/src/sap/f/themes/sap_hcb/base_DynamicPageHeader.less +66 -0
  91. package/src/sap/f/themes/sap_hcb/base_DynamicPageTitle.less +373 -0
  92. package/src/sap/f/themes/sap_hcb/base_FlexibleColumnLayout.less +281 -0
  93. package/src/sap/f/themes/sap_hcb/base_GridContainer.less +60 -0
  94. package/src/sap/f/themes/sap_hcb/base_GridDragAndDrop.less +5 -0
  95. package/src/sap/f/themes/sap_hcb/base_GridList.less +103 -0
  96. package/src/sap/f/themes/sap_hcb/base_GridListItem.less +111 -0
  97. package/src/sap/f/themes/sap_hcb/base_ListPlaceholder.less +53 -0
  98. package/src/sap/f/themes/sap_hcb/base_ObjectPlaceholder.less +43 -0
  99. package/src/sap/f/themes/sap_hcb/base_ProductSwitch.less +3 -0
  100. package/src/sap/f/themes/sap_hcb/base_ProductSwitchItem.less +160 -0
  101. package/src/sap/f/themes/sap_hcb/base_SemanticPage.less +34 -0
  102. package/src/sap/f/themes/sap_hcb/base_ShellBar.less +495 -0
  103. package/src/sap/f/themes/sap_hcb/base_SidePanel.less +858 -0
  104. package/src/sap/f/themes/sap_hcb/base_TablePlaceholder.less +34 -0
  105. package/src/sap/f/themes/sap_hcb/base_TimelinePlaceholder.less +79 -0
  106. package/src/sap/f/themes/sap_hcb/library.source.less +34 -1
@@ -0,0 +1,268 @@
1
+ /* ================================== */
2
+ /* CSS for control sap.f/CardLoading */
3
+ /* Base theme */
4
+ /* ================================== */
5
+ @_sap_f_Card_FocusBorderWidth: 1px;
6
+ @_sap_f_Card_Background_Placeholder_Color: @sapUiContentPlaceholderloadingBackground;
7
+ @_sap_f_Card_Placeholder_Gradient: linear-gradient(to right, @sapUiContentPlaceholderloadingBackground 0%, @sapUiContentPlaceholderloadingBackground 35%, darken(@sapUiContentPlaceholderloadingBackground, 5) 50%, @sapUiContentPlaceholderloadingBackground 65%, @sapUiContentPlaceholderloadingBackground 100%);
8
+
9
+ .sapFCard {
10
+
11
+ .sapFCardHeader.sapFCardHeaderLoading,
12
+ &.sapFCardPreview .sapFCardHeader {
13
+
14
+ .sapFCardHeaderImage.sapFCardHeaderItemBinded {
15
+ height: 3rem;
16
+ width: 3rem;
17
+ margin-right: 0.75rem;
18
+ //hide the fallback icon
19
+ }
20
+
21
+ .sapFCardHeaderImage .sapFCardHeaderItemBinded::after {
22
+ max-height: 2rem;
23
+ max-width: 2rem;
24
+ margin-top: 0.5rem;
25
+ }
26
+
27
+ .sapFCardHeaderText .sapFCardStatus.sapFCardHeaderItemBinded {
28
+ margin-top: 0;
29
+ }
30
+
31
+ .sapFCardHeaderTextSecondLine .sapFCardHeaderItemBinded::after {
32
+ margin-top: 0.2rem;
33
+ }
34
+
35
+ .sapFCardHeaderDetailsWrapper>.sapFCardHeaderItemBinded::after {
36
+ max-width: 70%;
37
+ margin-top: 0.2rem;
38
+ }
39
+
40
+ .sapFCardSubtitle.sapFCardHeaderItemBinded::after {
41
+ margin-top: 0.3rem;
42
+ }
43
+
44
+ .sapFCardHeaderTextSecondLine .sapFCardHeaderItemBinded::after,
45
+ .sapFCardSubtitle.sapFCardHeaderItemBinded::after,
46
+ .sapFCardHeaderDetailsWrapper .sapFCardHeaderItemBinded::after,
47
+ .sapFCardNumericIndicatorsSide .sapFCardHeaderItemBinded::after,
48
+ .sapFCardNumericIndicatorsSide .sapFCardHeaderItemBinded.sapMText::after {
49
+ max-height: 0.6rem;
50
+ }
51
+
52
+ .sapFCardNumericIndicatorsMain .sapFCardHeaderItemBinded::after {
53
+ margin-top: 0.5rem;
54
+ width: 80%;
55
+ }
56
+
57
+ .sapFCardHeaderItemBinded {
58
+ visibility: hidden; // hide the loaded elements (texts, icons, etc.) behind the loading indicators
59
+ }
60
+
61
+ .sapFCardHeaderItemBinded::after {
62
+ visibility: visible; // ... but show the loading indicator
63
+ }
64
+
65
+ .sapFCardHeaderText .sapFCardHeaderTextFirstLine {
66
+
67
+ .sapFCardTitle.sapFCardHeaderItemBinded {
68
+ flex: 1 0;
69
+ position: relative;
70
+ }
71
+
72
+ .sapFCardStatus.sapFCardHeaderItemBinded {
73
+ min-width: 1.5rem;
74
+ min-height: 1rem;
75
+ }
76
+ }
77
+
78
+ .sapFCardHeaderItemBinded::after {
79
+ .sapFCardLoadingShimmerMixin();
80
+ content: "";
81
+ position: absolute;
82
+ width: 100%;
83
+ height: 100%;
84
+ max-height: 1rem;
85
+ top: 0;
86
+ left: 0;
87
+ }
88
+ }
89
+
90
+ &.sapUiIntCardTileFlat,
91
+ &.sapUiIntCardTileFlatWide {
92
+ .sapFCardHeader.sapFCardHeaderLoading,
93
+ &.sapFCardPreview .sapFCardHeader {
94
+ .sapFAvatar.sapFCardHeaderItemBinded::after,
95
+ .sapFAvatar.sapFCardHeaderItemBinded::after {
96
+ margin-top: 0;
97
+ margin-left: 0;
98
+ }
99
+
100
+ .sapFCardAvatarAndIndicatorsLine .sapFCardIcon.sapFAvatar.sapFCardHeaderItemBinded,
101
+ .sapFCardAvatarAndIndicatorsLine .sapFCardIcon.sapFAvatar.sapFCardHeaderItemBinded {
102
+ margin-right: 0.5rem;
103
+ }
104
+
105
+ .sapFCardNumericIndicatorsMain .sapFCardHeaderItemBinded::after {
106
+ margin-top: -2px;
107
+ }
108
+ }
109
+ }
110
+
111
+ // no sapFCardHeaderItemBinded class present for the filter?
112
+ .sapFCardFilterLoading::after {
113
+ height: 2rem;
114
+ margin-top: 0.25rem;
115
+ }
116
+
117
+ .sapFCardFilterLoading .sapMSlt {
118
+ visibility: hidden; // hide the loaded Select behind the loading indicator
119
+ }
120
+
121
+ &.sapFCardPreview .sapFCardFilter,
122
+ .sapFCardFilterLoading {
123
+ position: relative;
124
+ &::after {
125
+ .sapFCardLoadingShimmerMixin();
126
+ content: "";
127
+ position: absolute;
128
+ top: 2px;
129
+ bottom: 2px;
130
+ left: 0;
131
+ right: 0;
132
+ }
133
+ }
134
+
135
+ &.sapFCardPreview .sapFCardFooter,
136
+ .sapFCardFooterLoading {
137
+ .sapUiIntActionsStrip {
138
+ position: relative;
139
+ &::after {
140
+ content: "";
141
+ position: absolute;
142
+ width: 100%;
143
+ height: 100%;
144
+ background-color: @sapUiTileBackground;
145
+ }
146
+ }
147
+ }
148
+
149
+ .sapFCardNumericHeader.sapFCardHeaderLoading,
150
+ &.sapFCardPreview .sapFCardNumericHeader {
151
+ .sapFCardNumericIndicatorsMain .sapFCardHeaderItemBinded {
152
+ min-width: 5rem;
153
+ }
154
+
155
+ .sapFCardHeaderSideIndicator.sapFCardHeaderItemBinded {
156
+ flex: 1 0;
157
+ min-height: 2rem;
158
+ }
159
+
160
+ .sapFCardHeaderDetails.sapFCardHeaderItemBinded {
161
+ flex: 1 0;
162
+ min-height: 1rem;
163
+ width: 100%;
164
+ }
165
+ }
166
+
167
+ .sapFCardContent {
168
+
169
+ .sapFCardContentHidden {
170
+ display: none;
171
+ }
172
+
173
+ .sapFCardBaseContent.sapFCardContentLoading:not(.sapFCardObjectContent) > :not(.sapFCardContentPlaceholder):not(.sapFCardContentMessageContainer) {
174
+ display: none;
175
+ }
176
+
177
+ .sapFCardContentPlaceholder {
178
+ outline: none;
179
+ }
180
+
181
+ .sapFCardContentPlaceholder:focus::before {
182
+ content: '';
183
+ display: block;
184
+ position: absolute;
185
+ left: 1px;
186
+ bottom: 1px;
187
+ right: 1px;
188
+ top: 1px;
189
+ border: @_sap_f_Card_FocusBorderWidth dotted @sapUiContentFocusColor;
190
+ pointer-events: none;
191
+ }
192
+
193
+ .sapFCardContentGenericPlaceholder,
194
+ .sapFCardContentAnalyticalPlaceholder {
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: center;
198
+ width: 100%;
199
+ height: 100%;
200
+
201
+ .sapFCardSVG {
202
+ fill: @sapUiTileBackground;
203
+ }
204
+ }
205
+
206
+ .sapFCardContentAnalyticalPlaceholder > div {
207
+ padding: 0.5rem;
208
+ }
209
+
210
+ .sapFCardContentGenericPlaceholder {
211
+ .sapFCardLoadingShimmer {
212
+ max-width: 144px;
213
+ max-height: 144px;
214
+ height: ~"calc(100% - 4px)"; /* leave place for the focus */
215
+ }
216
+ }
217
+ }
218
+
219
+ .sapFCardLoadingShimmer {
220
+ .sapFCardLoadingShimmerMixin();
221
+ }
222
+
223
+ .sapFCardLoadingShimmerMixin() {
224
+ background-color: @_sap_f_Card_Background_Placeholder_Color;
225
+ background-image: @_sap_f_Card_Placeholder_Gradient;
226
+ background-repeat: no-repeat;
227
+ background-size: 800px 100%;
228
+ position: relative;
229
+ border-radius: 0.25rem;
230
+
231
+ [data-sap-ui-animation-mode="full"] & {
232
+ animation-duration: 2.5s;
233
+ animation-fill-mode: forwards;
234
+ animation-iteration-count: infinite;
235
+ animation-name: placeHolderShimmer;
236
+ animation-timing-function: linear;
237
+ }
238
+
239
+ [data-sap-ui-animation-mode="basic"] &,
240
+ [data-sap-ui-animation-mode="minimal"] & {
241
+ animation-duration: 8s;
242
+ animation-fill-mode: forwards;
243
+ animation-iteration-count: infinite;
244
+ animation-name: placeHolderShimmer;
245
+ animation-timing-function: linear;
246
+ }
247
+ }
248
+
249
+ @keyframes placeHolderShimmer {
250
+ 0% {
251
+ background-position: -468px 0;
252
+ }
253
+
254
+ 100% {
255
+ background-position: 468px 0;
256
+ }
257
+ }
258
+
259
+ &.sapFCardPreview {
260
+ .sapFCardHeaderItemBinded::after,
261
+ .sapFCardFilter::after,
262
+ .sapFCardLoadingShimmer,
263
+ .sapUiIntActionsStrip::after {
264
+ background-image: unset !important;
265
+ animation-name: unset !important;
266
+ }
267
+ }
268
+ }
@@ -0,0 +1,38 @@
1
+ /* ============================================= */
2
+ /* CSS for control sap.f.cards/NumericIndicators */
3
+ /* Base theme */
4
+ /* ============================================= */
5
+
6
+ .sapFCardNumericIndicators {
7
+ display: flex;
8
+ align-items: flex-start;
9
+
10
+ &.sapFCardNumericIndicatorsSideAlignBegin .sapFCardNumericIndicatorsGap {
11
+ max-width: 3rem;
12
+ }
13
+
14
+ .sapFCardNumericIndicatorsMain .sapMNC.WithoutMargin {
15
+ height: 100%;
16
+
17
+ .sapMNCInner.WithoutMargin {
18
+ position: relative;
19
+ }
20
+ }
21
+
22
+ .sapFCardNumericIndicatorsGap {
23
+ flex: 1 0 1rem;
24
+ }
25
+
26
+ .sapFCardNumericIndicatorsSide {
27
+ min-width: 0; // allows items to shrink and truncate the content inside
28
+ display: flex;
29
+
30
+ .sapFCardHeaderSideIndicator {
31
+ margin-right: 1rem;
32
+ position: relative;
33
+ }
34
+ .sapFCardHeaderSideIndicator:last-child {
35
+ margin-right: 0;
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,418 @@
1
+ /* ================================== */
2
+ /* CSS for control sap.f/DynamicPage */
3
+ /* Base theme */
4
+ /* ================================== */
5
+
6
+ @_sap_f_DynamicPage_FooterHeight: 3rem;
7
+ @_sap_f_DynamicPage_FooterHeight_Compact: 2.5rem;
8
+ @_sap_f_DynamicPage_FooterMarginBottom: 0.5rem;
9
+
10
+ .sapFDynamicPage {
11
+ width: 100%;
12
+ height: 100%;
13
+ position: relative;
14
+ isolation: isolate;
15
+ z-index: 0;
16
+
17
+ .sapFDynamicPageContentWrapperStandard,
18
+ .sapFDynamicPageContentWrapperSolid {
19
+ &>.sapFDynamicPageContent {
20
+ background: @sapUiBaseBG;
21
+ }
22
+ }
23
+
24
+ .sapFDynamicPageHeaderSolid {
25
+ background: @sapUiBaseBG;
26
+ }
27
+
28
+ .sapFDynamicPageContentWrapperTransparent>.sapFDynamicPageContent {
29
+ background: transparent;
30
+ }
31
+
32
+ .sapFDynamicPageContentWrapperList>.sapFDynamicPageContent {
33
+ background: @sapUiGroupContentBackground;
34
+ }
35
+ }
36
+
37
+ .sapFDynamicPageTitleWrapper {
38
+ position: absolute;
39
+ padding-right: 0;
40
+ top: 0;
41
+ right: 0;
42
+ left: 0;
43
+ z-index: 3;
44
+ }
45
+
46
+ html[data-sap-ui-browser^="ff"].sap-desktop .sapFDynamicPage.sapFDynamicPageWithScroll,
47
+ html[data-sap-ui-os^="win"][data-sap-ui-browser^="cr"].sap-desktop .sapFDynamicPage.sapFDynamicPageWithScroll {
48
+ .sapFDynamicPageTitleWrapper {
49
+ right: 17px;
50
+ }
51
+
52
+ .sapFDynamicPageFooter .sapFDynamicPageActualFooterControl {
53
+ right: 17px;
54
+ }
55
+ }
56
+
57
+ .sapFDynamicPageContent {
58
+ flex-grow: 1;
59
+ -webkit-flex-grow: 1;
60
+ z-index: 0;
61
+
62
+ .sapFDynamicPageAlignContent {
63
+ margin-left: -@sapUiMarginSmall;
64
+ margin-right: -@sapUiMarginSmall;
65
+ }
66
+ }
67
+
68
+ /* TODO remove after the end of support for Internet Explorer */
69
+ html[data-sap-ui-browser^="ie"] {
70
+ .sapFDynamicPageContent {
71
+ flex-shrink: 0;
72
+ }
73
+ }
74
+
75
+ .sapFDynamicPageContent,
76
+ .sapFDynamicPageContentFitContainer {
77
+ position: relative;
78
+ padding: 1rem 3rem 0 3rem;
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .sapFDynamicPageContent > .sapFDynamicPageContentFitContainer {
83
+ position: absolute;
84
+ left: 0;
85
+ right: 0;
86
+ top: 0;
87
+ bottom: 0;
88
+ }
89
+
90
+ // adds space underneath the footer (when page in scrollable mode)
91
+ .sapFDynamicPageContentFitContainerFooterVisible:not(.sapFDynamicPageContentFitContainer) {
92
+ padding-bottom: ~"calc(@{_sap_f_DynamicPage_FooterHeight} + ( @{_sap_f_DynamicPage_FooterMarginBottom} * 2 ) )";
93
+ }
94
+
95
+ .sapUiSizeCompact {
96
+ .sapFDynamicPageContentFitContainerFooterVisible:not(.sapFDynamicPageContentFitContainer) {
97
+ padding-bottom: ~"calc(@{_sap_f_DynamicPage_FooterHeight_Compact} + ( @{_sap_f_DynamicPage_FooterMarginBottom} * 2 ) )";
98
+ }
99
+ }
100
+
101
+ // adds space underneath the footer (when page in non-scrollable mode)
102
+ .sapFDynamicPageContentFitContainerFooterVisible.sapFDynamicPageContentFitContainer {
103
+ max-height: ~"calc(100% - (@{_sap_f_DynamicPage_FooterHeight} + ( @{_sap_f_DynamicPage_FooterMarginBottom} * 2 ) ))";
104
+ }
105
+
106
+ .sapUiSizeCompact {
107
+ .sapFDynamicPageContentFitContainerFooterVisible.sapFDynamicPageContentFitContainer {
108
+ max-height: ~"calc(100% - (@{_sap_f_DynamicPage_FooterHeight_Compact} + ( @{_sap_f_DynamicPage_FooterMarginBottom} * 2 ) ))";
109
+ }
110
+ }
111
+
112
+ .sapFDynamicPage-Std-Tablet {
113
+ .sapFDynamicPageContent,
114
+ .sapFDynamicPageContentFitContainer {
115
+ padding: 2rem 2rem 0 2rem;
116
+ }
117
+ }
118
+
119
+ .sapFDynamicPage-Std-Phone {
120
+ .sapFDynamicPageContent,
121
+ .sapFDynamicPageContentFitContainer {
122
+ padding: 2rem 1rem 0 1rem;
123
+ }
124
+ }
125
+
126
+ .sapUiContainerContentPadding(~".sapFDynamicPage", ~".sapFDynamicPageContent");
127
+ .sapUiContainerContentPadding(~".sapFDynamicPage", ~".sapFDynamicPageContentFitContainer");
128
+
129
+ .sapFDynamicPage.sapUiContentPadding,
130
+ .sapFDynamicPage.sapUiNoContentPadding,
131
+ .sapFDynamicPage.sapUiResponsiveContentPadding {
132
+ .sapFDynamicPageAlignContent {
133
+ margin: 0;
134
+ }
135
+ }
136
+
137
+ .sapFDynamicPage.sapUiContentPadding {
138
+ .sapFDynamicPage-Std-Phone {
139
+ .sapFDynamicPageAlignContent {
140
+ margin: 0 -1rem;
141
+ }
142
+ }
143
+ }
144
+
145
+ .sapFDynamicPage.sapUiResponsiveContentPadding {
146
+ &.sapFDynamicPage-Std-Phone {
147
+ .sapFDynamicPageContent,
148
+ .sapFDynamicPageContentFitContainer {
149
+ padding: 0;
150
+ padding-top: 1rem;
151
+ }
152
+ }
153
+
154
+ &.sapFDynamicPage-Std-Tablet {
155
+ .sapFDynamicPageContent,
156
+ .sapFDynamicPageContentFitContainer {
157
+ padding: 1rem;
158
+ }
159
+ }
160
+
161
+ &.sapFDynamicPage-Std-Desktop {
162
+ .sapFDynamicPageContent,
163
+ .sapFDynamicPageContentFitContainer {
164
+ padding: 1rem 2rem;
165
+ }
166
+ }
167
+ }
168
+
169
+ .sapFDynamicPageFooterVisible .sapFDynamicPageContentWrapper,
170
+ .sapFDynamicPageFooterVisible .sapFDynamicPageContentFitContainer *[style*="overflow: hidden auto;"] {
171
+ scroll-padding-bottom: ~"calc(@{_sap_f_DynamicPage_FooterHeight} + @{_sap_f_DynamicPage_FooterMarginBottom} + 2px)";
172
+ }
173
+
174
+ .sapUiSizeCompact {
175
+ .sapFDynamicPageFooterVisible .sapFDynamicPageContentWrapper,
176
+ .sapFDynamicPageFooterVisible .sapFDynamicPageContentFitContainer *[style*="overflow: hidden auto;"] {
177
+ scroll-padding-bottom: ~"calc(@{_sap_f_DynamicPage_FooterHeight_Compact} + @{_sap_f_DynamicPage_FooterMarginBottom} + 2px)";
178
+ }
179
+ }
180
+
181
+ .sapFDynamicPageContentWrapper {
182
+ width: 100%;
183
+ height: 100%;
184
+ position: relative;
185
+ will-change: scroll-position;
186
+ -webkit-overflow-scrolling: auto;
187
+
188
+ display: -webkit-box;
189
+ display: -webkit-flex;
190
+ display: flex;
191
+
192
+ -webkit-flex-direction: column;
193
+ flex-direction: column;
194
+
195
+ // Scroll anchoring adjusts the scroll position to prevent visible jumps (or "reflows"),
196
+ // when content changes above the viewport.
197
+ // See: https://github.com/WICG/ScrollAnchoring/blob/master/explainer.md
198
+ overflow-anchor: none;
199
+
200
+ overflow-y: auto;
201
+ }
202
+
203
+ .sapFDynamicPageSupressScroll {
204
+ .sapFDynamicPageContentWrapper {
205
+ overflow: hidden;
206
+ }
207
+ }
208
+
209
+ .sapFDynamicPage .sapFDynamicPageTitleWrapper {
210
+ display: flex;
211
+ display: -webkit-flex;
212
+ flex-direction: column;
213
+ -webkit-flex-direction: column;
214
+ flex-shrink: 0;
215
+ -webkit-flex-shrink: 0;
216
+ }
217
+
218
+ html.sap-desktop .sapFDynamicPage.sapFDynamicPageWithScroll {
219
+ .sapFDynamicPageTitleWrapper {
220
+ right: 12px;
221
+ }
222
+
223
+ .sapFDynamicPageFooter .sapFDynamicPageActualFooterControl {
224
+ right: 12px;
225
+ }
226
+ }
227
+
228
+ .sapFDynamicPageContentWrapper {
229
+ -webkit-flex-grow: 1;
230
+ flex-grow: 1;
231
+ }
232
+
233
+ .sapFDynamicPage,
234
+ .sapFDynamicPage.sapFNavItem {
235
+ display: -webkit-box;
236
+ display: -webkit-flex;
237
+ display: flex;
238
+ -webkit-flex-direction: column;
239
+ flex-direction: column;
240
+ }
241
+
242
+ // DynamicPageTitle hover
243
+ .sapFDynamicPage.sapFDynamicPageTitleClickEnabled {
244
+ .sapFDynamicPageTitle:hover,
245
+ &.sapFDynamicPageTitleForceHovered .sapFDynamicPageTitle {
246
+ cursor: pointer;
247
+
248
+ .sapMFlexBox {
249
+ cursor: default;
250
+ }
251
+ }
252
+ }
253
+
254
+ // Overstyle for Comparison Pattern
255
+ .sapFDynamicPage.sapFDynamicPageTitleClickEnabled.sapUiComparisonContainer {
256
+ .sapFDynamicPageTitleMainInner:hover {
257
+ cursor: pointer;
258
+ }
259
+
260
+ .sapFDynamicPageTitle:hover,
261
+ &.sapFDynamicPageTitleForceHovered .sapFDynamicPageTitle {
262
+ cursor: default;
263
+ }
264
+ }
265
+
266
+ // Reflection: Overwritten styles
267
+ .sapFDynamicPageTitleMainHeading,
268
+ .sapFDynamicPageTitleMainContent,
269
+ .sapFDynamicPageTitleMainActions {
270
+ // BCP: 1870261908 - CSS cursor reset is needed here to prevent showing pointer for not clickable control types
271
+ cursor: default;
272
+ }
273
+
274
+ .sapFDynamicPage {
275
+ .sapFDynamicPageFooter {
276
+ position: relative;
277
+
278
+ .sapFDynamicPageActualFooterControl {
279
+ position: absolute;
280
+ height: @_sap_f_DynamicPage_FooterHeight;
281
+ width: auto;
282
+ bottom: 0;
283
+ right: 0;
284
+ left: 0;
285
+ border-radius: 0.25rem;
286
+ margin-left: 0.5rem;
287
+ margin-right: 0.5rem;
288
+ margin-bottom: @_sap_f_DynamicPage_FooterMarginBottom;
289
+ }
290
+ }
291
+ }
292
+
293
+ .sapUiSizeCompact .sapFDynamicPage .sapFDynamicPageFooter .sapFDynamicPageActualFooterControl {
294
+ height: @_sap_f_DynamicPage_FooterHeight_Compact;
295
+ }
296
+
297
+ /* ============================== */
298
+ /* Toggle Header Visual Indicator */
299
+ /* ============================== */
300
+ .sapFDynamicPageToggleHeaderIndicator.sapMBtn,
301
+ .sapFDynamicPageHeaderPinButton.sapMBtn {
302
+ position: absolute;
303
+ left: 50%;
304
+ padding: 0;
305
+
306
+ // Reflection: Overwritten styles
307
+ .sapMBtnInner {
308
+ position: absolute !important;
309
+ border-radius: 0.1875rem;
310
+ }
311
+ }
312
+
313
+ /* Tablet and Desktop */
314
+ .sapFDynamicPageToggleHeaderIndicator,
315
+ .sapFDynamicPageHeaderPinButton {
316
+ bottom: -1.375rem;
317
+ }
318
+
319
+ .sapFDynamicPageToggleHeaderIndicator,
320
+ .sapFDynamicPageToggleHeaderIndicator.sapUiHidden ~ .sapFDynamicPageHeaderPinButton {
321
+ margin-left: -1.25rem;
322
+ }
323
+
324
+ .sapFDynamicPageHeaderPinnable .sapFDynamicPageToggleHeaderIndicator {
325
+ margin-left: -2.5rem;
326
+ }
327
+
328
+ .sapFDynamicPageHeaderPinButton {
329
+ margin-left: 0.25rem;
330
+ }
331
+
332
+ /* Compact */
333
+ .sapUiSizeCompact {
334
+ .sapFDynamicPageToggleHeaderIndicator,
335
+ .sapFDynamicPageHeaderPinButton {
336
+ bottom: -0.875rem;
337
+
338
+ // Reflection: Overwritten styles
339
+ .sapMBtnInner.sapMBtnIconFirst:not(.sapMBtnBack) {
340
+ padding-left: 0;
341
+ padding-right: 0;
342
+ }
343
+ }
344
+ }
345
+
346
+ /* ============= */
347
+ /* Animations */
348
+ /* ============= */
349
+
350
+ html[data-sap-ui-animation='on'] .sapFDynamicPage {
351
+ .sapFDynamicPageActualFooterControlShow {
352
+ -webkit-animation: bounceShow 0.35s forwards ease-in-out;
353
+ animation: bounceShow 0.35s forwards ease-in-out;
354
+ }
355
+ .sapFDynamicPageActualFooterControlHide {
356
+ -webkit-animation: bounceHide 0.35s forwards ease-in-out;
357
+ animation: bounceHide 0.35s forwards ease-in-out;
358
+ }
359
+
360
+ @-webkit-keyframes bounceShow {
361
+ 0% {
362
+ -webkit-transform: translateY(100%);
363
+ transform: translateY(100%);
364
+ opacity: 0;
365
+ }
366
+ 100% {
367
+ opacity: 1;
368
+ }
369
+ }
370
+ @keyframes bounceShow {
371
+ 0% {
372
+ transform: translateY(100%);
373
+ opacity: 0;
374
+ }
375
+ 100% {
376
+ opacity: 1;
377
+ }
378
+ }
379
+ @-webkit-keyframes bounceHide {
380
+ 0% {
381
+ -webkit-transform: translateY(-5%);
382
+ transform: translateY(-5%);
383
+ opacity: 1;
384
+ }
385
+ 100% {
386
+ -webkit-transform: translateY(100%);
387
+ transform: translateY(100%);
388
+ opacity: 0;
389
+ }
390
+ }
391
+ @keyframes bounceHide {
392
+ 0% {
393
+ transform: translateY(-5%);
394
+ opacity: 1;
395
+ }
396
+ 100% {
397
+ transform: translateY(100%);
398
+ opacity: 0;
399
+ }
400
+ }
401
+ }
402
+
403
+
404
+ /* Vertically align items in the table-like view with the items in the sap.m.Carousel control,
405
+ part of DynamicPageTitle snapped content and DynamicPageHeader content.
406
+ To be used in Comparison pattern scenario. */
407
+ .sapUiComparisonContent .sapUiComparisonItem {
408
+ padding-left: 2.25rem;
409
+ padding-right: 1rem;
410
+ }
411
+
412
+ .sapUiComparisonContent :first-child.sapUiComparisonItem {
413
+ padding-left: 1rem;
414
+ }
415
+
416
+ .sapUiComparisonContainer .sapFDynamicPageTitleSnapped + .sapFDynamicPageContentWrapper .sapUiComparisonContent {
417
+ margin-right: -1rem;
418
+ }