Skip to content

Commit 06942af

Browse files
Merge branch 'main' of https://github.com/SAP/ui5-webcomponents into ui5-user-menu-tests
* 'main' of https://github.com/SAP/ui5-webcomponents: refactor(ui5-multi-combobox): switch to .tsx (#10807) refactor(ListItem): delete unused code (#10796) chore(deps-dev): bump esbuild from 0.19.9 to 0.25.0 (#10816) chore(deps-dev): bump vitest from 3.0.2 to 3.0.5 (#10785) test: add command for single cy test run (#10813) docs: fix TimelineGrowingMode enum docs (#10815) fix(ui5-side-navigation): remove inappropriate exclamation mark usage (#10769)
2 parents 0344215 + f021ca5 commit 06942af

17 files changed

+550
-486
lines changed

packages/ai/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"bundle": "nps build.bundle",
2828
"test": "nps test-cy-ci",
2929
"test:cypress": "nps test-cy-ci",
30+
"test:cypress:single": "nps test-cy-single",
3031
"test:cypress:open": "nps test-cy-open",
3132
"test:ssr": "node -e \"import('./test/ssr/component-imports.js')\"",
3233
"create-ui5-element": "wc-create-ui5-element",

packages/fiori/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"test": "wc-dev test",
4444
"test:ssr": "node -e \"import('./test/ssr/component-imports.js')\"",
4545
"test:cypress": "nps test-cy-ci",
46+
"test:cypress:single": "nps test-cy-single",
4647
"test:cypress:open": "nps test-cy-open",
4748
"create-ui5-element": "wc-create-ui5-element",
4849
"prepublishOnly": "tsc -b"

packages/fiori/src/SideNavigation.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -492,17 +492,19 @@ class SideNavigation extends UI5Element {
492492

493493
let itemDomRef;
494494

495-
if (isInstanceOfSideNavigationItemBase(item)) {
496-
itemDomRef = item.getDomRef()!;
495+
if (isInstanceOfSideNavigationItemBase(item) && item.getDomRef()) {
496+
itemDomRef = item.getDomRef();
497497
} else {
498498
itemDomRef = item;
499499
}
500500

501-
const { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);
502-
itemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);
501+
if (itemDomRef) {
502+
const { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);
503+
itemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);
503504

504-
if (itemsHeight > listHeight) {
505-
item.classList.add("ui5-sn-item-hidden");
505+
if (itemsHeight > listHeight) {
506+
item.classList.add("ui5-sn-item-hidden");
507+
}
506508
}
507509
});
508510

