@ui5/webcomponents 0.0.0-9e104af01 → 0.0.0-a7032d86e

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 (55) hide show
  1. package/dist/Breadcrumbs.d.ts +8 -8
  2. package/dist/Breadcrumbs.js +0 -1
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/ColorPalettePopover.d.ts +6 -11
  5. package/dist/ColorPalettePopover.js +0 -1
  6. package/dist/ColorPalettePopover.js.map +1 -1
  7. package/dist/DatePicker.d.ts +8 -4
  8. package/dist/DatePicker.js +3 -4
  9. package/dist/DatePicker.js.map +1 -1
  10. package/dist/DateTimePicker.d.ts +2 -7
  11. package/dist/DateTimePicker.js.map +1 -1
  12. package/dist/Dialog.d.ts +1 -1
  13. package/dist/Dialog.js +1 -1
  14. package/dist/Input.d.ts +4 -4
  15. package/dist/Input.js.map +1 -1
  16. package/dist/ListItem.d.ts +7 -2
  17. package/dist/ListItem.js +3 -3
  18. package/dist/ListItem.js.map +1 -1
  19. package/dist/Menu.d.ts +11 -11
  20. package/dist/Menu.js +0 -1
  21. package/dist/Menu.js.map +1 -1
  22. package/dist/Popover.d.ts +6 -4
  23. package/dist/Popover.js +6 -5
  24. package/dist/Popover.js.map +1 -1
  25. package/dist/Popup.d.ts +4 -4
  26. package/dist/Popup.js +1 -1
  27. package/dist/Popup.js.map +1 -1
  28. package/dist/ResponsivePopover.d.ts +108 -0
  29. package/dist/ResponsivePopover.js +146 -180
  30. package/dist/ResponsivePopover.js.map +1 -0
  31. package/dist/StandardListItem.d.ts +3 -1
  32. package/dist/StepInput.d.ts +1 -1
  33. package/dist/TimePickerBase.d.ts +6 -8
  34. package/dist/TimePickerBase.js +0 -1
  35. package/dist/TimePickerBase.js.map +1 -1
  36. package/dist/api.json +1 -1
  37. package/dist/features/ColorPaletteMoreColors.d.ts +1 -1
  38. package/dist/features/InputSuggestions.d.ts +8 -4
  39. package/dist/features/InputSuggestions.js +0 -1
  40. package/dist/features/InputSuggestions.js.map +1 -1
  41. package/package.json +6 -6
  42. package/src/Breadcrumbs.ts +2 -9
  43. package/src/ColorPalettePopover.ts +2 -12
  44. package/src/DatePicker.ts +5 -6
  45. package/src/DateTimePicker.ts +2 -8
  46. package/src/Dialog.ts +4 -4
  47. package/src/Input.ts +4 -4
  48. package/src/ListItem.ts +9 -4
  49. package/src/Menu.ts +6 -13
  50. package/src/Popover.ts +8 -6
  51. package/src/Popup.ts +7 -7
  52. package/src/{ResponsivePopover.js → ResponsivePopover.ts} +73 -59
  53. package/src/StepInput.ts +1 -1
  54. package/src/TimePickerBase.ts +1 -9
  55. package/src/features/InputSuggestions.ts +2 -5
@@ -1,8 +1,17 @@
1
+ import type { ComponentStylesData } from "@ui5/webcomponents-base/dist/types.js";
2
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
1
4
  import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
5
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
6
+ import type { I18nText } from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
7
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
8
  import { getNextZIndex } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
9
+
10
+ // @ts-ignore
4
11
  import { RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON } from "./generated/i18n/i18n-defaults.js";
12
+
5
13
  import ResponsivePopoverTemplate from "./generated/templates/ResponsivePopoverTemplate.lit.js";
14
+ import type { PopupBeforeCloseEventDetail } from "./Popup.js";
6
15
  import Popover from "./Popover.js";
7
16
  import Dialog from "./Dialog.js";
8
17
  import Button from "./Button.js";
@@ -12,43 +21,7 @@ import "@ui5/webcomponents-icons/dist/decline.js";
12
21
  // Styles
