@sapudex/web-components 0.192.4 → 0.199.3

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 (250) hide show
  1. package/bundle.esm.js +2 -0
  2. package/dist/Button.d.ts +2 -1
  3. package/dist/Button.js +2 -1
  4. package/dist/Button.js.map +1 -1
  5. package/dist/ControlButton.d.ts +11 -6
  6. package/dist/ControlButton.js +19 -7
  7. package/dist/ControlButton.js.map +1 -1
  8. package/dist/CountrySelector.js +1 -1
  9. package/dist/CountrySelector.js.map +1 -1
  10. package/dist/Footer.d.ts +1 -6
  11. package/dist/Footer.js +2 -9
  12. package/dist/Footer.js.map +1 -1
  13. package/dist/Link.d.ts +5 -0
  14. package/dist/Link.js +6 -0
  15. package/dist/Link.js.map +1 -1
  16. package/dist/List.d.ts +3 -2
  17. package/dist/List.js +10 -5
  18. package/dist/List.js.map +1 -1
  19. package/dist/ListGroupHeader.d.ts +1 -1
  20. package/dist/ListGroupHeader.js +2 -1
  21. package/dist/ListGroupHeader.js.map +1 -1
  22. package/dist/ListGroupHeaderBase.js +3 -3
  23. package/dist/ListGroupHeaderBase.js.map +1 -1
  24. package/dist/ListItem.d.ts +1 -1
  25. package/dist/ListItem.js +8 -7
  26. package/dist/ListItem.js.map +1 -1
  27. package/dist/ListItemBase.d.ts +1 -1
  28. package/dist/ListItemBase.js +1 -1
  29. package/dist/ListItemBase.js.map +1 -1
  30. package/dist/ListSelectAll.js +4 -5
  31. package/dist/ListSelectAll.js.map +1 -1
  32. package/dist/MastheadItem.d.ts +1 -6
  33. package/dist/MastheadItem.js +3 -9
  34. package/dist/MastheadItem.js.map +1 -1
  35. package/dist/MastheadMenuItem.d.ts +8 -5
  36. package/dist/MastheadMenuItem.js +9 -7
  37. package/dist/MastheadMenuItem.js.map +1 -1
  38. package/dist/MastheadShell.js +2 -2
  39. package/dist/MastheadShell.js.map +1 -1
  40. package/dist/MediaPlayer.js +3 -2
  41. package/dist/MediaPlayer.js.map +1 -1
  42. package/dist/MessageStrip.d.ts +9 -38
  43. package/dist/MessageStrip.js +30 -56
  44. package/dist/MessageStrip.js.map +1 -1
  45. package/dist/PhoneNumberField.js +7 -2
  46. package/dist/PhoneNumberField.js.map +1 -1
  47. package/dist/SecondaryNavigation.d.ts +0 -1
  48. package/dist/SecondaryNavigation.js +3 -3
  49. package/dist/SecondaryNavigation.js.map +1 -1
  50. package/dist/SecondaryNavigationItemBase.d.ts +1 -6
  51. package/dist/SecondaryNavigationItemBase.js +3 -9
  52. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  53. package/dist/SegmentedButton.d.ts +2 -2
  54. package/dist/SegmentedButton.js +3 -2
  55. package/dist/SegmentedButton.js.map +1 -1
  56. package/dist/SegmentedButtonItem.d.ts +2 -6
  57. package/dist/SegmentedButtonItem.js +2 -7
  58. package/dist/SegmentedButtonItem.js.map +1 -1
  59. package/dist/SelectBox.d.ts +9 -1
  60. package/dist/SelectBox.js +14 -1
  61. package/dist/SelectBox.js.map +1 -1
  62. package/dist/Tab.d.ts +1 -6
  63. package/dist/Tab.js +1 -7
  64. package/dist/Tab.js.map +1 -1
  65. package/dist/Upload.d.ts +110 -0
  66. package/dist/Upload.js +198 -0
  67. package/dist/Upload.js.map +1 -0
  68. package/dist/UploadItem.d.ts +101 -0
  69. package/dist/UploadItem.js +151 -0
  70. package/dist/UploadItem.js.map +1 -0
  71. package/dist/assets/{bundle-c5e3cbf2.css → bundle-7a4a3e16.css} +1 -1
  72. package/dist/assets/{bundle.esm-aa637b3f.js → bundle.esm-44fd7c69.js} +208 -191
  73. package/dist/assets/messagebundle_en-59e0affd.js +1 -0
  74. package/dist/css/themes/Avatar.css +1 -1
  75. package/dist/css/themes/Button.css +1 -1
  76. package/dist/css/themes/CountrySelector.css +1 -1
  77. package/dist/css/themes/Link.css +1 -1
  78. package/dist/css/themes/Pagination.css +1 -1
  79. package/dist/css/themes/RatingIndicator.css +1 -1
  80. package/dist/css/themes/Slider.css +1 -1
  81. package/dist/css/themes/StatusBadge.css +1 -1
  82. package/dist/css/themes/TagGroup.css +1 -1
  83. package/dist/css/themes/TextField.css +1 -1
  84. package/dist/css/themes/Upload.css +1 -0
  85. package/dist/css/themes/UploadItem.css +1 -0
  86. package/dist/custom-elements-internal.json +470 -26
  87. package/dist/custom-elements.json +431 -21
  88. package/dist/features/SearchSuggestionsPopover.js +1 -1
  89. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  91. package/dist/generated/i18n/i18n-defaults.d.ts +6 -1
  92. package/dist/generated/i18n/i18n-defaults.js +10 -5
  93. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  94. package/dist/generated/templates/ListItemTemplate.lit.js +4 -4
  95. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  96. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  97. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  98. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  99. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  100. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
  101. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  102. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  103. package/dist/generated/templates/MessageStripTemplate.lit.js.map +1 -1
  104. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +1 -1
  105. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  106. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  107. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  108. package/dist/generated/templates/TagGroupTemplate.lit.js +2 -2
  109. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -1
  110. package/dist/generated/templates/TileTemplate.lit.js +2 -2
  111. package/dist/generated/templates/TileTemplate.lit.js.map +1 -1
  112. package/dist/generated/templates/UploadItemTemplate.lit.d.ts +4 -0
  113. package/dist/generated/templates/UploadItemTemplate.lit.js +10 -0
  114. package/dist/generated/templates/UploadItemTemplate.lit.js.map +1 -0
  115. package/dist/generated/templates/UploadTemplate.lit.d.ts +4 -0
  116. package/dist/generated/templates/UploadTemplate.lit.js +8 -0
  117. package/dist/generated/templates/UploadTemplate.lit.js.map +1 -0
  118. package/dist/generated/themes/Avatar.css.js +1 -1
  119. package/dist/generated/themes/Avatar.css.js.map +1 -1
  120. package/dist/generated/themes/Button.css.js +1 -1
  121. package/dist/generated/themes/Button.css.js.map +1 -1
  122. package/dist/generated/themes/CountrySelector.css.js +1 -1
  123. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  124. package/dist/generated/themes/Link.css.js +1 -1
  125. package/dist/generated/themes/Link.css.js.map +1 -1
  126. package/dist/generated/themes/Pagination.css.js +1 -1
  127. package/dist/generated/themes/Pagination.css.js.map +1 -1
  128. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  129. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  130. package/dist/generated/themes/Slider.css.js +1 -1
  131. package/dist/generated/themes/Slider.css.js.map +1 -1
  132. package/dist/generated/themes/StatusBadge.css.js +1 -1
  133. package/dist/generated/themes/StatusBadge.css.js.map +1 -1
  134. package/dist/generated/themes/TagGroup.css.js +1 -1
  135. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  136. package/dist/generated/themes/TextField.css.js +1 -1
  137. package/dist/generated/themes/TextField.css.js.map +1 -1
  138. package/dist/generated/themes/Upload.css.d.ts +3 -0
  139. package/dist/generated/themes/Upload.css.js +9 -0
  140. package/dist/generated/themes/Upload.css.js.map +1 -0
  141. package/dist/generated/themes/UploadItem.css.d.ts +3 -0
  142. package/dist/generated/themes/UploadItem.css.js +9 -0
  143. package/dist/generated/themes/UploadItem.css.js.map +1 -0
  144. package/dist/i18n/messagebundle.properties +13 -4
  145. package/dist/i18n/messagebundle_en.properties +9 -4
  146. package/dist/types/ButtonSize.d.ts +6 -0
  147. package/dist/types/ButtonSize.js +8 -0
  148. package/dist/types/ButtonSize.js.map +1 -0
  149. package/dist/types/FileData.d.ts +5 -0
  150. package/dist/types/FileData.js +2 -0
  151. package/dist/types/FileData.js.map +1 -0
  152. package/dist/types/FileUploadState.d.ts +6 -0
  153. package/dist/types/FileUploadState.js +8 -0
  154. package/dist/types/FileUploadState.js.map +1 -0
  155. package/dist/types/MessageStrip.d.ts +12 -0
  156. package/dist/types/MessageStrip.js +15 -0
  157. package/dist/types/MessageStrip.js.map +1 -0
  158. package/dist/types/common.d.ts +6 -0
  159. package/dist/types/common.js +7 -0
  160. package/dist/types/common.js.map +1 -1
  161. package/dist/utils/Breakpoints.d.ts +33 -0
  162. package/dist/utils/Breakpoints.js +33 -0
  163. package/dist/utils/Breakpoints.js.map +1 -0
  164. package/dist/utils/convertBytesToMegabytes.d.ts +2 -0
  165. package/dist/utils/convertBytesToMegabytes.js +3 -0
  166. package/dist/utils/convertBytesToMegabytes.js.map +1 -0
  167. package/dist/vscode.html-custom-data.json +83 -1
  168. package/dist/web-types.json +191 -4
  169. package/package.json +2 -2
  170. package/src/Button.ts +5 -2
  171. package/src/ControlButton.ts +29 -8
  172. package/src/CountrySelector.ts +1 -1
  173. package/src/Footer.ts +3 -9
  174. package/src/Link.ts +12 -0
  175. package/src/List.hbs +4 -2
  176. package/src/List.ts +14 -8
  177. package/src/ListGroupHeader.ts +4 -2
  178. package/src/ListGroupHeaderBase.ts +12 -11
  179. package/src/ListItem.hbs +3 -1
  180. package/src/ListItem.ts +19 -15
  181. package/src/ListItemBase.ts +10 -10
  182. package/src/ListSelectAll.ts +5 -5
  183. package/src/MastheadItem.ts +3 -11
  184. package/src/MastheadMenuItem.hbs +1 -1
  185. package/src/MastheadMenuItem.ts +14 -7
  186. package/src/MastheadMobileMenu.hbs +1 -0
  187. package/src/MastheadShell.ts +2 -2
  188. package/src/MediaPlayer.ts +3 -3
  189. package/src/MessageStrip.hbs +1 -1
  190. package/src/MessageStrip.ts +38 -68
  191. package/src/PhoneNumberField.hbs +2 -2
  192. package/src/PhoneNumberField.ts +9 -4
  193. package/src/SecondaryNavigation.ts +3 -3
  194. package/src/SecondaryNavigationItemBase.ts +3 -9
  195. package/src/SegmentedButton.ts +4 -3
  196. package/src/SegmentedButtonItem.ts +3 -8
  197. package/src/SelectBox.hbs +19 -23
  198. package/src/SelectBox.ts +23 -1
  199. package/src/Tab.ts +1 -8
  200. package/src/TagGroup.hbs +20 -20
  201. package/src/Tile.hbs +3 -2
  202. package/src/Upload.hbs +21 -0
  203. package/src/Upload.ts +273 -0
  204. package/src/UploadItem.hbs +32 -0
  205. package/src/UploadItem.ts +218 -0
  206. package/src/features/SearchSuggestionsPopover.ts +1 -1
  207. package/src/generated/i18n/i18n-defaults.ts +2 -2
  208. package/src/generated/templates/ListItemTemplate.lit.ts +4 -4
  209. package/src/generated/templates/ListTemplate.lit.ts +2 -2
  210. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  211. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
  212. package/src/generated/templates/MessageStripTemplate.lit.ts +1 -1
  213. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
  214. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  215. package/src/generated/templates/TagGroupTemplate.lit.ts +2 -2
  216. package/src/generated/templates/TileTemplate.lit.ts +2 -2
  217. package/src/generated/templates/UploadItemTemplate.lit.ts +15 -0
  218. package/src/generated/templates/UploadTemplate.lit.ts +13 -0
  219. package/src/generated/themes/Avatar.css.ts +1 -1
  220. package/src/generated/themes/Button.css.ts +1 -1
  221. package/src/generated/themes/CountrySelector.css.ts +1 -1
  222. package/src/generated/themes/Link.css.ts +1 -1
  223. package/src/generated/themes/Pagination.css.ts +1 -1
  224. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  225. package/src/generated/themes/Slider.css.ts +1 -1
  226. package/src/generated/themes/StatusBadge.css.ts +1 -1
  227. package/src/generated/themes/TagGroup.css.ts +1 -1
  228. package/src/generated/themes/TextField.css.ts +1 -1
  229. package/src/generated/themes/Upload.css.ts +13 -0
  230. package/src/generated/themes/UploadItem.css.ts +13 -0
  231. package/src/i18n/messagebundle.properties +13 -4
  232. package/src/i18n/messagebundle_en.properties +9 -4
  233. package/src/themes/Avatar.css +36 -45
  234. package/src/themes/Button.css +3 -3
  235. package/src/themes/CountrySelector.css +1 -0
  236. package/src/themes/Link.css +17 -4
  237. package/src/themes/Pagination.css +1 -1
  238. package/src/themes/StatusBadge.css +9 -9
  239. package/src/themes/TagGroup.css +0 -4
  240. package/src/themes/TextField.css +2 -1
  241. package/src/themes/Upload.css +65 -0
  242. package/src/themes/UploadItem.css +131 -0
  243. package/src/types/ButtonSize.ts +7 -0
  244. package/src/types/FileData.ts +6 -0
  245. package/src/types/FileUploadState.ts +7 -0
  246. package/src/types/MessageStrip.ts +13 -0
  247. package/src/types/common.ts +7 -0
  248. package/src/utils/Breakpoints.ts +41 -0
  249. package/src/utils/convertBytesToMegabytes.ts +3 -0
  250. package/dist/assets/messagebundle_en-06c0dadc.js +0 -1