packages/fiori/src/UploadCollectionItem.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ class UploadCollectionItem extends ListItem {
157157
* @public
158158
*/
159159
@property({ type: Boolean })
160-
declare disableDeleteButton: boolean;
160+
disableDeleteButton = false;
161161

162162
/**
163163
* Hides the delete button.

packages/fiori/src/types/TimelineGrowingMode.ts

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* Timeline growing modes.
3+
* @public
4+
* @since 2.7.0
5+
*/
16
enum TimelineGrowingMode {
27
/**
38
* Event `load-more` is fired

packages/main/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"test:cypress:suite-1": "nps test-cy-ci-suite-1",
3333
"test:cypress:suite-2": "nps test-cy-ci-suite-2",
3434
"test:cypress:open": "nps test-cy-open",
35+
"test:cypress:single": "nps test-cy-single",
3536
"test:vitest": "yarn vitest run",
3637
"test:ssr": "node -e \"import('./test/ssr/component-imports.js')\"",
3738
"create-ui5-element": "wc-create-ui5-element",

packages/main/src/ComboBox.ts

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
1212
import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsScope.js";
1313
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
1414
import "@ui5/webcomponents-icons/dist/decline.js";
15-
import "@ui5/webcomponents-icons/dist/not-editable.js";
1615
import "@ui5/webcomponents-icons/dist/error.js";
1716
import "@ui5/webcomponents-icons/dist/alert.js";
1817
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";

packages/main/src/ListItem.ts

-13
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,6 @@ abstract class ListItem extends ListItemBase {
207207
accessibleName?: string;
208208
// used in ListItem template but implemented in TreeItemBase
209209
indeterminate?: boolean;
210-
// Used in UploadCollectionItem
211-
disableDeleteButton?: boolean;
212210

213211
@i18n("@ui5/webcomponents")
214212
static i18nBundle: I18nBundle;
@@ -416,17 +414,6 @@ abstract class ListItem extends ListItemBase {
416414
return this._selectionMode === ListSelectionMode.Delete;
417415
}
418416

419-
/**
420-
* Used in UploadCollectionItem
421-
*/
422-
get renderDeleteButton() {
423-
return this.modeDelete;
424-
}
425-
426-
/**
427-
* End
428-
*/
429-
430417
get typeDetail() {
431418
return this.type === ListItemType.Detail;
432419
}

packages/main/src/ListItemTemplate.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ function selectionElement(this: ListItem) {
145145
onChange={this.onMultiSelectionComponentPress}
146146
/>
147147
);
148-
case this.renderDeleteButton:
148+
case this.modeDelete:
149149
return (
150150
<div class="ui5-li-deletebtn">
151151
{
@@ -160,7 +160,6 @@ function selectionElement(this: ListItem) {
160160
id={`${this._id}-deleteSelectionElement`}
161161
design="Transparent"
162162
icon={declineIcon}
163-
disabled={this.disableDeleteButton}
164163
onClick={this.onDelete}
165164
tooltip={this.deleteText}
166165
/>

packages/main/src/MultiComboBox.hbs

-106
This file was deleted.

packages/main/src/MultiComboBox.ts

+23-19
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
44
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
55
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
66
import type { ClassMap, Timeout } from "@ui5/webcomponents-base/dist/types.js";
7-
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
7+
import jsxRender from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
88
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
99
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
1010
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
@@ -44,9 +44,6 @@ import {
4444
} from "@ui5/webcomponents-base/dist/Device.js";
4545
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4646
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
47-
import "@ui5/webcomponents-icons/dist/decline.js";
48-
import "@ui5/webcomponents-icons/dist/multiselect-all.js";
49-
import "@ui5/webcomponents-icons/dist/not-editable.js";
5047
import "@ui5/webcomponents-icons/dist/error.js";
5148
import "@ui5/webcomponents-icons/dist/alert.js";
5249
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
@@ -92,7 +89,7 @@ import {
9289
} from "./generated/i18n/i18n-defaults.js";
9390

9491
// Templates
95-
import MultiComboBoxTemplate from "./generated/templates/MultiComboBoxTemplate.lit.js";
92+
import MultiComboBoxTemplate from "./MultiComboBoxTemplate.js";
9693

9794
// Styles
9895
import multiCbxStyles from "./generated/themes/MultiComboBox.css.js";
@@ -113,6 +110,7 @@ import SuggestionItem from "./SuggestionItem.js";
113110
*/
114111
interface IMultiComboBoxItem extends UI5Element {
115112
text?: string,
113+
additionalText?: string,
116114
headerText?: string,
117115
selected: boolean,
118116
isGroupItem?: boolean,
@@ -178,7 +176,7 @@ type MultiComboboxItemWithSelection = {
178176
tag: "ui5-multi-combobox",
179177
languageAware: true,
180178
formAssociated: true,
181-
renderer: litRender,
179+
renderer: jsxRender,
182180
template: MultiComboBoxTemplate,
183181
styles: [
184182
multiCbxStyles,
@@ -2017,20 +2015,26 @@ class MultiComboBox extends UI5Element implements IFormInputElement {
20172015
}
20182016

20192017
get classes(): ClassMap {
2018+
const popover = {
2019+
"ui5-multi-combobox-all-items-responsive-popover": true,
2020+
"ui5-suggestions-popover": true,
2021+
"ui5-popover-with-value-state-header-phone": this._isPhone && this.hasValueStateMessage,
2022+
"ui5-popover-with-value-state-header": !this._isPhone && this.hasValueStateMessage,
2023+
};
2024+
const popoverValueState = {
2025+
"ui5-valuestatemessage-root": true,
2026+
"ui5-valuestatemessage-header": true,
2027+
"ui5-valuestatemessage--success": (this.valueState === ValueState.Positive) || (isPhone() && this._dialogInputValueState === ValueState.Positive),
2028+
"ui5-valuestatemessage--error": (this.valueState === ValueState.Negative) || (isPhone() && this._dialogInputValueState === ValueState.Negative),
2029+
"ui5-valuestatemessage--warning": (this.valueState === ValueState.Critical) || (isPhone() && this._dialogInputValueState === ValueState.Critical),
2030+
"ui5-valuestatemessage--information": (this.valueState === ValueState.Information) || (isPhone() && this._dialogInputValueState === ValueState.Information),
2031+
};
20202032
return {
2021-
popover: {
2022-
"ui5-multi-combobox-all-items-responsive-popover": true,
2023-
"ui5-suggestions-popover": true,
2024-
"ui5-popover-with-value-state-header-phone": this._isPhone && this.hasValueStateMessage,
2025-
"ui5-popover-with-value-state-header": !this._isPhone && this.hasValueStateMessage,
2026-
},
2027-
popoverValueState: {
2028-
"ui5-valuestatemessage-root": true,
2029-
"ui5-valuestatemessage-header": true,
2030-
"ui5-valuestatemessage--success": (this.valueState === ValueState.Positive) || (isPhone() && this._dialogInputValueState === ValueState.Positive),
2031-
"ui5-valuestatemessage--error": (this.valueState === ValueState.Negative) || (isPhone() && this._dialogInputValueState === ValueState.Negative),
2032-
"ui5-valuestatemessage--warning": (this.valueState === ValueState.Critical) || (isPhone() && this._dialogInputValueState === ValueState.Critical),
2033-
"ui5-valuestatemessage--information": (this.valueState === ValueState.Information) || (isPhone() && this._dialogInputValueState === ValueState.Information),
2033+
popover,
2034+
popoverValueState,
2035+
responsivePopoverHeaderValueState: {
2036+
"ui5-responsive-popover-header": true,
2037+
...popoverValueState,
20342038
},
20352039
};
20362040
}

0 commit comments

Comments
 (0)