Skip to content

Commit d5a0a3a

Browse files
fix(ui5-bar): align of elements is now correct (#3719)
Fixes: #3456 Closes: #3456
1 parent 4fb3c2c commit d5a0a3a

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed

packages/fiori/src/Bar.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div
2-
class="ui5-bar-root"
2+
class="{{classes.root}}"
33
aria-label="{{accInfo.label}}"
44
role="toolbar"
55
part="bar"

packages/fiori/src/Bar.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
22
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
34
import BarTemplate from "./generated/templates/BarTemplate.lit.js";
45
import BarDesign from "./types/BarDesign.js";
56

@@ -34,6 +35,15 @@ const metadata = {
3435
type: BarDesign,
3536
defaultValue: BarDesign.Header,
3637
},
38+
39+
/**
40+
* Defines if the component middle area needs to be centered between start and end area
41+
* @type {Boolean}
42+
* @private
43+
*/
44+
_shrinked: {
45+
type: Boolean,
46+
},
3747
},
3848
slots: /** @lends sap.ui.webcomponents.fiori.Bar.prototype */ {
3949
/**
@@ -133,6 +143,38 @@ class Bar extends UI5Element {
133143
"label": this.design,
134144
};
135145
}
146+
147+
constructor() {
148+
super();
149+
150+
this._handleResizeBound = this.handleResize.bind(this);
151+
}
152+
153+
handleResize() {
154+
const bar = this.getDomRef();
155+
const barWidth = bar.offsetWidth;
156+
157+
this._shrinked = Array.from(bar.children).some(element => {
158+
return barWidth / 3 < element.offsetWidth;
159+
});
160+
}
161+
162+
get classes() {
163+
return {
164+
root: {
165+
"ui5-bar-root": true,
166+
"ui5-bar-root-shrinked": this._shrinked,
167+
},
168+
};
169+
}
170+
171+
onEnterDOM() {
172+
ResizeHandler.register(this, this._handleResizeBound);
173+
}
174+
175+
onExitDOM() {
176+
ResizeHandler.deregister(this, this._handleResizeBound);
177+
}
136178
}
137179

138180
Bar.define();

packages/fiori/src/themes/Bar.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,32 @@
2222
display: flex;
2323
flex-direction: row;
2424
align-items: center;
25+
justify-content: flex-start;
26+
}
27+
28+
.ui5-bar-root .ui5-bar-content-container {
29+
min-width: 30%;
30+
}
31+
32+
.ui5-bar-root.ui5-bar-root-shrinked .ui5-bar-content-container {
33+
min-width: 0px;
34+
overflow: hidden;
2535
}
2636

2737
.ui5-bar-root .ui5-bar-endcontent-container {
2838
padding-right: 0.5rem;
2939
display: flex;
3040
flex-direction: row;
3141
align-items: center;
42+
justify-content: flex-end;
3243
}
3344
.ui5-bar-root .ui5-bar-midcontent-container {
3445
padding-left: 0.5rem;
3546
padding-right: 0.5rem;
3647
display: flex;
3748
flex-direction: row;
3849
align-items: center;
50+
justify-content: center;
3951
}
4052

4153
:host([design="Footer"]){

packages/fiori/test/pages/Bar.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343

4444
<ui5-label slot="endContent">Basic Label</ui5-label>
4545
<ui5-button slot="endContent">End Button</ui5-button>
46+
<ui5-button design="Positive" slot="endContent">Agree</ui5-button>
47+
<ui5-button design="Negative" slot="endContent">Decline</ui5-button>
48+
<ui5-button design="Transparent" slot="endContent">Cancel</ui5-button>
4649
</ui5-bar>
4750

4851
<br>

0 commit comments

Comments
 (0)