@@ -114,14 +114,14 @@ class UDExListItemBase extends UI5Element {
114
114
  @property({ type: String })
115
115
  _tabIndex!: string;
116
116
 
117
- get _effectiveTabIndex() {
117
+ get _effectiveTabIndex(): string {
118
118
  if (this.disabled) {
119
- return -1;
119
+ return "-1";
120
120
  }
121
121
  return this._tabIndex;
122
122
  }
123
123
 
124
- get numberOfItem() {
124
+ get numberOfItem(): number {
125
125
  return [...this.parentNode!.children].indexOf(this) + 1;
126
126
  }
127
127
 
@@ -129,31 +129,31 @@ class UDExListItemBase extends UI5Element {
129
129
  return false;
130
130
  }
131
131
 
132
- get modeRadioGroup() {
132
+ get modeRadioGroup(): boolean {
133
133
  return this.mode === ListMode.RadioGroup;
134
134
  }
135
135
 
136
- get modeMultiSelect() {
136
+ get modeMultiSelect(): boolean {
137
137
  return this.mode === ListMode.MultiSelect;
138
138
  }
139
139
 
140
- get modeSingleSelect() {
140
+ get modeSingleSelect(): boolean {
141
141
  return this.mode === ListMode.SingleSelect;
142
142
  }
143
143
 
144
- get modeMultiSelectOrRadioGroup() {
144
+ get modeMultiSelectOrRadioGroup(): boolean {
145
145
  return this.modeMultiSelect || this.modeRadioGroup;
146
146
  }
147
147
 
148
- get typeNumber() {
148
+ get typeNumber(): boolean {
149
149
  return this.type === ListStyleType.Number;
150
150
  }
151
151
 
152
- get typeCircle() {
152
+ get typeCircle(): boolean {
153
153
  return this.type === ListStyleType.Circle;
154
154
  }
155
155
 
156
- get typeIcon() {
156
+ get typeIcon(): boolean {
157
157
  return this.type === ListStyleType.Icon;
158
158
  }
159
159
  }
@@ -13,6 +13,9 @@ import UDExListItem from "./ListItem.js";
13
13
  // Styles
14
14
  import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css";
15
15
 
16
+ const selectAllClass: string = "udex-list__header-select-all";
17
+ const groupListClass: string = "udex-list__group-list";
18
+
16
19
  /**
17
20
  * @class
18
21
  *
@@ -89,14 +92,11 @@ class UDExListSelectAll extends UDExListGroupHeaderBase {
89
92
  }
90
93
 
91
94
  get additionalClassName(): string {
92
- const selectAllClassName = "udex-list__header-select-all";
93
- return `${selectAllClassName} ${this._additionalClassName}`;
95
+ return `${selectAllClass} ${this._additionalClassName}`;
94
96
  }
95
97
 
96
98
  get groupListClassName(): string {
97
- const className = "udex-list__group-list";
98
- const selectAllClassName = "udex--list__header-select-all";
99
- return `${className} ${this._additionalClassName} ${selectAllClassName}`;
99
+ return `${groupListClass} ${this._additionalClassName}`;
100
100
  }
101
101
  }
102
102
 
@@ -16,12 +16,11 @@ import UDExAvatar from "./Avatar.js";
16
16
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
17
17
  import UDExMastheadShell from "./MastheadShell.js";
18
18
  import MastheadItemTemplate from "./generated/templates/MastheadItemTemplate.lit.js";
19
-
19
+ import { Target } from "./types/common.js";
20
+ import { BreakpointUtils } from "./utils/Breakpoints.js";
20
21
  // Styles
21
22
  import MastheadItemCss from "./generated/themes/MastheadItem.css.js";
22
23
 
23
- const breakpointSizeM: number = 1279;
24
-
25
24
  export interface IMastheadItem {
26
25
  text?: string;
27
26
  selected?: boolean;
@@ -52,13 +51,6 @@ export type ItemClickEventDetail = {
52
51
  item: UDExMastheadItem,
53
52
  }
54
53
 
55
- export enum Target {
56
- _blank = "_blank",
57
- _parent = "_parent",
58
- _self = "_self",
59
- _top = "_top",
60
- }
61
-
62
54
  /**
63
55
  * @class
64
56
  *
@@ -447,7 +439,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
447
439
  }
448
440
 
449
441
  get isMobile(): boolean {
450
- return window.innerWidth < breakpointSizeM || this.mastheadShell?._isMobileMode;
442
+ return BreakpointUtils.isBelow("M") || this.mastheadShell?._isMobileMode;
451
443
  }
452
444
 
453
445
  get isTargetBlank(): boolean {
@@ -12,7 +12,7 @@
12
12
  role="{{accessibleRoleText}}"
13
13
  href="{{url}}"
14
14
  part="{{partAttr}}"
15
- target="{{target}}">
15
+ target="{{targetLink}}">
16
16
  {{#if iconStart}}
17
17
  {{>arrow-left}}
18
18
  {{/if}}
@@ -9,6 +9,7 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
10
10
  import "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
11
11
  import { OPENS_IN_A_NEW_WINDOW } from "./generated/i18n/i18n-defaults.js";
12
+ import { Target } from "./types/common.js";
12
13
 
13
14
  import MastheadMenuItemTemplate from "./generated/templates/MastheadMenuItemTemplate.lit.js";
14
15
 
@@ -20,11 +21,6 @@ export enum ItemType {
20
21
  Button = "Button",
21
22
  Link = "Link"
22
23
  }
23
-
24
- export enum Target {
25
- _blank = "_blank",
26
- _self = "_self",
27
- }
28
24
  /**
29
25
  * @class
30
26
  *
@@ -137,6 +133,14 @@ class UDExMastheadMenuItem extends UI5Element {
137
133
  @property({ type: Boolean })
138
134
  iconEnd?: boolean;
139
135
 
136
+ /**
137
+ * Define the target of the item
138
+ * <b>Note:</b> Standard hyperlink behavior is supported.
139
+ * @public
140
+ */
141
+ @property({ type: Target, defaultValue: Target._self })
142
+ target!: `${Target}`;
143
+
140
144
  static i18nBundle: I18nBundle;
141
145
 
142
146
  static async onDefine(): Promise<void> {
@@ -172,8 +176,11 @@ class UDExMastheadMenuItem extends UI5Element {
172
176
  return (this.type === ItemType.Link || !!this.url) && !this.isButtonType;
173
177
  }
174
178
 
175
- get target(): string {
176
- return this.externalLink ? Target._blank : Target._self;
179
+ get targetLink(): string {
180
+ if (this.externalLink) {
181
+ return this.externalLink ? Target._blank : Target._self;
182
+ }
183
+ return this.target;
177
184
  }
178
185
 
179
186
  get lastWordOfLabel(): string | undefined {
@@ -93,6 +93,7 @@
93
93
  @click="{{../handleMobileItemEvent}}"
94
94
  url="{{this.href}}"
95
95
  label="{{this.innerText}}"
96
+ target="{{this.target}}"
96
97
  has-border>
97
98
  </udex-masthead-menu-item>
98
99
  {{/if}}
@@ -23,11 +23,11 @@ import UDExSearch from "./Search.js";
23
23
  import UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
24
24
  import UDExMastheadProfileMenu from "./MastheadProfileMenu.js";
25
25
  import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.lit.js";
26
+ import { BreakpointUtils } from "./utils/Breakpoints.js";
26
27
 
27
28
  // Styles
28
29
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
29
30
 
30
- const breakpointSizeM: number = 1279;
31
31
  const canvasContentFont = "16px '72 Brand Variable'";
32
32
  type MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | undefined | null;
33
33
  type MastheadItemType = UDExMastheadItem | null | undefined;
@@ -728,7 +728,7 @@ class UDExMastheadShell extends UI5Element {
728
728
  }
729
729
 
730
730
  get isBreakpointSizeM(): boolean {
731
- return window.innerWidth <= breakpointSizeM;
731
+ return BreakpointUtils.isAtMost("M");
732
732
  }
733
733
 
734
734
  get isMainMenuVisible(): boolean {
@@ -5,6 +5,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
5
5
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
6
6
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
7
7
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
8
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
8
9
  import "@ui5/webcomponents-icons/dist/play.js";
9
10
  import "@ui5/webcomponents-icons/dist/v5/play.svg";
10
11
  import Player from "video.js/dist/types/player.js";
@@ -63,7 +64,7 @@ export interface VideoJSPlayer extends Player{
63
64
  renderer: litRender,
64
65
  styles: MediaPlayerCss,
65
66
  template: MediaPlayerTemplate,
66
- dependencies: [UDExMediaPlayerYoutube, UDExMediaPlayerVimeo],
67
+ dependencies: [Icon, UDExMediaPlayerYoutube, UDExMediaPlayerVimeo],
67
68
  })
68
69
  /**
69
70
  * Fires when video is played
@@ -247,11 +248,10 @@ class UDExMediaPlayer extends UI5Element {
247
248
  videoProgress!: number;
248
249
 
249
250
  getPlayedTime = (target: EventTarget): number => {
250
- const progressControl: SeekBar = (target as any)?.player.controlBar?.ProgressControl?.childNameIndex_.seekBar;
251
+ const progressControl: SeekBar = (target as any)?.player.controlBar?.progressControl?.childNameIndex_.seekBar;
251
252
  if (!progressControl) {
252
253
  return 0;
253
254
  }
254
-
255
255
  return Math.round(progressControl.getPercent() * 100);
256
256
  };
257
257
 
@@ -7,7 +7,7 @@
7
7
  <div
8
8
  class="ui5-message-strip-icon-wrapper udex-message-strip"
9
9
  aria-hidden="true">
10
- {{#if iconProvided}}
10
+ {{#if this.hasIcon}}
11
11
  <slot name="icon"></slot>
12
12
  {{else}}
13
13
  <ui5-icon name="{{standardIconName}}" class="ui5-message-strip-icon"></ui5-icon>
@@ -18,49 +18,15 @@ import {
18
18
  MESSAGE_STRIP_INFORMATION,
19
19
  MESSAGE_STRIP_SUCCESS,
20
20
  MESSAGE_STRIP_WARNING,
21
+ MESSAGE_STRIP_ACTION,
21
22
  } from "./generated/i18n/i18n-defaults.js";
23
+ import { UdexMessageStripDesign, UdexMessageStripStatusType } from "./types/MessageStrip.js";
22
24
 
23
25
  import MessageStripTemplate from "./generated/templates/MessageStripTemplate.lit.js";
24
26
 
25
27
  // Styles
26
28
  import MessageStripCss from "./generated/themes/MessageStrip.css.js";
27
29
 
28
- export enum MessageStripDesign {
29
- /**
30
- * Message should be just an information
31
- * @public
32
- */
33
- Information = "Information",
34
- /**
35
- * Message is a success message
36
- * @public
37
- */
38
- Positive = "Positive",
39
- /**
40
- * Message is an error
41
- * @public
42
- */
43
- Negative = "Negative",
44
- /**
45
- * Message is a warning
46
- * @public
47
- */
48
- Warning = "Warning",
49
- /**
50
- * Message is an action
51
- * @public
52
- */
53
- Action = "Action",
54
- }
55
-
56
- export enum UdexMessageStripStatusType {
57
- Icon = "Icon",
58
- Text = "Text",
59
- None = "None",
60
- }
61
-
62
- type textStatusType = Record<Exclude<MessageStripDesign, "Action">, string>;
63
-
64
30
  /**
65
31
  * @class
66
32
  *
@@ -90,11 +56,11 @@ class UDExMessageStrip extends MessageStrip {
90
56
  * @public
91
57
  */
92
58
  @property({
93
- type: MessageStripDesign,
94
- defaultValue: MessageStripDesign.Action,
59
+ type: UdexMessageStripDesign,
60
+ defaultValue: UdexMessageStripDesign.Action,
95
61
  })
96
62
  /** @ts-expect-error */
97
- design!: `${MessageStripDesign}`;
63
+ design!: `${UdexMessageStripDesign}`;
98
64
 
99
65
  /**
100
66
  * Defines the component Status Type.
@@ -137,66 +103,70 @@ class UDExMessageStrip extends MessageStrip {
137
103
  UDExMessageStrip.i18nBundle = await getI18nBundle("@udex/web-components");
138
104
  }
139
105
 
106
+ onBeforeRendering() {
107
+ if (this.isDesignActionOrIsNotIconType) {
108
+ this.hideIcon = true;
109
+ }
110
+ }
111
+
140
112
  getTranslation(text: I18nText): string {
141
113
  return UDExMessageStrip.i18nBundle.getText(text);
142
114
  }
143
115
 
144
- textStatusTypeMapping(): textStatusType {
116
+ textStatusTypeMapping(): Record<string, string> {
145
117
  return {
146
- Information: this.getTranslation(MESSAGE_STRIP_INFORMATION),
147
- Positive: this.getTranslation(MESSAGE_STRIP_SUCCESS),
148
- Negative: this.getTranslation(MESSAGE_STRIP_ERROR),
149
- Warning: this.getTranslation(MESSAGE_STRIP_WARNING),
118
+ [UdexMessageStripDesign.Information]: this.getTranslation(MESSAGE_STRIP_INFORMATION),
119
+ [UdexMessageStripDesign.Positive]: this.getTranslation(MESSAGE_STRIP_SUCCESS),
120
+ [UdexMessageStripDesign.Negative]: this.getTranslation(MESSAGE_STRIP_ERROR),
121
+ [UdexMessageStripDesign.Warning]: this.getTranslation(MESSAGE_STRIP_WARNING),
122
+ [UdexMessageStripDesign.Action]: this.getTranslation(MESSAGE_STRIP_ACTION),
150
123
  };
151
124
  }
152
125
 
153
- onBeforeRendering() {
154
- if (
155
- this.isDesignAction()
156
- || this.statusType !== UdexMessageStripStatusType.Icon
157
- ) {
158
- this.hideIcon = true;
159
- }
126
+ isDesignAction(): boolean {
127
+ return this.design === UdexMessageStripDesign.Action;
160
128
  }
161
129
 
162
- isDesignAction() {
163
- return this.design === MessageStripDesign.Action;
130
+ _closeClick(): void {
131
+ this.fireEvent("close");
164
132
  }
165
133
 
166
- get shouldHideIcon() {
167
- if (
168
- this.isDesignAction()
169
- || this.statusType !== UdexMessageStripStatusType.Icon
170
- ) {
134
+ get shouldHideIcon(): boolean {
135
+ if (this.isDesignActionOrIsNotIconType) {
171
136
  return this.hideIcon || this.icon.length === 0;
172
137
  }
173
138
 
174
139
  return this.hideIcon;
175
140
  }
176
141
 
177
- get hideTextStatus() {
178
- return (
179
- this.statusType !== UdexMessageStripStatusType.Text
180
- || this.isDesignAction()
181
- );
142
+ get hideTextStatus(): boolean {
143
+ return this.statusType !== UdexMessageStripStatusType.Text || this.isDesignAction();
182
144
  }
183
145
 
184
146
  get textStatus(): string | undefined {
185
- if (this.design !== MessageStripDesign.Action) {
147
+ if (this.design !== UdexMessageStripDesign.Action) {
186
148
  return this.textStatusTypeMapping()[this.design];
187
149
  }
188
150
  }
189
151
 
190
- get _closeButtonText() {
152
+ get _closeButtonText(): string {
191
153
  return `${this.textStatus ?? ""} ${this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON)}`;
192
154
  }
193
155
 
194
- get iconProvided() {
156
+ get isNotIconStatusType(): boolean {
157
+ return this.statusType !== UdexMessageStripStatusType.Icon;
158
+ }
159
+
160
+ get hasIcon(): boolean {
195
161
  return this.icon.length > 0;
196
162
  }
197
163
 
198
- _closeClick() {
199
- this.fireEvent("close");
164
+ get isDesignActionOrIsNotIconType(): boolean {
165
+ return this.isDesignAction() || this.isNotIconStatusType;
166
+ }
167
+
168
+ get hiddenText(): string {
169
+ return `${this.textStatusTypeMapping()[this.design]} ${this.hideCloseButton ? "" : this._closableText}`;
200
170
  }
201
171
  }
202
172
 
@@ -95,8 +95,8 @@
95
95
  @click="{{handleClick}}"
96
96
  @focus="{{handleFocus}}"
97
97
  @blur="{{handleBlur}}"
98
- @keydown={{handleKeyDown}}
99
- @keyup={{handleKeyUp}}
98
+ @keydown="{{handleKeyDown}}"
99
+ @keyup="{{handleKeyUp}}"
100
100
  >
101
101
  </div>
102
102
  </div>
@@ -345,7 +345,6 @@ class UDExPhoneNumberField extends UI5Element {
345
345
 
346
346
  handleInput(e: InputEvent) {
347
347
  this.value = (e.target as HTMLInputElement)?.value.trim();
348
-
349
348
  this.applyPhoneMask();
350
349
 
351
350
  if (!this.value.startsWith(this.selectedPhonePrefix)) {
@@ -379,6 +378,10 @@ class UDExPhoneNumberField extends UI5Element {
379
378
  };
380
379
 
381
380
  handleKeyUp() {
381
+ if (this.isInputReadonly) {
382
+ return;
383
+ }
384
+
382
385
  this.value = this.value.replace(/[^\d+ ()-]/g, "").trim();
383
386
  this.applyPhoneMask();
384
387
  }
@@ -389,7 +392,7 @@ class UDExPhoneNumberField extends UI5Element {
389
392
  this.phoneFormat = initialPlaceholder;
390
393
  }
391
394
 
392
- if (this.value.length === 0 || this.value === "+") {
395
+ if ((this.value.length === 0 || this.value === "+") && !this.isInputReadonly) {
393
396
  this.value = this.selectedPhonePrefix;
394
397
  }
395
398
  }
@@ -410,11 +413,13 @@ class UDExPhoneNumberField extends UI5Element {
410
413
  const isIncorrectPrefixEntered = enteredPrefix !== this.selectedPhonePrefix;
411
414
 
412
415
  const isIncorrectNumberEntered = !this.countryIso || this.value.length <= prefixLength || isIncorrectPrefixEntered;
413
-
414
416
  if (isIncorrectNumberEntered) {
415
417
  this.value = "";
416
418
  }
417
- this.fireEvent("change");
419
+
420
+ if (!this.isInputReadonly) {
421
+ this.fireEvent("change");
422
+ }
418
423
  }
419
424
 
420
425
  handleSelect(e: CustomEvent) {
@@ -16,12 +16,12 @@ import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
16
16
  import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
17
17
  import { MORE } from "./generated/i18n/i18n-defaults.js";
18
18
  import SecondaryNavigationTemplate from "./generated/templates/SecondaryNavigationTemplate.lit.js";
19
+ import { BreakpointUtils } from "./utils/Breakpoints.js";
19
20
  // Styles
20
21
  import SecondaryNavigationCss from "./generated/themes/SecondaryNavigation.css.js";
21
22
 
22
23
  const canvasContentFont: string = "16px / 17.6px '72 Brand Variable'";
23
24
  const rootClass = "udex-secondary-navigation__root";
24
- export const breakpointSizeS: number = 979;
25
25
 
26
26
  export type ItemClickDetail = {
27
27
  originalEvent: Event,
@@ -464,11 +464,11 @@ class UDExSecondaryNavigation extends UI5Element {
464
464
  }
465
465
 
466
466
  get isDesktopScreen(): boolean {
467
- return window.innerWidth > breakpointSizeS;
467
+ return BreakpointUtils.isAtLeast("M");
468
468
  }
469
469
 
470
470
  get isMobileScreen(): boolean {
471
- return window.innerWidth <= breakpointSizeS;
471
+ return BreakpointUtils.isAtMost("S");
472
472
  }
473
473
  }
474
474
 
@@ -5,14 +5,8 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
6
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
7
7
  import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
8
- import { breakpointSizeS } from "./SecondaryNavigation.js";
9
-
10
- export enum Target {
11
- _blank = "_blank",
12
- _parent = "_parent",
13
- _self = "_self",
14
- _top = "_top",
15
- }
8
+ import { Target } from "./types/common.js";
9
+ import { BreakpointUtils } from "./utils/Breakpoints.js";
16
10
 
17
11
  export type NavItem = {
18
12
  path?: string;
@@ -146,7 +140,7 @@ class UDExSecondaryNavigationItemBase extends UI5Element {
146
140
  }
147
141
 
148
142
  get isMobile(): boolean {
149
- return window.innerWidth <= breakpointSizeS;
143
+ return BreakpointUtils.isAtMost("S");
150
144
  }
151
145
  }
152
146
 
@@ -9,7 +9,8 @@ import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsSco
9
9
  // Styles
10
10
  import SegmentedButtonMode from "@ui5/webcomponents/dist/types/SegmentedButtonMode.js";
11
11
  import SegmentedButtonCss from "./generated/themes/SegmentedButton.css.js";
12
- import UDExSegmentedButtonItem, { SegmentedButtonItemSize } from "./SegmentedButtonItem.js";
12
+ import UDExSegmentedButtonItem from "./SegmentedButtonItem.js";
13
+ import UDExButtonSize from "./types/ButtonSize.js";
13
14
 
14
15
  export enum SegmentedButtonSelectionMode {
15
16
  /**
@@ -55,8 +56,8 @@ class UDExSegmentedButton extends SegmentedButton {
55
56
  * @default "Medium"
56
57
  * @public
57
58
  */
58
- @property({ type: SegmentedButtonItemSize, defaultValue: SegmentedButtonItemSize.Medium })
59
- size!: `${SegmentedButtonItemSize}`;
59
+ @property({ type: UDExButtonSize, defaultValue: UDExButtonSize.Medium })
60
+ size!: `${UDExButtonSize}`;
60
61
 
61
62
  onBeforeRendering() {
62
63
  const items = this.getSlottedNodes<UDExSegmentedButtonItem>("items");
@@ -5,12 +5,7 @@ import SegmentedButtonItem from "@ui5/webcomponents/dist/SegmentedButtonItem.js"
5
5
  // Styles
6
6
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
7
  import SegmentedButtonItemCss from "./generated/themes/SegmentedButtonItem.css.js";
8
-
9
- export enum SegmentedButtonItemSize {
10
- Small = "Small",
11
- Medium = "Medium",
12
- Large = "Large",
13
- }
8
+ import UDExButtonSize from "./types/ButtonSize.js";
14
9
 
15
10
  /**
16
11
  * @class
@@ -41,8 +36,8 @@ class UDExSegmentedButtonItem extends SegmentedButtonItem {
41
36
  * @default "Medium"
42
37
  * @public
43
38
  */
44
- @property({ type: SegmentedButtonItemSize, defaultValue: SegmentedButtonItemSize.Medium })
45
- size!: `${SegmentedButtonItemSize}`;
39
+ @property({ type: UDExButtonSize, defaultValue: UDExButtonSize.Medium })
40
+ size!: `${UDExButtonSize}`;
46
41
  }
47
42
 
48
43
  UDExSegmentedButtonItem.define();
package/src/SelectBox.hbs CHANGED
@@ -13,13 +13,12 @@
13
13
  ?disabled="{{disabled}}"
14
14
  ?displayonly="{{displayonly}}"
15
15
  ?readonly="{{readonly}}"
16
- role="combobox"
17
16
  aria-label="{{accInfo.ariaLabel}}"
18
17
  aria-labelledby="{{accInfo.ariaLabelledBy}}"
19
18
  aria-readonly="{{isReadOrDisplayOnly}}"
20
19
  aria-disabled="{{disabled}}"
21
- aria-haspopup="listbox"
22
- aria-controls="udex-select-box__dropdown"
20
+ aria-haspopup="{{listboxRole}}"
21
+ aria-controls="{{popoverId}}"
23
22
  aria-expanded="{{tokenizerExpanded}}"
24
23
  aria-activedescendant>
25
24
  {{#if label}}
@@ -39,21 +38,21 @@
39
38
  {{/if}}
40
39
  {{#if showMultiSelectedOptions}}
41
40
  <udex-tag-group
42
- class="udex-tag-group"
43
- ?displayonly="{{displayonly}}"
44
- ?readonly="{{readonly}}"
45
- ?disabled="{{disabled}}"
46
- tooltip-placement="{{tooltipPlacement}}"
47
- @ui5-tag-click="{{handleTagPress}}"
48
- @ui5-show-more-tags="{{getHandlerShowMoreItems}}"
49
- @ui5-tag-keydown="{{handleKeyDownTag}}"
50
- ?expanded="{{tokenizerExpanded}}">
41
+ class="udex-tag-group"
42
+ ?displayonly="{{displayonly}}"
43
+ ?readonly="{{readonly}}"
44
+ ?disabled="{{disabled}}"
45
+ tooltip-placement="{{tooltipPlacement}}"
46
+ @ui5-tag-click="{{handleTagPress}}"
47
+ @ui5-show-more-tags="{{getHandlerShowMoreItems}}"
48
+ @ui5-tag-keydown="{{handleKeyDownTag}}"
49
+ ?expanded="{{tokenizerExpanded}}">
51
50
  {{#each selectedItems}}
52
51
  {{#unless this.isGroup}}
53
52
  <udex-tag
54
- text="{{this.label}}"
55
- id="{{this._id}}"
56
- icon="decline">
53
+ text="{{this.label}}"
54
+ id="{{this._id}}"
55
+ icon="decline">
57
56
  </udex-tag>
58
57
  {{/unless}}
59
58
  {{/each}}
@@ -61,18 +60,15 @@
61
60
  {{/if}}
62
61
  {{#if showTrigger}}
63
62
  <udex-control-button
64
- tabindex="{{triggerTabIndex}}"
63
+ .accessibilityAttributes="{{accessibilityAttributes}}"
65
64
  class="udex-text-field__trigger"
66
- role="combobox"
67
65
  size="Large"
68
66
  icon="navigation-down-arrow"
67
+ tabindex="{{triggerTabIndex}}"
69
68
  accessible-name="{{iconAccessibleNameText}}"
70
- aria-label="{{iconAccessibleNameText}}"
71
- aria-haspopup="listbox"
72
- aria-expanded="{{_open}}"
73
- aria-controls="{{accInfo.ariaControls}}"
69
+ @keydown="{{handleKeyDownTrigger}}"
74
70
  @click="{{getHandleMultiSelectOpen}}"
75
- aria-activedescendant>
71
+ _is-combobox-role>
76
72
  </udex-control-button>
77
73
  {{/if}}
78
74
  </div>
@@ -87,7 +83,7 @@
87
83
  </div>
88
84
  <ui5-popover
89
85
  hide-arrow
90
- id="udex-select-box__dropdown"
86
+ id="{{popoverId}}"
91
87
  class="udex-select-box__dropdown"
92
88
  ?allow-target-overlap="{{allowTargetOverlap}}"
93
89
  @keydown="{{handleKeyDownDropdown}}"