diff --git a/packages/main/src/Select.hbs b/packages/main/src/Select.hbs index 19e577ac3470..44f4776b35ec 100644 --- a/packages/main/src/Select.hbs +++ b/packages/main/src/Select.hbs @@ -1,7 +1,13 @@
- {{_text}} + {{_text}}
+ {{#if hasValueState}} + {{valueStateText}} + {{/if}}
diff --git a/packages/main/src/Select.js b/packages/main/src/Select.js index 44d7b950fd9d..790087604512 100644 --- a/packages/main/src/Select.js +++ b/packages/main/src/Select.js @@ -15,6 +15,10 @@ import "@ui5/webcomponents-icons/dist/icons/slim-arrow-down.js"; import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js"; import "@ui5/webcomponents-icons/dist/icons/decline.js"; import { + VALUE_STATE_SUCCESS, + VALUE_STATE_INFORMATION, + VALUE_STATE_ERROR, + VALUE_STATE_WARNING, INPUT_SUGGESTIONS_TITLE, } from "./generated/i18n/i18n-defaults.js"; import Label from "./Label.js"; @@ -424,6 +428,33 @@ class Select extends UI5Element { } } + get valueStateTextMappings() { + const i18nBundle = this.i18nBundle; + + return { + "Success": i18nBundle.getText(VALUE_STATE_SUCCESS), + "Information": i18nBundle.getText(VALUE_STATE_INFORMATION), + "Error": i18nBundle.getText(VALUE_STATE_ERROR), + "Warning": i18nBundle.getText(VALUE_STATE_WARNING), + }; + } + + get valueStateText() { + return this.valueStateTextMappings[this.valueState]; + } + + get hasValueState() { + return this.valueState !== ValueState.None; + } + + get valueStateTextId() { + return this.hasValueState ? `${this._id}-valueStateDesc` : undefined; + } + + get isDisabled() { + return this.disabled || undefined; + } + get _headerTitleText() { return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE); }