@sapudex/web-components 0.176.0 → 0.192.2
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/bundle.esm.js +1 -1
- package/dist/Accordion.js +2 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +0 -1
- package/dist/AccordionItem.js +2 -2
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Badge.js +2 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +7 -7
- package/dist/Breadcrumbs.js +3 -3
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/CountrySelector.d.ts +2 -0
- package/dist/CountrySelector.js +10 -6
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +53 -26
- package/dist/DatePicker.js +205 -39
- package/dist/DatePicker.js.map +1 -1
- package/dist/FilterMenu.d.ts +4 -6
- package/dist/FilterMenu.js +10 -10
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.js +6 -2
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.d.ts +0 -1
- package/dist/HeroBanner.js +2 -1
- package/dist/HeroBanner.js.map +1 -1
- package/dist/Link.js +2 -0
- package/dist/Link.js.map +1 -1
- package/dist/ListSelectAll.js +2 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadItem.d.ts +10 -1
- package/dist/MastheadItem.js +12 -6
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +6 -0
- package/dist/MastheadMenu.js +4 -1
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +1 -0
- package/dist/MastheadMenuItem.js +3 -0
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.js +1 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +6 -0
- package/dist/MastheadProfileMenu.js +3 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +35 -4
- package/dist/MastheadShell.js +141 -11
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.js +2 -2
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MessageStrip.js +2 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Pagination.d.ts +3 -2
- package/dist/Pagination.js +4 -2
- package/dist/Pagination.js.map +1 -1
- package/dist/RadioButton.js +0 -1
- package/dist/RadioButton.js.map +1 -1
- package/dist/Search.js +0 -1
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.js +3 -3
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +1 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBox.d.ts +5 -3
- package/dist/SelectBox.js +11 -7
- package/dist/SelectBox.js.map +1 -1
- package/dist/SideNavigationMobile.js +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/StepInput.js +1 -1
- package/dist/StepInput.js.map +1 -1
- package/dist/Tab.d.ts +4 -13
- package/dist/Tab.js +11 -14
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +4 -5
- package/dist/TabNavigation.js +16 -15
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +2 -2
- package/dist/Table.js.map +1 -1
- package/dist/TextArea.d.ts +13 -22
- package/dist/TextArea.js +30 -33
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/{css_variables-a92ef9ad.css → bundle-c5e3cbf2.css} +1 -1
- package/dist/assets/{bundle.esm-f0e73f3b.js → bundle.esm-809b9769.js} +188 -188
- package/dist/assets/messagebundle_en-06c0dadc.js +1 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Review.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SideNavigationMobileDropdown.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/custom-elements-internal.json +127 -107
- package/dist/custom-elements.json +122 -104
- package/dist/features/SearchSuggestionsPopover.d.ts +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -9
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +5 -4
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.js +1 -1
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +3 -0
- package/dist/i18n/messagebundle_en.properties +1 -0
- package/dist/vscode.html-custom-data.json +2 -12
- package/dist/web-types.json +21 -25
- package/package.json +2 -2
- package/src/Accordion.ts +2 -1
- package/src/AccordionItem.ts +2 -2
- package/src/Badge.ts +2 -1
- package/src/Breadcrumbs.hbs +3 -3
- package/src/Breadcrumbs.ts +14 -14
- package/src/BreadcrumbsPopover.hbs +1 -1
- package/src/CountrySelector.hbs +30 -30
- package/src/CountrySelector.ts +23 -18
- package/src/DatePicker.hbs +4 -5
- package/src/DatePicker.ts +257 -64
- package/src/DatePickerPopover.hbs +2 -2
- package/src/FilterMenu.hbs +2 -1
- package/src/FilterMenu.ts +13 -14
- package/src/Footer.ts +6 -2
- package/src/HeroBanner.ts +2 -1
- package/src/Link.ts +2 -0
- package/src/ListSelectAll.ts +2 -0
- package/src/MastheadItem.hbs +3 -3
- package/src/MastheadItem.ts +23 -11
- package/src/MastheadMenu.ts +9 -1
- package/src/MastheadMenuItem.hbs +2 -1
- package/src/MastheadMenuItem.ts +4 -0
- package/src/MastheadMobileMenu.ts +1 -1
- package/src/MastheadProfileMenu.ts +8 -0
- package/src/MastheadShell.hbs +69 -67
- package/src/MastheadShell.ts +177 -16
- package/src/MediaPlayer.ts +2 -2
- package/src/MessageStrip.ts +2 -1
- package/src/Pagination.hbs +2 -2
- package/src/Pagination.ts +8 -5
- package/src/RadioButton.ts +0 -1
- package/src/Search.ts +0 -1
- package/src/SearchableListBase.ts +3 -3
- package/src/SecondaryNavigation.ts +1 -1
- package/src/SecondaryNavigationItem.ts +1 -1
- package/src/SelectBox.ts +16 -10
- package/src/SideNavigationMobile.ts +1 -1
- package/src/StepInput.ts +1 -1
- package/src/Tab.ts +18 -29
- package/src/TabHeader.hbs +1 -1
- package/src/TabNavigation.hbs +1 -2
- package/src/TabNavigation.ts +21 -19
- package/src/Table.ts +2 -2
- package/src/TextArea.hbs +21 -21
- package/src/TextArea.ts +82 -78
- package/src/TextField.hbs +4 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/DatePickerPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
- package/src/generated/templates/FilterMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -9
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/TabHeaderTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/TextAreaTemplate.lit.ts +5 -4
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/MessageStrip.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SegmentedButton.css.ts +1 -1
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/AccordionItem.css +2 -2
- package/src/themes/Button.css +5 -5
- package/src/themes/CountrySelector.css +35 -28
- package/src/themes/ListItem.css +1 -1
- package/src/themes/MastheadItem.css +40 -2
- package/src/themes/MastheadMenu.css +74 -2
- package/src/themes/MastheadMenuItem.css +1 -0
- package/src/themes/MastheadMobileMenu.css +2 -2
- package/src/themes/MastheadProfileMenu.css +10 -2
- package/src/themes/MastheadShell.css +59 -27
- package/src/themes/MediaPlayer.css +18 -9
- package/src/themes/MessageStrip.css +6 -6
- package/src/themes/PhoneNumberField.css +2 -2
- package/src/themes/Review.css +1 -1
- package/src/themes/ReviewItem.css +1 -1
- package/src/themes/Search.css +8 -2
- package/src/themes/SegmentedButton.css +1 -1
- package/src/themes/SelectBox.css +1 -1
- package/src/themes/SideNavigationMobileDropdown.css +1 -1
- package/src/themes/StepInput.css +5 -5
- package/src/themes/TabNavigation.css +6 -6
- package/src/themes/Table.css +5 -5
- package/src/themes/TextArea.css +12 -1
- package/dist/assets/messagebundle_en-4997b226.js +0 -1
package/src/DatePicker.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import DateComponentBase from "@ui5/webcomponents/dist/DateComponentBase.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
6
6
|
// eslint-disable-next-line
|
|
7
7
|
import Calendar, { CalendarSelectedDatesChangeEventDetail } from "@ui5/webcomponents/dist/Calendar.js";
|
|
8
|
-
import
|
|
8
|
+
import CalendarDateComponent from "@ui5/webcomponents/dist/CalendarDate.js";
|
|
9
9
|
import "@ui5/webcomponents/dist/Icon.js";
|
|
10
10
|
import "@ui5/webcomponents-icons/dist/appointment-2.js";
|
|
11
11
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
@@ -31,7 +31,7 @@ export enum UDExDatePickerSelectionMode {
|
|
|
31
31
|
|
|
32
32
|
export type DatePickerSelectionChangeEventDetail = {
|
|
33
33
|
selectedValues: Array<string>;
|
|
34
|
-
selectedDates: Array<number>;
|
|
34
|
+
selectedDates: Array<number | undefined>;
|
|
35
35
|
timestamp: number | undefined;
|
|
36
36
|
};
|
|
37
37
|
|
|
@@ -50,7 +50,7 @@ export type DatePickerSelectionChangeEventDetail = {
|
|
|
50
50
|
*
|
|
51
51
|
* @constructor
|
|
52
52
|
* @author SAP SE
|
|
53
|
-
* @extends
|
|
53
|
+
* @extends DateComponentBase
|
|
54
54
|
* @tagname udex-date-picker
|
|
55
55
|
* @public
|
|
56
56
|
*/
|
|
@@ -61,7 +61,7 @@ export type DatePickerSelectionChangeEventDetail = {
|
|
|
61
61
|
template: DatePickerTemplate,
|
|
62
62
|
staticAreaTemplate: DatePickerPopover,
|
|
63
63
|
staticAreaStyles: [DatePickerPopoverCss],
|
|
64
|
-
dependencies: [
|
|
64
|
+
dependencies: [CalendarDateComponent, Calendar, UDExTextField, UDExDropdown, UDExStatusMessage],
|
|
65
65
|
})
|
|
66
66
|
/**
|
|
67
67
|
* Fired when the selected dates change.
|
|
@@ -85,7 +85,7 @@ export type DatePickerSelectionChangeEventDetail = {
|
|
|
85
85
|
timestamp: { type: Number },
|
|
86
86
|
},
|
|
87
87
|
})
|
|
88
|
-
class UDExDatePicker extends
|
|
88
|
+
class UDExDatePicker extends DateComponentBase {
|
|
89
89
|
/**
|
|
90
90
|
* Defines selection mode of the calendar component.
|
|
91
91
|
*
|
|
@@ -171,28 +171,6 @@ class UDExDatePicker extends UI5Element {
|
|
|
171
171
|
@property({ type: String, defaultValue: "" })
|
|
172
172
|
label!: string;
|
|
173
173
|
|
|
174
|
-
/**
|
|
175
|
-
* Determines the minimum date available for selection.
|
|
176
|
-
* <br/><br/>
|
|
177
|
-
* <b>Note:</b> The minDate value must be provided in the ISO date format (YYYY-MM-dd).
|
|
178
|
-
*
|
|
179
|
-
* @default ""
|
|
180
|
-
* @public
|
|
181
|
-
*/
|
|
182
|
-
@property({ type: String, defaultValue: "" })
|
|
183
|
-
minDate!: string;
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Determines the maximum date available for selection.
|
|
187
|
-
* <br/><br/>
|
|
188
|
-
* <b>Note:</b> The maxDate value must be provided in the ISO date format (YYYY-MM-dd).
|
|
189
|
-
*
|
|
190
|
-
* @default ""
|
|
191
|
-
* @public
|
|
192
|
-
*/
|
|
193
|
-
@property({ type: String, defaultValue: "" })
|
|
194
|
-
maxDate!: string;
|
|
195
|
-
|
|
196
174
|
/**
|
|
197
175
|
* Defines selected dates values.
|
|
198
176
|
*
|
|
@@ -219,19 +197,23 @@ class UDExDatePicker extends UI5Element {
|
|
|
219
197
|
@property({ type: String, defaultValue: "MMM dd, yyyy" })
|
|
220
198
|
formatPattern!: string;
|
|
221
199
|
|
|
200
|
+
/**
|
|
201
|
+
* The first date in the range during selection (this is a temporary value, not the first date in the value range)
|
|
202
|
+
* @private
|
|
203
|
+
*/
|
|
204
|
+
@property()
|
|
205
|
+
_tempValue!: string;
|
|
206
|
+
|
|
222
207
|
responsivePopover?: UDExDropdown;
|
|
223
208
|
|
|
224
209
|
static i18nBundle: I18nBundle;
|
|
225
210
|
|
|
211
|
+
private _prevDelimiter!: string | null;
|
|
212
|
+
|
|
226
213
|
static async onDefine(): Promise<void> {
|
|
227
214
|
UDExDatePicker.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
228
215
|
}
|
|
229
216
|
|
|
230
|
-
async _getCalendar(): Promise<Calendar> {
|
|
231
|
-
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
232
|
-
return staticAreaItem!.querySelector<Calendar>("#ui5-calendar")!;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
217
|
async _getResponsePopover(): Promise<UDExDropdown> {
|
|
236
218
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
237
219
|
return staticAreaItem!.querySelector<UDExDropdown>(`#udex-${this.__id!}-calendar__popover`)!;
|
|
@@ -242,12 +224,13 @@ class UDExDatePicker extends UI5Element {
|
|
|
242
224
|
* @private
|
|
243
225
|
*/
|
|
244
226
|
get _dropdownTrigger(): UDExTextField {
|
|
245
|
-
return this.shadowRoot!.querySelector<UDExTextField>(".udex-date-
|
|
227
|
+
return this.shadowRoot!.querySelector<UDExTextField>(".udex-date-picker__input")!;
|
|
246
228
|
}
|
|
247
229
|
|
|
248
230
|
_afterDropdownClose(): void {
|
|
249
231
|
this._dropdownTrigger.active = false;
|
|
250
|
-
this._dropdownTrigger.shadowRoot?.querySelector("input")?.
|
|
232
|
+
this._dropdownTrigger.shadowRoot?.querySelector("input")?.blur();
|
|
233
|
+
this._tempValue = "";
|
|
251
234
|
}
|
|
252
235
|
|
|
253
236
|
_afterDropdownOpen(): void {
|
|
@@ -273,35 +256,251 @@ class UDExDatePicker extends UI5Element {
|
|
|
273
256
|
}
|
|
274
257
|
|
|
275
258
|
handleCalendarChange(e: CustomEvent<CalendarSelectedDatesChangeEventDetail>): void {
|
|
276
|
-
|
|
259
|
+
e.preventDefault();
|
|
260
|
+
if (this.selectionMode === UDExDatePickerSelectionMode.Single) {
|
|
261
|
+
const newValue = e.detail.values && e.detail.values[0];
|
|
262
|
+
this._updateValueAndFireEvents(newValue, true, e);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
if (this.selectionMode === UDExDatePickerSelectionMode.Range) {
|
|
266
|
+
const values = e.detail.values;
|
|
267
|
+
|
|
268
|
+
if (values.length === 0) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date
|
|
273
|
+
this._tempValue = values[0];
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
277
276
|
|
|
278
|
-
|
|
277
|
+
const newValue = this._buildValue(e.detail.dates[0], e.detail.dates[1]);
|
|
278
|
+
this._updateValueAndFireEvents(newValue, true, e);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
this.hideCalendar();
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
get _effectiveDelimiter(): string {
|
|
285
|
+
return "-";
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
_getInput(): HTMLInputElement | null | undefined {
|
|
289
|
+
return this._dropdownTrigger.shadowRoot?.querySelector("input");
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
_splitValueByDelimiter(value: string) {
|
|
293
|
+
const valuesArray: Array<string> = [];
|
|
294
|
+
const partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);
|
|
279
295
|
|
|
296
|
+
// if format successfully parse the value, the value contains only single date
|
|
297
|
+
if (this.getFormat().parse(value)) {
|
|
298
|
+
valuesArray[0] = partsArray.join(this._effectiveDelimiter);
|
|
299
|
+
valuesArray[1] = "";
|
|
300
|
+
|
|
301
|
+
return valuesArray;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
valuesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);
|
|
305
|
+
valuesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);
|
|
306
|
+
|
|
307
|
+
return valuesArray;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date
|
|
312
|
+
* @private
|
|
313
|
+
*/
|
|
314
|
+
_extractLastTimestamp(value: string) {
|
|
315
|
+
if (!value || !this._checkValueValidity(value)) {
|
|
316
|
+
return undefined;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
const dateStrings = this._splitValueByDelimiter(value);
|
|
320
|
+
if (dateStrings[1]) {
|
|
321
|
+
const parsedDate = this.getFormat().parse(dateStrings[1], true) as Date;
|
|
322
|
+
return parsedDate.getTime() / 1000;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
return undefined;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty
|
|
330
|
+
* @private
|
|
331
|
+
*/
|
|
332
|
+
_extractFirstTimestamp(value: string) {
|
|
333
|
+
if (!value || !this._checkValueValidity(value)) {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)
|
|
338
|
+
|
|
339
|
+
const parsedDate = this.getFormat().parse(dateStrings[0], true) as Date;
|
|
340
|
+
return parsedDate.getTime() / 1000;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Checks if a value is valid against the current date format of the DatePicker.
|
|
345
|
+
* @public
|
|
346
|
+
* @param value A value to be tested against the current date format
|
|
347
|
+
*/
|
|
348
|
+
isValid(value: string): boolean {
|
|
349
|
+
if (value === "" || value === undefined) {
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return !!this.getFormat().parse(value);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
isValidRange(value: string): boolean {
|
|
357
|
+
const parts = this._splitValueByDelimiter(value);
|
|
358
|
+
return parts.length <= 2 && parts.every(dateString => this.isValid(dateString)); // must be at most 2 dates and each must be valid
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
isInValidRange(value: string): boolean {
|
|
362
|
+
if (value === "" || value === undefined) {
|
|
363
|
+
return true;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
const calendarDate = this._getCalendarDateFromString(value);
|
|
367
|
+
|
|
368
|
+
if (!calendarDate || !this._minDate || !this._maxDate) {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
return calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Checks if a date is between the minimum and maximum date.
|
|
377
|
+
* @public
|
|
378
|
+
* @param value A value to be checked
|
|
379
|
+
*/
|
|
380
|
+
isInValidRangeRange(value: string): boolean {
|
|
381
|
+
return this._splitValueByDelimiter(value).every(dateString => this.isInValidRange(dateString));
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
_checkValueValidity(value: string): boolean {
|
|
385
|
+
let result = false;
|
|
386
|
+
if (value === "") {
|
|
387
|
+
return true;
|
|
388
|
+
}
|
|
280
389
|
if (this.selectionMode === UDExDatePickerSelectionMode.Single) {
|
|
281
|
-
this.value
|
|
282
|
-
|
|
390
|
+
result = this.isValid(value) && this.isInValidRange(value);
|
|
391
|
+
}
|
|
392
|
+
if (this.selectionMode === UDExDatePickerSelectionMode.Range) {
|
|
393
|
+
result = this.isValidRange(value) && this.isInValidRangeRange(value);
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp
|
|
400
|
+
* @private
|
|
401
|
+
*/
|
|
402
|
+
_buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {
|
|
403
|
+
this._prevDelimiter = this._effectiveDelimiter;
|
|
404
|
+
if (firstDateTimestamp) {
|
|
405
|
+
const firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);
|
|
406
|
+
|
|
407
|
+
if (!lastDateTimestamp) {
|
|
408
|
+
return firstDateString;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
const lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);
|
|
412
|
+
return `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;
|
|
283
413
|
}
|
|
284
414
|
|
|
415
|
+
return "";
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* The parser understands many formats, but we need one format OR extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)
|
|
420
|
+
* @protected
|
|
421
|
+
*/
|
|
422
|
+
normalizeValue(value: string) {
|
|
423
|
+
let result = "";
|
|
424
|
+
if (this.selectionMode === UDExDatePickerSelectionMode.Single) {
|
|
425
|
+
if (value === "") {
|
|
426
|
+
return value;
|
|
427
|
+
}
|
|
428
|
+
result = this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC
|
|
429
|
+
}
|
|
285
430
|
if (this.selectionMode === UDExDatePickerSelectionMode.Range) {
|
|
286
|
-
|
|
287
|
-
|
|
431
|
+
const firstDateTimestamp = this._extractFirstTimestamp(value);
|
|
432
|
+
const lastDateTimestamp = this._extractLastTimestamp(value);
|
|
433
|
+
if (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary
|
|
434
|
+
return this._buildValue(lastDateTimestamp, firstDateTimestamp);
|
|
288
435
|
}
|
|
436
|
+
result = this._buildValue(firstDateTimestamp, lastDateTimestamp);
|
|
437
|
+
}
|
|
438
|
+
return result;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
_updateValueState() {
|
|
442
|
+
const valid = this._checkValueValidity(this.value);
|
|
443
|
+
const previousValueState = this.valueState;
|
|
444
|
+
|
|
445
|
+
this.valueState = valid ? ValueState.Standard : ValueState.Error;
|
|
446
|
+
|
|
447
|
+
const eventPrevented = !this.fireEvent("value-state-change", { valueState: this.valueState, valid });
|
|
448
|
+
|
|
449
|
+
if (eventPrevented) {
|
|
450
|
+
this.valueState = previousValueState;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
289
453
|
|
|
290
|
-
|
|
291
|
-
|
|
454
|
+
_buildEventData(value: string): DatePickerSelectionChangeEventDetail {
|
|
455
|
+
if (this.selectionMode === UDExDatePickerSelectionMode.Range) {
|
|
456
|
+
return {
|
|
457
|
+
selectedDates: [this._extractFirstTimestamp(value), this._extractLastTimestamp(value)],
|
|
458
|
+
selectedValues: this._splitValueByDelimiter(this.value),
|
|
459
|
+
timestamp: this._extractLastTimestamp(value),
|
|
460
|
+
};
|
|
292
461
|
}
|
|
462
|
+
return {
|
|
463
|
+
selectedDates: [this._extractFirstTimestamp(value)],
|
|
464
|
+
selectedValues: [value],
|
|
465
|
+
timestamp: this._extractFirstTimestamp(value),
|
|
466
|
+
};
|
|
467
|
+
}
|
|
293
468
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
{
|
|
297
|
-
timestamp,
|
|
298
|
-
selectedDates: [...dates],
|
|
299
|
-
selectedValues: formattedValues,
|
|
300
|
-
},
|
|
301
|
-
true,
|
|
302
|
-
);
|
|
469
|
+
_updateValueAndFireEvents(value: string, normalizeValue: boolean, e?: CustomEvent<CalendarSelectedDatesChangeEventDetail> | null) {
|
|
470
|
+
const valid = this._checkValueValidity(value);
|
|
303
471
|
|
|
304
|
-
|
|
472
|
+
if (valid && normalizeValue) {
|
|
473
|
+
value = this.normalizeValue(value); // transform valid values (in any format) to the correct format
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
this.value = value;
|
|
477
|
+
this._updateValueState(); // Change the value state to Error/None, but only if needed
|
|
478
|
+
|
|
479
|
+
if (!valid) { return; }
|
|
480
|
+
|
|
481
|
+
if (e) {
|
|
482
|
+
const { dates, timestamp, values } = e.detail;
|
|
483
|
+
|
|
484
|
+
this.fireEvent(
|
|
485
|
+
"selection-change",
|
|
486
|
+
{
|
|
487
|
+
timestamp,
|
|
488
|
+
selectedDates: [...dates],
|
|
489
|
+
selectedValues: values,
|
|
490
|
+
},
|
|
491
|
+
true,
|
|
492
|
+
);
|
|
493
|
+
} else {
|
|
494
|
+
this.fireEvent(
|
|
495
|
+
"selection-change",
|
|
496
|
+
this._buildEventData(value),
|
|
497
|
+
true,
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
_onInputChange(e: Event) {
|
|
503
|
+
this._updateValueAndFireEvents((e.target as UDExDatePicker).value, true);
|
|
305
504
|
}
|
|
306
505
|
|
|
307
506
|
handleInputClick(e: Event | KeyboardEvent): void {
|
|
@@ -314,23 +513,17 @@ class UDExDatePicker extends UI5Element {
|
|
|
314
513
|
this.showCalendar();
|
|
315
514
|
}
|
|
316
515
|
|
|
317
|
-
handleInputMouseDown(e: Event): void {
|
|
318
|
-
e.preventDefault();
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
handleInputKeyDown(e: KeyboardEvent): void {
|
|
322
|
-
if (e.key === "Enter") {
|
|
323
|
-
this.handleInputClick(e);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
|
|
327
516
|
/**
|
|
328
517
|
* Used to provide selectedDates to the calendar based on the component's state
|
|
329
518
|
* Override in derivatives to provide different rules for setting the calendar's selected dates
|
|
330
519
|
* @protected
|
|
331
520
|
*/
|
|
332
521
|
get _calendarSelectedDates(): Array<string> {
|
|
333
|
-
if (this.
|
|
522
|
+
if (this._tempValue) {
|
|
523
|
+
return [this._tempValue];
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
if (this.value && this._checkValueValidity(this.value)) {
|
|
334
527
|
return this.value.split(" - ");
|
|
335
528
|
}
|
|
336
529
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
class="udex-date-picker__popover"
|
|
4
4
|
placement-type="Bottom"
|
|
5
5
|
horizontal-align="Left"
|
|
6
|
-
@after-close="{{_afterDropdownClose}}"
|
|
7
|
-
@after-open="{{_afterDropdownOpen}}"
|
|
6
|
+
@ui5-after-close="{{_afterDropdownClose}}"
|
|
7
|
+
@ui5-after-open="{{_afterDropdownOpen}}"
|
|
8
8
|
>
|
|
9
9
|
<ui5-calendar
|
|
10
10
|
class="udex-date-picker__calendar"
|
package/src/FilterMenu.hbs
CHANGED
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
class="udex-filter-menu__result-btn"
|
|
68
68
|
size="Medium"
|
|
69
69
|
design="Primary"
|
|
70
|
-
?disabled="{{
|
|
70
|
+
?disabled="{{disabledButtons}}"
|
|
71
71
|
@keydown="{{handleKeyDownResultBtn}}"
|
|
72
72
|
@click="{{handleResult}}">
|
|
73
73
|
{{getResultLabelText}}
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
size="Medium"
|
|
80
80
|
design="Tertiary"
|
|
81
81
|
@keydown="{{handleKeyDownResetBtn}}"
|
|
82
|
+
?disabled="{{disabledButtons}}"
|
|
82
83
|
@click="{{handleReset}}">
|
|
83
84
|
{{getResetLabelText}}
|
|
84
85
|
</udex-button>
|
package/src/FilterMenu.ts
CHANGED
|
@@ -3,7 +3,6 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
5
5
|
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
6
|
-
import "@ui5/webcomponents/dist/Icon.js";
|
|
7
6
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
8
7
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
9
8
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
@@ -11,7 +10,8 @@ import {
|
|
|
11
10
|
isTabPrevious, isTabNext, isEscape, isSpace, isEnter,
|
|
12
11
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
12
|
import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
|
|
14
|
-
import
|
|
13
|
+
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
14
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
15
15
|
import UDExList from "./List.js";
|
|
16
16
|
import UDExListItem from "./ListItem.js";
|
|
17
17
|
import UDExListGroupHeader from "./ListGroupHeader.js";
|
|
@@ -59,7 +59,8 @@ import SearchableListCss from "./generated/themes/SearchableList.css.js";
|
|
|
59
59
|
styles: [FilterMenuCss, SearchableListCss],
|
|
60
60
|
template: FilterMenuTemplate,
|
|
61
61
|
dependencies: [
|
|
62
|
-
|
|
62
|
+
Popover,
|
|
63
|
+
Icon,
|
|
63
64
|
UDExFilterMenuItem,
|
|
64
65
|
UDExFilterMenuGroupHeader,
|
|
65
66
|
UDExFilterMenuSelectAll,
|
|
@@ -293,8 +294,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
293
294
|
|
|
294
295
|
_trigger!: UDExButton;
|
|
295
296
|
_search!: UDExSearch;
|
|
296
|
-
|
|
297
|
-
_popover!: ResponsivePopover;
|
|
297
|
+
_popover!: Popover;
|
|
298
298
|
_breakpointSizeXS = 640;
|
|
299
299
|
|
|
300
300
|
onEnterDOM(): void {
|
|
@@ -311,7 +311,6 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
311
311
|
this._search = this.getSearch();
|
|
312
312
|
this._popover = this.getPopover();
|
|
313
313
|
this._trigger = this.getTriggerButton();
|
|
314
|
-
this._hasFooterButtons = this.hasFooterButtons;
|
|
315
314
|
}
|
|
316
315
|
|
|
317
316
|
handleSelectAll(e:CustomEvent): void {
|
|
@@ -352,7 +351,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
352
351
|
}
|
|
353
352
|
|
|
354
353
|
handleResult(): void {
|
|
355
|
-
if (!this.
|
|
354
|
+
if (!this.disabledButtons) {
|
|
356
355
|
this._popover.close();
|
|
357
356
|
this.fireEvent("result-click", {
|
|
358
357
|
selectedItems: this.selectedItems,
|
|
@@ -361,7 +360,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
361
360
|
}
|
|
362
361
|
|
|
363
362
|
handleKeyDownList(e: KeyboardEvent): void {
|
|
364
|
-
const isTabNextPress = isTabNext(e) && !this.
|
|
363
|
+
const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;
|
|
365
364
|
const isTabPrevPress = isTabPrevious(e) && !this._search;
|
|
366
365
|
const target = e.target as HTMLElement;
|
|
367
366
|
const isSearchResetTrigger = target === this._search;
|
|
@@ -425,7 +424,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
425
424
|
}
|
|
426
425
|
|
|
427
426
|
getSearch(): UDExSearch {
|
|
428
|
-
return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
|
|
427
|
+
return this.shadowRoot!.querySelector<UDExSearch>("[udex-search]")!;
|
|
429
428
|
}
|
|
430
429
|
|
|
431
430
|
_dropdownBeforeOpen(): void {
|
|
@@ -472,7 +471,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
472
471
|
return hasLabel ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);
|
|
473
472
|
}
|
|
474
473
|
|
|
475
|
-
get
|
|
474
|
+
get disabledButtons(): boolean {
|
|
476
475
|
return !this.selectedItems.length && !this.selectAll;
|
|
477
476
|
}
|
|
478
477
|
|
|
@@ -493,11 +492,11 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
493
492
|
}
|
|
494
493
|
|
|
495
494
|
get hasFooterButtons(): boolean {
|
|
496
|
-
return (this.hasResultBtn || this.hasResetBtn) && this.
|
|
495
|
+
return (this.hasResultBtn || this.hasResetBtn) && !this.disabledButtons;
|
|
497
496
|
}
|
|
498
497
|
|
|
499
498
|
get hasResultBtn(): boolean {
|
|
500
|
-
return !this.hideResultBtn && !this.
|
|
499
|
+
return !this.hideResultBtn && !this.disabledButtons;
|
|
501
500
|
}
|
|
502
501
|
|
|
503
502
|
get hasResetBtn(): boolean {
|
|
@@ -508,8 +507,8 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
508
507
|
return this.shadowRoot!.querySelector<UDExButton>("#filterMenuTrigger")!;
|
|
509
508
|
}
|
|
510
509
|
|
|
511
|
-
getPopover():
|
|
512
|
-
return this.shadowRoot!.querySelector<
|
|
510
|
+
getPopover(): Popover {
|
|
511
|
+
return this.shadowRoot!.querySelector<Popover>("[ui5-popover]")!;
|
|
513
512
|
}
|
|
514
513
|
|
|
515
514
|
getItems(): Array<UDExListItemBase> {
|
package/src/Footer.ts
CHANGED
|
@@ -14,13 +14,17 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
|
14
14
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
15
15
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
16
16
|
import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
|
|
17
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
18
|
+
import UDExAccordionItem from "./AccordionItem.js";
|
|
19
|
+
import UDExButton from "./Button.js";
|
|
20
|
+
import UDExAccordion from "./Accordion.js";
|
|
21
|
+
import UDExDivider from "./Divider.js";
|
|
17
22
|
|
|
18
23
|
// Template
|
|
19
24
|
import FooterTemplate from "./generated/templates/FooterTemplate.lit.js";
|
|
20
25
|
|
|
21
26
|
// Styles
|
|
22
27
|
import FooterCss from "./generated/themes/Footer.css";
|
|
23
|
-
import UDExAccordionItem from "./AccordionItem.js";
|
|
24
28
|
import {
|
|
25
29
|
ABOUT_SAP,
|
|
26
30
|
CHAT_WITH_US,
|
|
@@ -116,7 +120,7 @@ export const FooterDetailedEvent = {
|
|
|
116
120
|
renderer: litRender,
|
|
117
121
|
styles: [FooterCss],
|
|
118
122
|
template: FooterTemplate,
|
|
119
|
-
dependencies: [UDExAccordionItem],
|
|
123
|
+
dependencies: [UDExAccordion, UDExAccordionItem, Icon, UDExButton, UDExDivider],
|
|
120
124
|
})
|
|
121
125
|
/**
|
|
122
126
|
* Triggered on click interaction with logo in footer
|
package/src/HeroBanner.ts
CHANGED
|
@@ -4,7 +4,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
4
4
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
5
5
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
6
|
import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
7
|
-
import "@ui5/webcomponents/dist/Icon.js";
|
|
7
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
8
|
import "@ui5/webcomponents-icons/dist/media-play.js";
|
|
9
9
|
import "@ui5/webcomponents-icons/dist/media-pause.js";
|
|
10
10
|
|
|
@@ -31,6 +31,7 @@ export enum imageLoadingStrategies {
|
|
|
31
31
|
renderer: litRender,
|
|
32
32
|
styles: HeroBannerCss,
|
|
33
33
|
template: HeroBannerTemplate,
|
|
34
|
+
dependencies: [Icon],
|
|
34
35
|
})
|
|
35
36
|
class UDExHeroBanner extends UI5Element {
|
|
36
37
|
/**
|
package/src/Link.ts
CHANGED
|
@@ -2,6 +2,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
2
2
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
3
3
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
4
4
|
import Link from "@ui5/webcomponents/dist/Link.js";
|
|
5
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
5
6
|
|
|
6
7
|
import linkCss from "@ui5/webcomponents/dist/generated/themes/Link.css.js";
|
|
7
8
|
import LinkTemplate from "./generated/templates/LinkTemplate.lit.js";
|
|
@@ -34,6 +35,7 @@ import IconPlacement from "./types/IconPlacement.js";
|
|
|
34
35
|
renderer: litRender,
|
|
35
36
|
styles: [linkCss, LinkCss],
|
|
36
37
|
template: LinkTemplate,
|
|
38
|
+
dependencies: [Icon],
|
|
37
39
|
})
|
|
38
40
|
|
|
39
41
|
class UDExLink extends Link {
|
package/src/ListSelectAll.ts
CHANGED
|
@@ -8,6 +8,7 @@ import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
|
8
8
|
import { ListMode } from "./types/List.js";
|
|
9
9
|
import { SELECT_ALL } from "./generated/i18n/i18n-defaults.js";
|
|
10
10
|
import ListSelectAllTemplate from "./generated/templates/ListSelectAllTemplate.lit";
|
|
11
|
+
import UDExListItem from "./ListItem.js";
|
|
11
12
|
|
|
12
13
|
// Styles
|
|
13
14
|
import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css";
|
|
@@ -34,6 +35,7 @@ import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css";
|
|
|
34
35
|
renderer: litRender,
|
|
35
36
|
styles: ListGroupHeaderCss,
|
|
36
37
|
template: ListSelectAllTemplate,
|
|
38
|
+
dependencies: [UDExListItem],
|
|
37
39
|
})
|
|
38
40
|
|
|
39
41
|
@event("select-all", {
|
package/src/MastheadItem.hbs
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
href="{{href}}"
|
|
16
16
|
aria-label="{{accessibleLabel}}"
|
|
17
17
|
aria-describedby="{{ariaDescribedBy}}"
|
|
18
|
-
@click="{{
|
|
18
|
+
@click="{{handleItemClick}}">
|
|
19
19
|
{{> content}}
|
|
20
20
|
</a>
|
|
21
21
|
{{else if isProfileBtn}}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
aria-haspopup="{{hasDropdownSlot}}"
|
|
30
30
|
aria-label="{{accessibleLabel}}"
|
|
31
31
|
@keydown="{{handleKeyDown}}"
|
|
32
|
-
@click="{{
|
|
32
|
+
@click="{{handleItemClick}}">
|
|
33
33
|
{{> content}}
|
|
34
34
|
</span>
|
|
35
35
|
{{#if showDropdown}}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
aria-haspopup="{{hasDropdownSlot}}"
|
|
46
46
|
aria-label="{{accessibleLabel}}"
|
|
47
47
|
@keydown="{{handleKeyDown}}"
|
|
48
|
-
@click="{{
|
|
48
|
+
@click="{{handleItemClick}}">
|
|
49
49
|
{{> content}}
|
|
50
50
|
</button>
|
|
51
51
|
{{#if showDropdown}}
|