@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.
- package/dist/Breadcrumbs.d.ts +8 -8
- package/dist/Breadcrumbs.js +0 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/ColorPalettePopover.d.ts +6 -11
- package/dist/ColorPalettePopover.js +0 -1
- package/dist/ColorPalettePopover.js.map +1 -1
- package/dist/DatePicker.d.ts +8 -4
- package/dist/DatePicker.js +3 -4
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateTimePicker.d.ts +2 -7
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/Dialog.d.ts +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/Input.d.ts +4 -4
- package/dist/Input.js.map +1 -1
- package/dist/ListItem.d.ts +7 -2
- package/dist/ListItem.js +3 -3
- package/dist/ListItem.js.map +1 -1
- package/dist/Menu.d.ts +11 -11
- package/dist/Menu.js +0 -1
- package/dist/Menu.js.map +1 -1
- package/dist/Popover.d.ts +6 -4
- package/dist/Popover.js +6 -5
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.d.ts +4 -4
- package/dist/Popup.js +1 -1
- package/dist/Popup.js.map +1 -1
- package/dist/ResponsivePopover.d.ts +108 -0
- package/dist/ResponsivePopover.js +146 -180
- package/dist/ResponsivePopover.js.map +1 -0
- package/dist/StandardListItem.d.ts +3 -1
- package/dist/StepInput.d.ts +1 -1
- package/dist/TimePickerBase.d.ts +6 -8
- package/dist/TimePickerBase.js +0 -1
- package/dist/TimePickerBase.js.map +1 -1
- package/dist/api.json +1 -1
- package/dist/features/ColorPaletteMoreColors.d.ts +1 -1
- package/dist/features/InputSuggestions.d.ts +8 -4
- package/dist/features/InputSuggestions.js +0 -1
- package/dist/features/InputSuggestions.js.map +1 -1
- package/package.json +6 -6
- package/src/Breadcrumbs.ts +2 -9
- package/src/ColorPalettePopover.ts +2 -12
- package/src/DatePicker.ts +5 -6
- package/src/DateTimePicker.ts +2 -8
- package/src/Dialog.ts +4 -4
- package/src/Input.ts +4 -4
- package/src/ListItem.ts +9 -4
- package/src/Menu.ts +6 -13
- package/src/Popover.ts +8 -6
- package/src/Popup.ts +7 -7
- package/src/{ResponsivePopover.js → ResponsivePopover.ts} +73 -59
- package/src/StepInput.ts +1 -1
- package/src/TimePickerBase.ts +1 -9
- 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
|
|
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
|
-
|
|
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
|
|
178
|
+
return this.shadowRoot!.querySelector<Dialog>("[ui5-dialog]")!;
|
|
168
179
|
}
|
|
169
180
|
|
|
170
181
|
get contentDOM() {
|
|
171
|
-
return
|
|
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 (
|
|
190
|
+
return (isPhone() || !this.contentOnlyOnDesktop) && super._displayHeader;
|
|
180
191
|
}
|
|
181
192
|
|
|
182
193
|
get _displayFooter() {
|
|
183
|
-
return
|
|
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(
|
|
201
|
+
_beforeDialogOpen(e: CustomEvent<PopupBeforeCloseEventDetail>) {
|
|
191
202
|
this.open = true;
|
|
192
203
|
this.opened = true;
|
|
193
|
-
this._propagateDialogEvent(
|
|
204
|
+
this._propagateDialogEvent(e);
|
|
194
205
|
}
|
|
195
206
|
|
|
196
|
-
_afterDialogClose(
|
|
207
|
+
_afterDialogClose(e: CustomEvent) {
|
|
197
208
|
this.open = false;
|
|
198
209
|
this.opened = false;
|
|
199
|
-
this._propagateDialogEvent(
|
|
210
|
+
this._propagateDialogEvent(e);
|
|
200
211
|
}
|
|
201
212
|
|
|
202
|
-
_propagateDialogEvent(
|
|
203
|
-
const type =
|
|
213
|
+
_propagateDialogEvent(e: CustomEvent) {
|
|
214
|
+
const type = e.type.replace("ui5-", "");
|
|
204
215
|
|
|
205
|
-
this.fireEvent(type,
|
|
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()
|
package/src/TimePickerBase.ts
CHANGED
|
@@ -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<
|
|
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?:
|
|
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<
|
|
583
|
+
this.responsivePopover = staticAreaItem!.querySelector<ResponsivePopover>("[ui5-responsive-popover]")!;
|
|
587
584
|
return this.responsivePopover;
|
|
588
585
|
}
|
|
589
586
|
|