13
22
  import ResponsivePopoverCss from "./generated/themes/ResponsivePopover.css.js";
14
23
 
15
- /**
16
- * @public
17
- */
18
- const metadata = {
19
- tag: "ui5-responsive-popover",
20
- properties: /** @lends sap.ui.webc.main.ResponsivePopover.prototype */ {
21
- /**
22
- * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.
23
- * By default both the header and footer would be displayed.
24
- * @private
25
- */
26
- contentOnlyOnDesktop: {
27
- type: Boolean,
28
- },
29
-
30
- /**
31
- * Used internaly for controls which must not have header.
32
- * @private
33
- */
34
- _hideHeader: {
35
- type: Boolean,
36
- },
37
-
38
- /**
39
- * Defines whether a close button will be rendered in the header of the component
40
- * <b>Note:</b> If you are using the <code>header</code> slot, this property will have no effect
41
- *
42
- * @private
43
- * @type {boolean}
44
- * @defaultvalue false
45
- * @since 1.0.0-rc.16
46
- */
47
- _hideCloseButton: {
48
- type: Boolean,
49
- },
50
- },
51
- };
24
+ type ResponsivePopoverBeforeCloseEventDetail = PopupBeforeCloseEventDetail;
52
25
 
53
26
  /**
54
27
  * @class
@@ -79,16 +52,42 @@ const metadata = {
79
52
  * @since 1.0.0-rc.6
80
53
  * @public
81
54
  */
