@@ -6,6 +6,8 @@ import ScrollEnablement from "@ui5/webcomponents-base/dist/delegate/ScrollEnable
6
6
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js" ;
7
7
import { fetchI18nBundle , getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js" ;
8
8
import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js" ;
9
+ import { isPhone } from "@ui5/webcomponents-base/dist/Device.js" ;
10
+ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js" ;
9
11
import ResponsivePopover from "./ResponsivePopover.js" ;
10
12
import List from "./List.js" ;
11
13
import StandardListItem from "./StandardListItem.js" ;
@@ -15,6 +17,8 @@ import { MULTIINPUT_SHOW_MORE_TOKENS, TOKENIZER_ARIA_LABEL, TOKENIZER_POPOVER_RE
15
17
16
18
// Styles
17
19
import styles from "./generated/themes/Tokenizer.css.js" ;
20
+ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js" ;
21
+ import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js" ;
18
22
19
23
/**
20
24
* @public
@@ -29,6 +33,10 @@ const metadata = {
29
33
type : HTMLElement ,
30
34
individualSlots : true ,
31
35
} ,
36
+ "valueStateMessage" : {
37
+ propertyName : "valueStateMessage" ,
38
+ type : HTMLElement ,
39
+ } ,
32
40
} ,
33
41
properties : /** @lends sap.ui.webcomponents.main.Tokenizer.prototype */ {
34
42
showMore : { type : Boolean } ,
@@ -48,6 +56,18 @@ const metadata = {
48
56
type : Integer ,
49
57
} ,
50
58
59
+ /**
60
+ * Indicates the value state of the related input component.
61
+ *
62
+ * @type {ValueState }
63
+ * @defaultvalue "None"
64
+ * @private
65
+ */
66
+ valueState : {
67
+ type : ValueState ,
68
+ defaultValue : ValueState . None ,
69
+ } ,
70
+
51
71
_nMoreCount : { type : Integer } ,
52
72
} ,
53
73
events : /** @lends sap.ui.webcomponents.main.Tokenizer.prototype */ {
@@ -97,6 +117,10 @@ class Tokenizer extends UI5Element {
97
117
return styles ;
98
118
}
99
119
120
+ static get staticAreaStyles ( ) {
121
+ return [ ResponsivePopoverCommonCss , ValueStateMessageCss ] ;
122
+ }
123
+
100
124
static get staticAreaTemplate ( ) {
101
125
return TokenizerPopoverTemplate ;
102
126
}
@@ -282,6 +306,18 @@ class Tokenizer extends UI5Element {
282
306
} ) ;
283
307
}
284
308
309
+ get hasValueState ( ) {
310
+ return this . valueState === ValueState . None || this . valueState === ValueState . Success ;
311
+ }
312
+
313
+ get valueStateMessageText ( ) {
314
+ return this . getSlottedNodes ( "valueStateMessage" ) . map ( el => el . cloneNode ( true ) ) ;
315
+ }
316
+
317
+ get _isPhone ( ) {
318
+ return isPhone ( ) ;
319
+ }
320
+
285
321
get classes ( ) {
286
322
return {
287
323
wrapper : {
@@ -293,6 +329,14 @@ class Tokenizer extends UI5Element {
293
329
"ui5-tokenizer--content" : true ,
294
330
"ui5-tokenizer-nmore--content" : this . showMore ,
295
331
} ,
332
+ popoverValueState : {
333
+ "ui5-valuestatemessage-root" : true ,
334
+ "ui5-responsive-popover-header" : this . showPopover ,
335
+ "ui5-valuestatemessage--success" : this . valueState === ValueState . Success ,
336
+ "ui5-valuestatemessage--error" : this . valueState === ValueState . Error ,
337
+ "ui5-valuestatemessage--warning" : this . valueState === ValueState . Warning ,
338
+ "ui5-valuestatemessage--information" : this . valueState === ValueState . Information ,
339
+ } ,
296
340
} ;
297
341
}
298
342
@@ -301,6 +345,17 @@ class Tokenizer extends UI5Element {
301
345
popover : {
302
346
"min-width" : `${ this . popoverMinWidth } px` ,
303
347
} ,
348
+ popoverValueStateMessage : {
349
+ "width" : isPhone ( ) ? "100%" : `${ this . popoverMinWidth } px` ,
350
+ "min-height" : "2rem" ,
351
+ "padding" : isPhone ( ) ? "0.25rem 1rem" : "0.3rem 0.625rem" ,
352
+ } ,
353
+ popoverHeader : {
354
+ "min-height" : "2rem" ,
355
+ } ,
356
+ popoverHeaderTitle : {
357
+ "justify-content" : "left" ,
358
+ } ,
304
359
} ;
305
360
}
306
361
0 commit comments