55
+ @customElement("ui5-responsive-popover")
82
56
  class ResponsivePopover extends Popover {
57
+ /**
58
+ * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.
59
+ * By default both the header and footer would be displayed.
60
+ * @private
61
+ */
62
+ @property({ type: Boolean })
63
+ contentOnlyOnDesktop!: boolean;
64
+
65
+ /**
66
+ * Used internaly for controls which must not have header.
67
+ * @private
68
+ */
69
+ @property({ type: Boolean })
70
+ _hideHeader!: boolean;
71
+
72
+ /**
73
+ * Defines whether a close button will be rendered in the header of the component
74
+ * <b>Note:</b> If you are using the <code>header</code> slot, this property will have no effect
75
+ *
76
+ * @private
77
+ * @type {boolean}
78
+ * @defaultvalue false
79
+ * @since 1.0.0-rc.16
80
+ */
81
+ @property({ type: Boolean })
82
+ _hideCloseButton!: boolean;
83
+
84
+ static i18nBundle: I18nBundle;
85
+
83
86
  constructor() {
84
87
  super();
85
88
  }
86
89
 
87
- static get metadata() {
88
- return metadata;
89
- }
90
-
91
- static get styles() {
90
+ static get styles(): ComponentStylesData {
92
91
  return [Popover.styles, ResponsivePopoverCss];
93
92
  }
94
93
 
@@ -119,17 +118,24 @@ class ResponsivePopover extends Popover {
119
118
  /**
120
119
  * Shows popover on desktop and dialog on mobile.
121
120
  * @param {HTMLElement} opener the element that the popover is shown at
122
- * @param {boolean} preventInitialFocus Prevents applying the focus inside the popup
121
+ * @param {boolean} [preventInitialFocus=false] Prevents applying the focus inside the popup
123
122
  * @public
124
123
  * @async
124
+ * @method
125
+ * @name sap.ui.webc.main.ResponsivePopover#showAt
125
126
  * @returns {Promise} Resolves when the responsive popover is open
126
127
  */
127
- async showAt(opener, preventInitialFocus = false) {
128
+ async showAt(opener: HTMLElement, preventInitialFocus = false) {
128
129
  if (!isPhone()) {
129
130
  await super.showAt(opener, preventInitialFocus);
130
131
  } else {
131
132
  this.style.display = "contents";
132
- this.style.zIndex = getNextZIndex();
133
+ const nextZIndex = getNextZIndex();
134
+ if (!nextZIndex) {
135
+ return;
136
+ }
137
+
138
+ this.style.zIndex = nextZIndex.toString();
133
139
  await this._dialog.show(preventInitialFocus);
134
140
  }
135
141
  }
@@ -137,6 +143,9 @@ class ResponsivePopover extends Popover {
137
143
  /**
138
144
  * Closes the popover/dialog.
139
145
  * @public
146
+ * @method
147
+ * @name sap.ui.webc.main.ResponsivePopover#close
148
+ * @returns {void}
140
149
  */
141
150
  close(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
142
151
  if (!isPhone()) {
@@ -146,7 +155,7 @@ class ResponsivePopover extends Popover {
146
155
  }
147
156
  }
148
157
 
149
- toggle(opener) {
158
+ toggle(opener: HTMLElement) {
150
159
  if (this.isOpen()) {
151
160
  return this.close();
152
161
  }
@@ -155,8 +164,10 @@ class ResponsivePopover extends Popover {
155
164
  }
156
165
 
157
166
  /**
158
- * Tells if the responsive popover is open
167
+ * Tells if the responsive popover is open.
159
168
  * @public
169
+ * @method
170
+ * @name sap.ui.webc.main.ResponsivePopover#isOpen
160
171
  * @returns {boolean}
161
172
  */
162
173
  isOpen() {
@@ -164,11 +175,11 @@ class ResponsivePopover extends Popover {
164
175
  }
165
176
 
166
177
  get _dialog() {
167
- return this.shadowRoot.querySelector("[ui5-dialog]");
178
+ return this.shadowRoot!.querySelector<Dialog>("[ui5-dialog]")!;
168
179
  }
169
180
 
170
181
  get contentDOM() {
171
- return this._isPhone ? this._dialog.contentDOM : super.contentDOM;
182
+ return isPhone() ? this._dialog.contentDOM : super.contentDOM;
172
183
  }
173
184
 
174
185
  get _isPhone() {
@@ -176,33 +187,33 @@ class ResponsivePopover extends Popover {
176
187
  }
177
188
 
178
189
  get _displayHeader() {
179
- return (this._isPhone || !this.contentOnlyOnDesktop) && super._displayHeader;
190
+ return (isPhone() || !this.contentOnlyOnDesktop) && super._displayHeader;
180
191
  }
181
192
 
182
193
  get _displayFooter() {
183
- return this._isPhone || !this.contentOnlyOnDesktop;
194
+ return isPhone() || !this.contentOnlyOnDesktop;
184
195
  }
185
196
 
186
197
  get _closeDialogAriaLabel() {
187
- return ResponsivePopover.i18nBundle.getText(RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON);
198
+ return ResponsivePopover.i18nBundle.getText(RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON as I18nText);
188
199
  }
189
200
 
190
- _beforeDialogOpen(event) {
201
+ _beforeDialogOpen(e: CustomEvent<PopupBeforeCloseEventDetail>) {
191
202
  this.open = true;
192
203
  this.opened = true;
193
- this._propagateDialogEvent(event);
204
+ this._propagateDialogEvent(e);
194
205
  }
195
206
 
196
- _afterDialogClose(event) {
207
+ _afterDialogClose(e: CustomEvent) {
197
208
  this.open = false;
198
209
  this.opened = false;
199
- this._propagateDialogEvent(event);
210
+ this._propagateDialogEvent(e);
200
211
  }
201
212
 
202
- _propagateDialogEvent(event) {
203
- const type = event.type.replace("ui5-", "");
213
+ _propagateDialogEvent(e: CustomEvent) {
214
+ const type = e.type.replace("ui5-", "");
204
215
 
205
- this.fireEvent(type, event.detail);
216
+ this.fireEvent(type, e.detail);
206
217
  }
207
218
 
208
219
  get isModal() {
@@ -221,3 +232,6 @@ class ResponsivePopover extends Popover {
221
232
  ResponsivePopover.define();
222
233
 
223
234
  export default ResponsivePopover;
235
+ export type {
236
+ ResponsivePopoverBeforeCloseEventDetail,
237
+ };
package/src/StepInput.ts CHANGED
@@ -303,13 +303,13 @@ class StepInput extends UI5Element implements IFormElement {
303
303
  * Defines the value state message that will be displayed as pop up under the component.
304
304
  * <br><br>
305
305
  *
306
- * @name sap.ui.webc.main.StepInput.prototype.valueStateMessage
307
306
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
308
307
  * <br>
309
308
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
310
309
  * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
311
310
  * @type {HTMLElement}
312
311
  * @slot
312
+ * @name sap.ui.webc.main.StepInput.prototype.valueStateMessage
313
313
  * @public
314
314
  */
315
315
  @slot()
@@ -27,7 +27,6 @@ import {
27
27
  } from "@ui5/webcomponents-base/dist/Keys.js";
28
28
  import "@ui5/webcomponents-icons/dist/time-entry-request.js";
29
29
  import Icon from "./Icon.js";
30
- // @ts-ignore
31
30
  import ResponsivePopover from "./ResponsivePopover.js";
32
31
  import TimePickerTemplate from "./generated/templates/TimePickerTemplate.lit.js";
33
32
  import TimePickerPopoverTemplate from "./generated/templates/TimePickerPopoverTemplate.lit.js";
@@ -47,13 +46,6 @@ import TimePickerCss from "./generated/themes/TimePicker.css.js";
47
46
  import TimePickerPopoverCss from "./generated/themes/TimePickerPopover.css.js";
48
47
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
49
48
 
50
- type TempResponsivePopover = HTMLElement & {
51
- initialFocus: string,
52
- showAt: (opener: HTMLElement) => Promise<void>,
53
- close: () => void,
54
- resetFocus: () => void,
55
- }
56
-
57
49
  /**
58
50
  * @class
59
51
  *
@@ -344,7 +336,7 @@ class TimePickerBase extends UI5Element {
344
336
 
345
337
  async _getPopover() {
346
338
  const staticAreaItem = await this.getStaticAreaItemDomRef();
347
- return staticAreaItem!.querySelector<TempResponsivePopover>("[ui5-responsive-popover]")!;
339
+ return staticAreaItem!.querySelector<ResponsivePopover>("[ui5-responsive-popover]")!;
348
340
  }
349
341
 
350
342
  _getInput(): Input {
@@ -9,7 +9,6 @@ import generateHighlightedMarkup from "@ui5/webcomponents-base/dist/util/generat
9
9
  import type ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
10
10
  import List from "../List.js";
11
11
  import type { ClickEventDetail, SelectionChangeEventDetail } from "../List.js";
12
- // @ts-ignore
13
12
  import ResponsivePopover from "../ResponsivePopover.js";
14
13
  import SuggestionItem from "../SuggestionItem.js";
15
14
  import SuggestionGroupItem from "../SuggestionGroupItem.js";
@@ -59,8 +58,6 @@ type SuggestionsAccInfo = {
59
58
  itemText: string;
60
59
  }
61
60
 
62
- type TempResponsivePopover = Popover; // change to ResponsivePopover when implemented;
63
-
64
61
  /**
65
62
  * A class to manage the <code>Input</code suggestion items.
66
63
  *
@@ -75,7 +72,7 @@ class Suggestions {
75
72
  highlight: boolean;
76
73
  selectedItemIndex: number;
77
74
  accInfo?: SuggestionsAccInfo;
78
- responsivePopover?: TempResponsivePopover;
75
+ responsivePopover?: ResponsivePopover;
79
76
  _scrollContainer?: HTMLElement;
80
77
  _handledPress?: boolean;
81
78
  attachedAfterOpened?: boolean;
@@ -583,7 +580,7 @@ class Suggestions {
583
580
  }
584
581
 
585
582
  const staticAreaItem = await this._getComponent().getStaticAreaItemDomRef();
586
- this.responsivePopover = staticAreaItem!.querySelector<TempResponsivePopover>("[ui5-responsive-popover]")!;
583
+ this.responsivePopover = staticAreaItem!.querySelector<ResponsivePopover>("[ui5-responsive-popover]")!;
587
584
  return this.responsivePopover;
588
585
  }
589
586