@ui5/webcomponents 2.21.0 → 2.22.0-rc.0
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/CHANGELOG.md +20 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Calendar.d.ts +39 -0
- package/dist/Calendar.js +109 -3
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarHeaderTemplate.d.ts +13 -1
- package/dist/CalendarHeaderTemplate.js +48 -12
- package/dist/CalendarHeaderTemplate.js.map +1 -1
- package/dist/CalendarTemplate.js +58 -2
- package/dist/CalendarTemplate.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/DateRangePicker.d.ts +27 -0
- package/dist/DateRangePicker.js +57 -3
- package/dist/DateRangePicker.js.map +1 -1
- package/dist/DateRangePickerTemplate.js +7 -3
- package/dist/DateRangePickerTemplate.js.map +1 -1
- package/dist/DateTimePicker.js +0 -3
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/Popup.js +4 -0
- package/dist/Popup.js.map +1 -1
- package/dist/SliderHandle.d.ts +0 -8
- package/dist/SliderHandle.js +0 -11
- package/dist/SliderHandle.js.map +1 -1
- package/dist/SliderTemplate.js +1 -1
- package/dist/SliderTemplate.js.map +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/Popup.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +8 -0
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +9 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +20 -20
- package/dist/custom-elements.json +19 -19
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/Popup.css.d.ts +1 -1
- package/dist/generated/themes/Popup.css.js +1 -1
- package/dist/generated/themes/Popup.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +8 -0
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +9 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +5 -5
- package/dist/web-types.json +11 -11
- package/package.json +9 -9
- package/src/CalendarHeaderTemplate.tsx +148 -77
- package/src/CalendarTemplate.tsx +203 -66
- package/src/DateRangePickerTemplate.tsx +29 -1
- package/src/SliderTemplate.tsx +0 -1
- package/src/i18n/messagebundle.properties +6 -0
- package/src/themes/Calendar.css +144 -0
- package/src/themes/DatePickerPopover.css +3 -2
- package/src/themes/Popup.css +4 -0
- package/src/themes/ResponsivePopoverCommon.css +6 -1
- package/src/themes/base/CalendarHeader-parameters.css +9 -0
- package/src/themes/base/TextArea-parameters.css +1 -1
- package/src/themes/base/sizes-parameters.css +12 -0
- package/src/themes/sap_horizon/TextArea-parameters.css +0 -1
- package/src/themes/sap_horizon_dark/TextArea-parameters.css +0 -1
|
@@ -1,17 +1,53 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
2
|
import Icon from "./Icon.js";
|
|
3
3
|
import slimArowLeft from "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
|
|
4
4
|
import slimArowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
5
|
-
export default function
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
export default function CalendarHeaderTemplate(options) {
|
|
6
|
+
const headerText = options?.headerText;
|
|
7
|
+
const isFirst = options?.isFirst ?? true;
|
|
8
|
+
const isLast = options?.isLast ?? true;
|
|
9
|
+
const isMultiple = options?.isMultiple ?? false;
|
|
10
|
+
const monthText = headerText?.monthText ?? this._headerMonthButtonText;
|
|
11
|
+
const yearText = headerText?.yearText ?? this._headerYearButtonText;
|
|
12
|
+
const secondMonthText = headerText?.secondMonthText ?? this.secondMonthButtonText;
|
|
13
|
+
const secondYearText = headerText?.secondYearText ?? this._headerYearButtonTextSecType;
|
|
14
|
+
return (_jsxs("div", { class: isMultiple ? "ui5-calheader ui5-calheader-multiple" : "ui5-calheader-root", children: [renderPrevButton.call(this, isFirst, isMultiple), renderMiddleButtons.call(this, {
|
|
15
|
+
monthText: monthText || "",
|
|
16
|
+
yearText: yearText || "",
|
|
17
|
+
secondMonthText: secondMonthText || "",
|
|
18
|
+
secondYearText: secondYearText || "",
|
|
19
|
+
}), renderNextButton.call(this, isFirst, isLast, isMultiple)] }));
|
|
20
|
+
}
|
|
21
|
+
function renderPrevButton(isFirst, isMultiple) {
|
|
22
|
+
if (!isFirst && isMultiple) {
|
|
23
|
+
return _jsx("div", { class: "ui5-calheader-spacer" });
|
|
24
|
+
}
|
|
25
|
+
return (_jsx("div", { "data-ui5-cal-header-btn-prev": true, class: {
|
|
26
|
+
"ui5-calheader-arrowbtn": true,
|
|
27
|
+
"ui5-calheader-arrowbtn-disabled": this._previousButtonDisabled,
|
|
28
|
+
}, part: "calendar-header-arrow-button", role: "button", onMouseDown: this.onPrevButtonClick, tabindex: this._previousButtonDisabled ? -1 : 0, title: this.accInfo.tooltipPrevButton, "aria-label": this.accInfo.ariaLabelPrevButton, "aria-description": this.accInfo.ariaLabelPrevButton, "aria-keyshortcuts": this.accInfo.keyShortcutPrevButton, children: _jsx(Icon, { class: "ui5-calheader-arrowicon", name: slimArowLeft }) }));
|
|
29
|
+
}
|
|
30
|
+
function renderMiddleButtons(headerText) {
|
|
31
|
+
return (_jsxs("div", { class: "ui5-calheader-midcontainer", children: [_jsxs("div", { "data-ui5-cal-header-btn-month": true, class: "ui5-calheader-arrowbtn ui5-calheader-middlebtn", part: "calendar-header-middle-button", hidden: this._isHeaderMonthButtonHidden, tabindex: 0, role: "button", "aria-label": this.accInfo.ariaLabelMonthButton, "aria-description": this.accInfo.ariaLabelMonthButton, title: this.accInfo.tooltipMonthButton, "aria-keyshortcuts": this.accInfo.keyShortcutMonthButton, onClick: this.onHeaderMonthButtonPress, onKeyDown: this.onMonthButtonKeyDown, onKeyUp: this.onMonthButtonKeyUp, children: [_jsx("span", { children: headerText.monthText }), this.hasSecondaryCalendarType && headerText.secondMonthText &&
|
|
32
|
+
_jsx("span", { class: "ui5-calheader-btn-sectext", children: headerText.secondMonthText })] }), _jsxs("div", { "data-ui5-cal-header-btn-year": true, class: "ui5-calheader-arrowbtn ui5-calheader-middlebtn", part: "calendar-header-middle-button", hidden: this._isHeaderYearButtonHidden, tabindex: 0, role: "button", "aria-label": this.accInfo.ariaLabelYearButton, "aria-description": this.accInfo.ariaLabelYearButton, onClick: this.onHeaderYearButtonPress, onKeyDown: this.onYearButtonKeyDown, onKeyUp: this.onYearButtonKeyUp, title: this.accInfo.tooltipYearButton, "aria-keyshortcuts": this.accInfo.keyShortcutYearButton, children: [_jsx("span", { children: headerText.yearText }), this.hasSecondaryCalendarType && headerText.secondYearText &&
|
|
33
|
+
_jsx("span", { class: "ui5-calheader-btn-sectext", children: headerText.secondYearText })] }), _jsxs("div", { "data-ui5-cal-header-btn-year-range": true, class: "ui5-calheader-arrowbtn ui5-calheader-middlebtn", part: "calendar-header-middle-button", hidden: this._isHeaderYearRangeButtonHidden, tabindex: 0, role: "button", "aria-label": this.accInfo.ariaLabelYearRangeButton, "aria-description": this.accInfo.ariaLabelYearRangeButton, title: this.accInfo.tooltipYearRangeButton, "aria-keyshortcuts": this.accInfo.keyShortcutYearRangeButton, onClick: this.onHeaderYearRangeButtonPress, onKeyDown: this.onYearRangeButtonKeyDown, onKeyUp: this.onYearRangeButtonKeyUp, children: [_jsx("span", { children: this._headerYearRangeButtonText }), this.hasSecondaryCalendarType &&
|
|
34
|
+
_jsx("span", { class: "ui5-calheader-btn-sectext", children: this._headerYearRangeButtonTextSecType })] })] }));
|
|
35
|
+
}
|
|
36
|
+
function renderNextButton(isFirst, isLast, isMultiple) {
|
|
37
|
+
// In portrait or compact mode, show next button only on first calendar
|
|
38
|
+
// In landscape mode, show next button only on last calendar
|
|
39
|
+
const isVertical = this._portraitView || this._isCompactMode;
|
|
40
|
+
const shouldShowNextButton = !isMultiple || (isVertical ? isFirst : isLast);
|
|
41
|
+
const shouldShowSpacer = isMultiple && (isVertical ? isLast : !isLast);
|
|
42
|
+
if (shouldShowNextButton) {
|
|
43
|
+
return (_jsx("div", { "data-ui5-cal-header-btn-next": true, class: {
|
|
44
|
+
"ui5-calheader-arrowbtn": true,
|
|
45
|
+
"ui5-calheader-arrowbtn-disabled": this._nextButtonDisabled,
|
|
46
|
+
}, part: "calendar-header-arrow-button", role: "button", onMouseDown: this.onNextButtonClick, tabindex: this._nextButtonDisabled ? -1 : 0, title: this.accInfo.tooltipNextButton, "aria-label": this.accInfo.ariaLabelNextButton, "aria-description": this.accInfo.ariaLabelNextButton, "aria-keyshortcuts": this.accInfo.keyShortcutNextButton, children: _jsx(Icon, { class: "ui5-calheader-arrowicon", name: slimArowRight }) }));
|
|
47
|
+
}
|
|
48
|
+
if (shouldShowSpacer) {
|
|
49
|
+
return _jsx("div", { class: "ui5-calheader-spacer" });
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
16
52
|
}
|
|
17
53
|
//# sourceMappingURL=CalendarHeaderTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarHeaderTemplate.js","sourceRoot":"","sources":["../src/CalendarHeaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport Icon from \"./Icon.js\";\n\nimport slimArowLeft from \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport slimArowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nexport default function CalendarTemplate(this: Calendar) {\n\treturn (\n\t\t<div class=\"ui5-calheader-root\">\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-prev\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._previousButtonDisabled,\n\t\t\t\t}}\n\t\t\t\tpart=\"calendar-header-arrow-button\"\n\t\t\t\trole=\"button\"\n\t\t\t\tonMouseDown={this.onPrevButtonClick}\n\t\t\t\ttabindex={this._previousButtonDisabled ? -1 : 0}\n\t\t\t\ttitle={this.accInfo.tooltipPrevButton}\n\t\t\t\taria-label={this.accInfo.ariaLabelPrevButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelPrevButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutPrevButton}\n\t\t\t>\n\t\t\t\t<Icon class=\"ui5-calheader-arrowicon\" name={slimArowLeft}/>\n\t\t\t</div>\n\n\t\t\t<div class=\"ui5-calheader-midcontainer\">\n\t\t\t\t<div\n\t\t\t\t\tdata-ui5-cal-header-btn-month\n\t\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\t\thidden={this._isHeaderMonthButtonHidden}\n\t\t\t\t\ttabindex={0}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\taria-label={this.accInfo.ariaLabelMonthButton}\n\t\t\t\t\taria-description={this.accInfo.ariaLabelMonthButton}\n\t\t\t\t\ttitle={this.accInfo.tooltipMonthButton}\n\t\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutMonthButton}\n\t\t\t\t\tonClick={this.onHeaderMonthButtonPress}\n\t\t\t\t\tonKeyDown={this.onMonthButtonKeyDown}\n\t\t\t\t\tonKeyUp={this.onMonthButtonKeyUp}\n\t\t\t\t>\n\t\t\t\t\t<span>{this._headerMonthButtonText}</span>\n\t\t\t\t\t{this.hasSecondaryCalendarType &&\n\t\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{this.secondMonthButtonText}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tdata-ui5-cal-header-btn-year\n\t\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\t\thidden={this._isHeaderYearButtonHidden}\n\t\t\t\t\ttabindex={0}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\taria-label={this.accInfo.ariaLabelYearButton}\n\t\t\t\t\taria-description={this.accInfo.ariaLabelYearButton}\n\t\t\t\t\tonClick={this.onHeaderYearButtonPress}\n\t\t\t\t\tonKeyDown={this.onYearButtonKeyDown}\n\t\t\t\t\tonKeyUp={this.onYearButtonKeyUp}\n\t\t\t\t\ttitle={this.accInfo.tooltipYearButton}\n\t\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutYearButton}\n\t\t\t\t>\n\t\t\t\t\t<span>{this._headerYearButtonText}</span>\n\t\t\t\t\t{this.hasSecondaryCalendarType &&\n\t\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{this._headerYearButtonTextSecType}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tdata-ui5-cal-header-btn-year-range\n\t\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\t\thidden={this._isHeaderYearRangeButtonHidden}\n\t\t\t\t\ttabindex={0}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\taria-label={this.accInfo.ariaLabelYearRangeButton}\n\t\t\t\t\taria-description={this.accInfo.ariaLabelYearRangeButton}\n\t\t\t\t\ttitle={this.accInfo.tooltipYearRangeButton}\n\t\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutYearRangeButton}\n\t\t\t\t\tonClick={this.onHeaderYearRangeButtonPress}\n\t\t\t\t\tonKeyDown={this.onYearRangeButtonKeyDown}\n\t\t\t\t\tonKeyUp={this.onYearRangeButtonKeyUp}\n\t\t\t\t>\n\t\t\t\t\t<span>{this._headerYearRangeButtonText}</span>\n\t\t\t\t\t{this.hasSecondaryCalendarType &&\n\t\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{this._headerYearRangeButtonTextSecType}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-next\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._nextButtonDisabled,\n\t\t\t\t}}\n\t\t\t\tpart=\"calendar-header-arrow-button\"\n\t\t\t\trole=\"button\"\n\t\t\t\tonMouseDown={this.onNextButtonClick}\n\t\t\t\ttabindex={this._nextButtonDisabled ? -1 : 0}\n\t\t\t\ttitle={this.accInfo.tooltipNextButton}\n\t\t\t\taria-label={this.accInfo.ariaLabelNextButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelNextButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutNextButton}\n\t\t\t>\n\t\t\t\t<Icon class=\"ui5-calheader-arrowicon\" name={slimArowRight}/>\n\t\t\t</div>\n\t\t</div>);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CalendarHeaderTemplate.js","sourceRoot":"","sources":["../src/CalendarHeaderTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,YAAY,MAAM,kDAAkD,CAAC;AAC5E,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAc9E,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAiB,OAA+B;IAC7F,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAEhD,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC;IACvE,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC;IACpE,MAAM,eAAe,GAAG,UAAU,EAAE,eAAe,IAAI,IAAI,CAAC,qBAAqB,CAAC;IAClF,MAAM,cAAc,GAAG,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC,4BAA4B,CAAC;IAEvF,OAAO,CACN,eAAK,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,oBAAoB,aACpF,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAChD,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC/B,SAAS,EAAE,SAAS,IAAI,EAAE;gBAC1B,QAAQ,EAAE,QAAQ,IAAI,EAAE;gBACxB,eAAe,EAAE,eAAe,IAAI,EAAE;gBACtC,cAAc,EAAE,cAAc,IAAI,EAAE;aACpC,CAAC,EACD,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IACpD,CACN,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAiB,OAAgB,EAAE,UAAmB;IAC9E,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,cAAK,KAAK,EAAC,sBAAsB,GAAO,CAAC;IACjD,CAAC;IAED,OAAO,CACN,oDAEC,KAAK,EAAE;YACN,wBAAwB,EAAE,IAAI;YAC9B,iCAAiC,EAAE,IAAI,CAAC,uBAAuB;SAC/D,EACD,IAAI,EAAC,8BAA8B,EACnC,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,IAAI,CAAC,iBAAiB,EACnC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,gBACzB,IAAI,CAAC,OAAO,CAAC,mBAAmB,sBAC1B,IAAI,CAAC,OAAO,CAAC,mBAAmB,uBAC/B,IAAI,CAAC,OAAO,CAAC,qBAAqB,YAErD,KAAC,IAAI,IAAC,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAE,YAAY,GAAG,GACtD,CACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAE3B,UAKC;IAED,OAAO,CACN,eAAK,KAAK,EAAC,4BAA4B,aACtC,sDAEC,KAAK,EAAC,gDAAgD,EACtD,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAE,IAAI,CAAC,0BAA0B,EACvC,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,OAAO,CAAC,oBAAoB,sBAC3B,IAAI,CAAC,OAAO,CAAC,oBAAoB,EACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,uBACnB,IAAI,CAAC,OAAO,CAAC,sBAAsB,EACtD,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EACpC,OAAO,EAAE,IAAI,CAAC,kBAAkB,aAEhC,yBAAO,UAAU,CAAC,SAAS,GAAQ,EAClC,IAAI,CAAC,wBAAwB,IAAI,UAAU,CAAC,eAAe;wBAC3D,eAAM,KAAK,EAAC,2BAA2B,YAAE,UAAU,CAAC,eAAe,GAAQ,IAEvE,EAEN,qDAEC,KAAK,EAAC,gDAAgD,EACtD,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAE,IAAI,CAAC,yBAAyB,EACtC,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,OAAO,CAAC,mBAAmB,sBAC1B,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAClD,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EACnC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,uBAClB,IAAI,CAAC,OAAO,CAAC,qBAAqB,aAErD,yBAAO,UAAU,CAAC,QAAQ,GAAQ,EACjC,IAAI,CAAC,wBAAwB,IAAI,UAAU,CAAC,cAAc;wBAC1D,eAAM,KAAK,EAAC,2BAA2B,YAAE,UAAU,CAAC,cAAc,GAAQ,IAEtE,EAEN,2DAEC,KAAK,EAAC,gDAAgD,EACtD,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAC3C,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,OAAO,CAAC,wBAAwB,sBAC/B,IAAI,CAAC,OAAO,CAAC,wBAAwB,EACvD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,uBACvB,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAC1D,OAAO,EAAE,IAAI,CAAC,4BAA4B,EAC1C,SAAS,EAAE,IAAI,CAAC,wBAAwB,EACxC,OAAO,EAAE,IAAI,CAAC,sBAAsB,aAEpC,yBAAO,IAAI,CAAC,0BAA0B,GAAQ,EAC7C,IAAI,CAAC,wBAAwB;wBAC7B,eAAM,KAAK,EAAC,2BAA2B,YAAE,IAAI,CAAC,iCAAiC,GAAQ,IAEnF,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAiB,OAAgB,EAAE,MAAe,EAAE,UAAmB;IAC/F,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;IAC7D,MAAM,oBAAoB,GAAG,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEvE,IAAI,oBAAoB,EAAE,CAAC;QAC1B,OAAO,CACN,oDAEC,KAAK,EAAE;gBACN,wBAAwB,EAAE,IAAI;gBAC9B,iCAAiC,EAAE,IAAI,CAAC,mBAAmB;aAC3D,EACD,IAAI,EAAC,8BAA8B,EACnC,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,IAAI,CAAC,iBAAiB,EACnC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,gBACzB,IAAI,CAAC,OAAO,CAAC,mBAAmB,sBAC1B,IAAI,CAAC,OAAO,CAAC,mBAAmB,uBAC/B,IAAI,CAAC,OAAO,CAAC,qBAAqB,YAErD,KAAC,IAAI,IAAC,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAE,aAAa,GAAG,GACvD,CACN,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,cAAK,KAAK,EAAC,sBAAsB,GAAO,CAAC;IACjD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport Icon from \"./Icon.js\";\n\nimport slimArowLeft from \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport slimArowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\ninterface CalendarHeaderOptions {\n\theaderText?: {\n\t\tmonthText: string;\n\t\tyearText: string;\n\t\tsecondMonthText?: string;\n\t\tsecondYearText?: string;\n\t};\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tisMultiple?: boolean;\n}\n\nexport default function CalendarHeaderTemplate(this: Calendar, options?: CalendarHeaderOptions) {\n\tconst headerText = options?.headerText;\n\tconst isFirst = options?.isFirst ?? true;\n\tconst isLast = options?.isLast ?? true;\n\tconst isMultiple = options?.isMultiple ?? false;\n\n\tconst monthText = headerText?.monthText ?? this._headerMonthButtonText;\n\tconst yearText = headerText?.yearText ?? this._headerYearButtonText;\n\tconst secondMonthText = headerText?.secondMonthText ?? this.secondMonthButtonText;\n\tconst secondYearText = headerText?.secondYearText ?? this._headerYearButtonTextSecType;\n\n\treturn (\n\t\t<div class={isMultiple ? \"ui5-calheader ui5-calheader-multiple\" : \"ui5-calheader-root\"}>\n\t\t\t{renderPrevButton.call(this, isFirst, isMultiple)}\n\t\t\t{renderMiddleButtons.call(this, {\n\t\t\t\tmonthText: monthText || \"\",\n\t\t\t\tyearText: yearText || \"\",\n\t\t\t\tsecondMonthText: secondMonthText || \"\",\n\t\t\t\tsecondYearText: secondYearText || \"\",\n\t\t\t})}\n\t\t\t{renderNextButton.call(this, isFirst, isLast, isMultiple)}\n\t\t</div>\n\t);\n}\n\nfunction renderPrevButton(this: Calendar, isFirst: boolean, isMultiple: boolean) {\n\tif (!isFirst && isMultiple) {\n\t\treturn <div class=\"ui5-calheader-spacer\"></div>;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-ui5-cal-header-btn-prev\n\t\t\tclass={{\n\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._previousButtonDisabled,\n\t\t\t}}\n\t\t\tpart=\"calendar-header-arrow-button\"\n\t\t\trole=\"button\"\n\t\t\tonMouseDown={this.onPrevButtonClick}\n\t\t\ttabindex={this._previousButtonDisabled ? -1 : 0}\n\t\t\ttitle={this.accInfo.tooltipPrevButton}\n\t\t\taria-label={this.accInfo.ariaLabelPrevButton}\n\t\t\taria-description={this.accInfo.ariaLabelPrevButton}\n\t\t\taria-keyshortcuts={this.accInfo.keyShortcutPrevButton}\n\t\t>\n\t\t\t<Icon class=\"ui5-calheader-arrowicon\" name={slimArowLeft}/>\n\t\t</div>\n\t);\n}\n\nfunction renderMiddleButtons(\n\tthis: Calendar,\n\theaderText: {\n\t\tmonthText: string;\n\t\tyearText: string;\n\t\tsecondMonthText?: string;\n\t\tsecondYearText?: string;\n\t}\n) {\n\treturn (\n\t\t<div class=\"ui5-calheader-midcontainer\">\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-month\n\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\thidden={this._isHeaderMonthButtonHidden}\n\t\t\t\ttabindex={0}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={this.accInfo.ariaLabelMonthButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelMonthButton}\n\t\t\t\ttitle={this.accInfo.tooltipMonthButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutMonthButton}\n\t\t\t\tonClick={this.onHeaderMonthButtonPress}\n\t\t\t\tonKeyDown={this.onMonthButtonKeyDown}\n\t\t\t\tonKeyUp={this.onMonthButtonKeyUp}\n\t\t\t>\n\t\t\t\t<span>{headerText.monthText}</span>\n\t\t\t\t{this.hasSecondaryCalendarType && headerText.secondMonthText &&\n\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{headerText.secondMonthText}</span>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-year\n\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\thidden={this._isHeaderYearButtonHidden}\n\t\t\t\ttabindex={0}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={this.accInfo.ariaLabelYearButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelYearButton}\n\t\t\t\tonClick={this.onHeaderYearButtonPress}\n\t\t\t\tonKeyDown={this.onYearButtonKeyDown}\n\t\t\t\tonKeyUp={this.onYearButtonKeyUp}\n\t\t\t\ttitle={this.accInfo.tooltipYearButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutYearButton}\n\t\t\t>\n\t\t\t\t<span>{headerText.yearText}</span>\n\t\t\t\t{this.hasSecondaryCalendarType && headerText.secondYearText &&\n\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{headerText.secondYearText}</span>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-year-range\n\t\t\t\tclass=\"ui5-calheader-arrowbtn ui5-calheader-middlebtn\"\n\t\t\t\tpart=\"calendar-header-middle-button\"\n\t\t\t\thidden={this._isHeaderYearRangeButtonHidden}\n\t\t\t\ttabindex={0}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={this.accInfo.ariaLabelYearRangeButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelYearRangeButton}\n\t\t\t\ttitle={this.accInfo.tooltipYearRangeButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutYearRangeButton}\n\t\t\t\tonClick={this.onHeaderYearRangeButtonPress}\n\t\t\t\tonKeyDown={this.onYearRangeButtonKeyDown}\n\t\t\t\tonKeyUp={this.onYearRangeButtonKeyUp}\n\t\t\t>\n\t\t\t\t<span>{this._headerYearRangeButtonText}</span>\n\t\t\t\t{this.hasSecondaryCalendarType &&\n\t\t\t\t\t<span class=\"ui5-calheader-btn-sectext\">{this._headerYearRangeButtonTextSecType}</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction renderNextButton(this: Calendar, isFirst: boolean, isLast: boolean, isMultiple: boolean) {\n\t// In portrait or compact mode, show next button only on first calendar\n\t// In landscape mode, show next button only on last calendar\n\tconst isVertical = this._portraitView || this._isCompactMode;\n\tconst shouldShowNextButton = !isMultiple || (isVertical ? isFirst : isLast);\n\tconst shouldShowSpacer = isMultiple && (isVertical ? isLast : !isLast);\n\n\tif (shouldShowNextButton) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-ui5-cal-header-btn-next\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-calheader-arrowbtn\": true,\n\t\t\t\t\t\"ui5-calheader-arrowbtn-disabled\": this._nextButtonDisabled,\n\t\t\t\t}}\n\t\t\t\tpart=\"calendar-header-arrow-button\"\n\t\t\t\trole=\"button\"\n\t\t\t\tonMouseDown={this.onNextButtonClick}\n\t\t\t\ttabindex={this._nextButtonDisabled ? -1 : 0}\n\t\t\t\ttitle={this.accInfo.tooltipNextButton}\n\t\t\t\taria-label={this.accInfo.ariaLabelNextButton}\n\t\t\t\taria-description={this.accInfo.ariaLabelNextButton}\n\t\t\t\taria-keyshortcuts={this.accInfo.keyShortcutNextButton}\n\t\t\t>\n\t\t\t\t<Icon class=\"ui5-calheader-arrowicon\" name={slimArowRight}/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (shouldShowSpacer) {\n\t\treturn <div class=\"ui5-calheader-spacer\"></div>;\n\t}\n\n\treturn null;\n}\n"]}
|
package/dist/CalendarTemplate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
2
|
import DayPicker from "./DayPicker.js";
|
|
3
3
|
import MonthPicker from "./MonthPicker.js";
|
|
4
4
|
import YearPicker from "./YearPicker.js";
|
|
@@ -6,6 +6,62 @@ import YearRangePicker from "./YearRangePicker.js";
|
|
|
6
6
|
import CalendarHeaderTemplate from "./CalendarHeaderTemplate.js";
|
|
7
7
|
import CalendarSelectionMode from "./types/CalendarSelectionMode.js";
|
|
8
8
|
export default function CalendarTemplate() {
|
|
9
|
-
|
|
9
|
+
const showMultipleMonths = this._monthsToShow > 1 && !this._isDayPickerHidden;
|
|
10
|
+
const shouldRenderSeparateHeaders = this._isDefaultHeaderModeInMultipleMonths && !this._portraitView && !this._isCompactMode;
|
|
11
|
+
const shouldRenderInlineHeaders = this._isDefaultHeaderModeInMultipleMonths && (this._portraitView || this._isCompactMode);
|
|
12
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { class: {
|
|
13
|
+
"ui5-cal-root": true,
|
|
14
|
+
"ui5-dt-cal--mobile": this._phoneView,
|
|
15
|
+
"ui5-dt-cal--portrait": this._portraitView,
|
|
16
|
+
"ui5-dt-cal--multiple": showMultipleMonths,
|
|
17
|
+
}, onKeyDown: this._onkeydown, children: [!showMultipleMonths && (_jsx("div", { class: "ui5-calheader", exportparts: "calendar-header-arrow-button, calendar-header-middle-button", children: CalendarHeaderTemplate.call(this) })), _jsx("div", { id: `${this._id}-content`, class: {
|
|
18
|
+
"ui5-cal-content": true,
|
|
19
|
+
"ui5-cal-content-multiple": showMultipleMonths,
|
|
20
|
+
}, children: showMultipleMonths ? (_jsxs(_Fragment, { children: [this._shouldShowOnePickerHeaderButtonInMultipleMonths && (_jsx("div", { class: "ui5-calheader ui5-calheader-multiple ui5-calheader-default-multiple", exportparts: "calendar-header-arrow-button, calendar-header-middle-button", children: CalendarHeaderTemplate.call(this) })), _jsx("div", { class: "ui5-cal-daypicker-overlay" }), shouldRenderSeparateHeaders && (_jsx("div", { class: "ui5-cal-multiple-months-header-wrapper", children: renderMonthHeaders.call(this) })), _jsx("div", { class: "ui5-cal-multiple-months-wrapper", children: renderMonthPickers.call(this, shouldRenderInlineHeaders) })] })) : (_jsxs(_Fragment, { children: [_jsx(DayPicker, { id: `${this._id}-daypicker`, hidden: this._isDayPickerHidden, formatPattern: this._formatPattern, selectedDates: this._selectedDatesTimestamps, specialCalendarDates: this._specialCalendarDates, disabledDates: this._disabledDates, _hidden: this._isDayPickerHidden, primaryCalendarType: this._primaryCalendarType, secondaryCalendarType: this._secondaryCalendarType, selectionMode: this.selectionMode, minDate: this.minDate, maxDate: this.maxDate, calendarWeekNumbering: this.calendarWeekNumbering, timestamp: this._timestamp, hideWeekNumbers: this.hideWeekNumbers, onChange: this.onSelectedDatesChange, onNavigate: this.onNavigate, exportparts: "day-cell, day-cell-selected, day-cell-selected-between" }), renderMonthPicker.call(this), renderYearPicker.call(this), renderYearRangePicker.call(this)] })) }), showMultipleMonths && (_jsxs("div", { class: {
|
|
21
|
+
"ui5-cal-overlay-container": true,
|
|
22
|
+
"ui5-cal-overlay-hidden": this._isMonthPickerHidden && this._isYearPickerHidden && this._isYearRangePickerHidden,
|
|
23
|
+
}, children: [renderMonthPicker.call(this), renderYearPicker.call(this), renderYearRangePicker.call(this)] }))] }), _jsx("div", { "onui5-calendar-legend-selection-change": this._onCalendarLegendSelectionChange, "onui5-calendar-legend-focus-out": this._onLegendFocusOut, children: _jsx("slot", { name: "calendarLegend" }) })] }));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Renders month headers in a separate loop (horizontal layout)
|
|
27
|
+
*/
|
|
28
|
+
function renderMonthHeaders() {
|
|
29
|
+
return Array.from({ length: this._monthsToShow }, (_, index) => {
|
|
30
|
+
const monthTimestamp = this._getMonthTimestamp(index);
|
|
31
|
+
const isFirst = index === 0;
|
|
32
|
+
const isLast = index === this._monthsToShow - 1;
|
|
33
|
+
return (_jsx("div", { class: "ui5-cal-month-header-container", children: CalendarHeaderTemplate.call(this, {
|
|
34
|
+
headerText: this._getHeaderTextForMonth(monthTimestamp),
|
|
35
|
+
isFirst,
|
|
36
|
+
isLast,
|
|
37
|
+
isMultiple: true,
|
|
38
|
+
}) }, `calendar-month-header-${index}`));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Renders month pickers (with optional inline headers for vertical layout)
|
|
43
|
+
*/
|
|
44
|
+
function renderMonthPickers(shouldRenderInlineHeaders) {
|
|
45
|
+
return Array.from({ length: this._monthsToShow }, (_, index) => {
|
|
46
|
+
const monthTimestamp = this._getMonthTimestamp(index);
|
|
47
|
+
const isFirst = index === 0;
|
|
48
|
+
const isLast = index === this._monthsToShow - 1;
|
|
49
|
+
return (_jsxs("div", { class: "ui5-cal-month-container", children: [shouldRenderInlineHeaders &&
|
|
50
|
+
CalendarHeaderTemplate.call(this, {
|
|
51
|
+
headerText: this._getHeaderTextForMonth(monthTimestamp),
|
|
52
|
+
isFirst,
|
|
53
|
+
isLast,
|
|
54
|
+
isMultiple: true,
|
|
55
|
+
}), _jsx("div", { class: "ui5-cal-daypicker-wrapper", children: _jsx(DayPicker, { id: `${this._id}-daypicker-${index}`, hidden: this._isDayPickerHidden, formatPattern: this._formatPattern, selectedDates: this._selectedDatesTimestamps, specialCalendarDates: this._specialCalendarDates, disabledDates: this._disabledDates, _hidden: this._isDayPickerHidden, primaryCalendarType: this._primaryCalendarType, secondaryCalendarType: this._secondaryCalendarType, selectionMode: this.selectionMode, minDate: this.minDate, maxDate: this.maxDate, calendarWeekNumbering: this.calendarWeekNumbering, timestamp: monthTimestamp, hideWeekNumbers: this.hideWeekNumbers, onChange: this.onSelectedDatesChange, onNavigate: this.onNavigate, exportparts: "day-cell, day-cell-selected, day-cell-selected-between", inert: this._inert }) })] }, `calendar-month-picker-${index}`));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function renderMonthPicker() {
|
|
59
|
+
return (_jsx(MonthPicker, { id: `${this._id}-MP`, hidden: this._isMonthPickerHidden, formatPattern: this._formatPattern, selectedDates: this._selectedDatesTimestamps, _hidden: this._isMonthPickerHidden, primaryCalendarType: this._primaryCalendarType, secondaryCalendarType: this._secondaryCalendarType, selectionMode: this.selectionMode, minDate: this.minDate, maxDate: this.maxDate, timestamp: this._timestamp, onChange: this.onSelectedMonthChange, onNavigate: this.onNavigate, exportparts: "month-cell, month-cell-selected, month-cell-selected-between, month-picker-root" }));
|
|
60
|
+
}
|
|
61
|
+
function renderYearPicker() {
|
|
62
|
+
return (_jsx(YearPicker, { id: `${this._id}-YP`, hidden: this._isYearPickerHidden, formatPattern: this._formatPattern, selectedDates: this._selectedDatesTimestamps, _hidden: this._isYearPickerHidden, primaryCalendarType: this._primaryCalendarType, secondaryCalendarType: this._secondaryCalendarType, selectionMode: this.selectionMode, minDate: this.minDate, maxDate: this.maxDate, timestamp: this._timestamp, _currentYearRange: this._currentYearRange, onChange: this.onSelectedYearChange, onNavigate: this.onNavigate, exportparts: "year-cell, year-cell-selected, year-cell-selected-between, year-picker-root" }));
|
|
63
|
+
}
|
|
64
|
+
function renderYearRangePicker() {
|
|
65
|
+
return (_jsx(YearRangePicker, { id: `${this._id}-YRP`, hidden: this._isYearRangePickerHidden, formatPattern: this._formatPattern, selectedDates: this._selectedDatesTimestamps, _showRangeSelection: this.selectionMode === CalendarSelectionMode.Range, _hidden: this._isYearRangePickerHidden, primaryCalendarType: this._primaryCalendarType, secondaryCalendarType: this._secondaryCalendarType, minDate: this.minDate, maxDate: this.maxDate, timestamp: this._timestamp, _currentYearRange: this._currentYearRange, onChange: this.onSelectedYearRangeChange, onNavigate: this.onNavigate, exportparts: "year-range-cell, year-range-cell-selected, year-range-cell-selected-between, year-range-picker-root" }));
|
|
10
66
|
}
|
|
11
67
|
//# sourceMappingURL=CalendarTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarTemplate.js","sourceRoot":"","sources":["../src/CalendarTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport YearRangePicker from \"./YearRangePicker.js\";\nimport CalendarHeaderTemplate from \"./CalendarHeaderTemplate.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nexport default function CalendarTemplate(this: Calendar) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-cal-root\"\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t>\n\t\t\t\t<div class=\"ui5-calheader\" exportparts=\"calendar-header-arrow-button, calendar-header-middle-button\">\n\t\t\t\t\t{ CalendarHeaderTemplate.call(this) }\n\t\t\t\t</div>\n\t\t\t\t<div id={`${this._id}-content`} class=\"ui5-cal-content\">\n\t\t\t\t\t<DayPicker\n\t\t\t\t\t\tid={`${this._id}-daypicker`}\n\t\t\t\t\t\thidden={this._isDayPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\tspecialCalendarDates={this._specialCalendarDates}\n\t\t\t\t\t\tdisabledDates={this._disabledDates}\n\t\t\t\t\t\t_hidden={this._isDayPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\tcalendarWeekNumbering={this.calendarWeekNumbering}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\thideWeekNumbers={this.hideWeekNumbers}\n\t\t\t\t\t\tonChange={this.onSelectedDatesChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"day-cell, day-cell-selected, day-cell-selected-between\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MonthPicker\n\t\t\t\t\t\tid={`${this._id}-MP`}\n\t\t\t\t\t\thidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\tonChange={this.onSelectedMonthChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"month-cell, month-cell-selected, month-cell-selected-between, month-picker-root\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearPicker\n\t\t\t\t\t\tid={`${this._id}-YP`}\n\t\t\t\t\t\thidden={this._isYearPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isYearPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-cell, year-cell-selected, year-cell-selected-between, year-picker-root\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearRangePicker\n\t\t\t\t\t\tid={`${this._id}-YRP`}\n\t\t\t\t\t\thidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_showRangeSelection={this.selectionMode === CalendarSelectionMode.Range}\n\t\t\t\t\t\t_hidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearRangeChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-range-cell, year-range-cell-selected, year-range-cell-selected-between, year-range-picker-root\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonui5-calendar-legend-selection-change={this._onCalendarLegendSelectionChange}\n\t\t\t\tonui5-calendar-legend-focus-out={this._onLegendFocusOut}\n\t\t\t>\n\t\t\t\t<slot name=\"calendarLegend\"></slot>\n\t\t\t</div>\n\t\t</>);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CalendarTemplate.js","sourceRoot":"","sources":["../src/CalendarTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC9E,MAAM,2BAA2B,GAAG,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAC7H,MAAM,yBAAyB,GAAG,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3H,OAAO,CACN,8BACC,eACC,KAAK,EAAE;oBACN,cAAc,EAAE,IAAI;oBACpB,oBAAoB,EAAE,IAAI,CAAC,UAAU;oBACrC,sBAAsB,EAAE,IAAI,CAAC,aAAa;oBAC1C,sBAAsB,EAAE,kBAAkB;iBAC1C,EACD,SAAS,EAAE,IAAI,CAAC,UAAU,aAEzB,CAAC,kBAAkB,IAAI,CACvB,cAAK,KAAK,EAAC,eAAe,EAAC,WAAW,EAAC,6DAA6D,YACjG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAC9B,CACN,EACD,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE;4BACtC,iBAAiB,EAAE,IAAI;4BACvB,0BAA0B,EAAE,kBAAkB;yBAC9C,YACC,kBAAkB,CAAC,CAAC,CAAC,CACrB,8BAEE,IAAI,CAAC,gDAAgD,IAAI,CACzD,cAAK,KAAK,EAAC,qEAAqE,EAAC,WAAW,EAAC,6DAA6D,YACvJ,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAC9B,CACN,EAED,cAAK,KAAK,EAAC,2BAA2B,GAAO,EAG5C,2BAA2B,IAAI,CAC/B,cAAK,KAAK,EAAC,wCAAwC,YACjD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GACzB,CACN,EAGD,cAAK,KAAK,EAAC,iCAAiC,YAC1C,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,CAAC,GACpD,IACJ,CACH,CAAC,CAAC,CAAC,CACH,8BACC,KAAC,SAAS,IACT,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,EAC3B,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,aAAa,EAAE,IAAI,CAAC,wBAAwB,EAC5C,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,EAChD,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAC9C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAC,wDAAwD,GACnE,EACD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAC/B,CACH,GACI,EAEL,kBAAkB,IAAI,CACtB,eAAK,KAAK,EAAE;4BACX,2BAA2B,EAAE,IAAI;4BACjC,wBAAwB,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,wBAAwB;yBAChH,aACC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAC5B,CACN,IACI,EAEN,wDACyC,IAAI,CAAC,gCAAgC,qCAC5C,IAAI,CAAC,iBAAiB,YAEvD,eAAM,IAAI,EAAC,gBAAgB,GAAQ,GAC9B,IACJ,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAEhD,OAAO,CACN,cAA4C,KAAK,EAAC,gCAAgC,YAChF,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;gBAClC,UAAU,EAAE,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;gBACvD,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,IAAI;aAChB,CAAC,IANO,yBAAyB,KAAK,EAAE,CAOpC,CACN,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAiB,yBAAkC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAEhD,OAAO,CACN,eAA4C,KAAK,EAAC,yBAAyB,aAEzE,yBAAyB;oBACzB,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;wBACjC,UAAU,EAAE,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;wBACvD,OAAO;wBACP,MAAM;wBACN,UAAU,EAAE,IAAI;qBAChB,CAAC,EAEH,cAAK,KAAK,EAAC,2BAA2B,YACrC,KAAC,SAAS,IACT,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,KAAK,EAAE,EACpC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,aAAa,EAAE,IAAI,CAAC,wBAAwB,EAC5C,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,EAChD,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAC9C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,SAAS,EAAE,cAAc,EACzB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAC,wDAAwD,EACpE,KAAK,EAAE,IAAI,CAAC,MAAM,GACjB,GACG,KAhCG,yBAAyB,KAAK,EAAE,CAiCpC,CACN,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACzB,OAAO,CACN,KAAC,WAAW,IACX,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EACpB,MAAM,EAAE,IAAI,CAAC,oBAAoB,EACjC,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,aAAa,EAAE,IAAI,CAAC,wBAAwB,EAC5C,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAC9C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAC,iFAAiF,GAC5F,CACF,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACxB,OAAO,CACN,KAAC,UAAU,IACV,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EACpB,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAChC,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,aAAa,EAAE,IAAI,CAAC,wBAAwB,EAC5C,OAAO,EAAE,IAAI,CAAC,mBAAmB,EACjC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAC9C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,iBAAiB,EAAI,IAAI,CAAC,iBAAiB,EAC3C,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EACnC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAC,6EAA6E,GACxF,CACF,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC7B,OAAO,CACN,KAAC,eAAe,IACf,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,EACrB,MAAM,EAAE,IAAI,CAAC,wBAAwB,EACrC,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,aAAa,EAAE,IAAI,CAAC,wBAAwB,EAC5C,mBAAmB,EAAE,IAAI,CAAC,aAAa,KAAK,qBAAqB,CAAC,KAAK,EACvE,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAC9C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,iBAAiB,EAAI,IAAI,CAAC,iBAAiB,EAC3C,QAAQ,EAAE,IAAI,CAAC,yBAAyB,EACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAC,qGAAqG,GAChH,CACF,CAAC;AACH,CAAC","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport YearRangePicker from \"./YearRangePicker.js\";\nimport CalendarHeaderTemplate from \"./CalendarHeaderTemplate.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nexport default function CalendarTemplate(this: Calendar) {\n\tconst showMultipleMonths = this._monthsToShow > 1 && !this._isDayPickerHidden;\n\tconst shouldRenderSeparateHeaders = this._isDefaultHeaderModeInMultipleMonths && !this._portraitView && !this._isCompactMode;\n\tconst shouldRenderInlineHeaders = this._isDefaultHeaderModeInMultipleMonths && (this._portraitView || this._isCompactMode);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-cal-root\": true,\n\t\t\t\t\t\"ui5-dt-cal--mobile\": this._phoneView,\n\t\t\t\t\t\"ui5-dt-cal--portrait\": this._portraitView,\n\t\t\t\t\t\"ui5-dt-cal--multiple\": showMultipleMonths,\n\t\t\t\t}}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t>\n\t\t\t\t{!showMultipleMonths && (\n\t\t\t\t\t<div class=\"ui5-calheader\" exportparts=\"calendar-header-arrow-button, calendar-header-middle-button\">\n\t\t\t\t\t\t{ CalendarHeaderTemplate.call(this) }\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div id={`${this._id}-content`} class={{\n\t\t\t\t\t\"ui5-cal-content\": true,\n\t\t\t\t\t\"ui5-cal-content-multiple\": showMultipleMonths,\n\t\t\t\t}}>\n\t\t\t\t\t{showMultipleMonths ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{/* When pickers are active, show standard calendar header */}\n\t\t\t\t\t\t\t{this._shouldShowOnePickerHeaderButtonInMultipleMonths && (\n\t\t\t\t\t\t\t\t<div class=\"ui5-calheader ui5-calheader-multiple ui5-calheader-default-multiple\" exportparts=\"calendar-header-arrow-button, calendar-header-middle-button\">\n\t\t\t\t\t\t\t\t\t{ CalendarHeaderTemplate.call(this) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div class=\"ui5-cal-daypicker-overlay\"></div>\n\n\t\t\t\t\t\t\t{/* Render headers in separate loop when in horizontal layout (cozy mode, not portrait, not compact) */}\n\t\t\t\t\t\t\t{shouldRenderSeparateHeaders && (\n\t\t\t\t\t\t\t\t<div class=\"ui5-cal-multiple-months-header-wrapper\">\n\t\t\t\t\t\t\t\t\t{renderMonthHeaders.call(this)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{/* Render day pickers (with inline headers in vertical layout) */}\n\t\t\t\t\t\t\t<div class=\"ui5-cal-multiple-months-wrapper\">\n\t\t\t\t\t\t\t\t{renderMonthPickers.call(this, shouldRenderInlineHeaders)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DayPicker\n\t\t\t\t\t\t\t\tid={`${this._id}-daypicker`}\n\t\t\t\t\t\t\t\thidden={this._isDayPickerHidden}\n\t\t\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t\t\tspecialCalendarDates={this._specialCalendarDates}\n\t\t\t\t\t\t\t\tdisabledDates={this._disabledDates}\n\t\t\t\t\t\t\t\t_hidden={this._isDayPickerHidden}\n\t\t\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\t\t\tcalendarWeekNumbering={this.calendarWeekNumbering}\n\t\t\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t\t\thideWeekNumbers={this.hideWeekNumbers}\n\t\t\t\t\t\t\t\tonChange={this.onSelectedDatesChange}\n\t\t\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\t\t\texportparts=\"day-cell, day-cell-selected, day-cell-selected-between\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{renderMonthPicker.call(this)}\n\t\t\t\t\t\t\t{renderYearPicker.call(this)}\n\t\t\t\t\t\t\t{renderYearRangePicker.call(this)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{showMultipleMonths && (\n\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\"ui5-cal-overlay-container\": true,\n\t\t\t\t\t\t\"ui5-cal-overlay-hidden\": this._isMonthPickerHidden && this._isYearPickerHidden && this._isYearRangePickerHidden,\n\t\t\t\t\t}}>\n\t\t\t\t\t\t{renderMonthPicker.call(this)}\n\t\t\t\t\t\t{renderYearPicker.call(this)}\n\t\t\t\t\t\t{renderYearRangePicker.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonui5-calendar-legend-selection-change={this._onCalendarLegendSelectionChange}\n\t\t\t\tonui5-calendar-legend-focus-out={this._onLegendFocusOut}\n\t\t\t>\n\t\t\t\t<slot name=\"calendarLegend\"></slot>\n\t\t\t</div>\n\t\t</>);\n}\n\n/**\n * Renders month headers in a separate loop (horizontal layout)\n */\nfunction renderMonthHeaders(this: Calendar) {\n\treturn Array.from({ length: this._monthsToShow }, (_, index) => {\n\t\tconst monthTimestamp = this._getMonthTimestamp(index);\n\t\tconst isFirst = index === 0;\n\t\tconst isLast = index === this._monthsToShow - 1;\n\n\t\treturn (\n\t\t\t<div key={`calendar-month-header-${index}`} class=\"ui5-cal-month-header-container\">\n\t\t\t\t{CalendarHeaderTemplate.call(this, {\n\t\t\t\t\theaderText: this._getHeaderTextForMonth(monthTimestamp),\n\t\t\t\t\tisFirst,\n\t\t\t\t\tisLast,\n\t\t\t\t\tisMultiple: true,\n\t\t\t\t})}\n\t\t\t</div>\n\t\t);\n\t});\n}\n\n/**\n * Renders month pickers (with optional inline headers for vertical layout)\n */\nfunction renderMonthPickers(this: Calendar, shouldRenderInlineHeaders: boolean) {\n\treturn Array.from({ length: this._monthsToShow }, (_, index) => {\n\t\tconst monthTimestamp = this._getMonthTimestamp(index);\n\t\tconst isFirst = index === 0;\n\t\tconst isLast = index === this._monthsToShow - 1;\n\n\t\treturn (\n\t\t\t<div key={`calendar-month-picker-${index}`} class=\"ui5-cal-month-container\">\n\t\t\t\t{/* Render header inline when in vertical layout (portrait OR compact) */}\n\t\t\t\t{shouldRenderInlineHeaders &&\n\t\t\t\t\tCalendarHeaderTemplate.call(this, {\n\t\t\t\t\t\theaderText: this._getHeaderTextForMonth(monthTimestamp),\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tisMultiple: true,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t<div class=\"ui5-cal-daypicker-wrapper\">\n\t\t\t\t\t<DayPicker\n\t\t\t\t\t\tid={`${this._id}-daypicker-${index}`}\n\t\t\t\t\t\thidden={this._isDayPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\tspecialCalendarDates={this._specialCalendarDates}\n\t\t\t\t\t\tdisabledDates={this._disabledDates}\n\t\t\t\t\t\t_hidden={this._isDayPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\tcalendarWeekNumbering={this.calendarWeekNumbering}\n\t\t\t\t\t\ttimestamp={monthTimestamp}\n\t\t\t\t\t\thideWeekNumbers={this.hideWeekNumbers}\n\t\t\t\t\t\tonChange={this.onSelectedDatesChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"day-cell, day-cell-selected, day-cell-selected-between\"\n\t\t\t\t\t\tinert={this._inert}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t});\n}\n\nfunction renderMonthPicker(this: Calendar) {\n\treturn (\n\t\t<MonthPicker\n\t\t\tid={`${this._id}-MP`}\n\t\t\thidden={this._isMonthPickerHidden}\n\t\t\tformatPattern={this._formatPattern}\n\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t_hidden={this._isMonthPickerHidden}\n\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\tselectionMode={this.selectionMode}\n\t\t\tminDate={this.minDate}\n\t\t\tmaxDate={this.maxDate}\n\t\t\ttimestamp={this._timestamp}\n\t\t\tonChange={this.onSelectedMonthChange}\n\t\t\tonNavigate={this.onNavigate}\n\t\t\texportparts=\"month-cell, month-cell-selected, month-cell-selected-between, month-picker-root\"\n\t\t/>\n\t);\n}\n\nfunction renderYearPicker(this: Calendar) {\n\treturn (\n\t\t<YearPicker\n\t\t\tid={`${this._id}-YP`}\n\t\t\thidden={this._isYearPickerHidden}\n\t\t\tformatPattern={this._formatPattern}\n\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t_hidden={this._isYearPickerHidden}\n\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\tselectionMode={this.selectionMode}\n\t\t\tminDate={this.minDate}\n\t\t\tmaxDate={this.maxDate}\n\t\t\ttimestamp={this._timestamp}\n\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\tonChange={this.onSelectedYearChange}\n\t\t\tonNavigate={this.onNavigate}\n\t\t\texportparts=\"year-cell, year-cell-selected, year-cell-selected-between, year-picker-root\"\n\t\t/>\n\t);\n}\n\nfunction renderYearRangePicker(this: Calendar) {\n\treturn (\n\t\t<YearRangePicker\n\t\t\tid={`${this._id}-YRP`}\n\t\t\thidden={this._isYearRangePickerHidden}\n\t\t\tformatPattern={this._formatPattern}\n\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t_showRangeSelection={this.selectionMode === CalendarSelectionMode.Range}\n\t\t\t_hidden={this._isYearRangePickerHidden}\n\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\tminDate={this.minDate}\n\t\t\tmaxDate={this.maxDate}\n\t\t\ttimestamp={this._timestamp}\n\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\tonChange={this.onSelectedYearRangeChange}\n\t\t\tonNavigate={this.onNavigate}\n\t\t\texportparts=\"year-range-cell, year-range-cell-selected, year-range-cell-selected-between, year-range-picker-root\"\n\t\t/>\n\t);\n}\n"]}
|
package/dist/Carousel.js
CHANGED
|
@@ -570,7 +570,7 @@ let Carousel = Carousel_1 = class Carousel extends UI5Element {
|
|
|
570
570
|
return;
|
|
571
571
|
}
|
|
572
572
|
if (newItemIndex > items.length - effectiveItemsPerPage) {
|
|
573
|
-
newItemIndex = items.length - effectiveItemsPerPage;
|
|
573
|
+
newItemIndex = Math.max(0, items.length - effectiveItemsPerPage);
|
|
574
574
|
}
|
|
575
575
|
const lastItemIndex = newItemIndex + effectiveItemsPerPage;
|
|
576
576
|
this._visibleItemsIndexes = [];
|
package/dist/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ChangePageOptions = {\n\tfireEvent?: boolean;\n\tmoveFocus?: boolean;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current page index, which determines the first visible item.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentPageIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedItems: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentPageIndex = clamp(this._currentPageIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - 1);\n\t\t\tthis._changePageIndex(this._currentPageIndex, { fireEvent: false });\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedItems = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateFocusedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateFocusedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\t\tthis._updateVisibleItems(this._currentPageIndex);\n\n\t\t// Items per page did not change or the current,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - this.effectiveItemsPerPage);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet itemIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\titemIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (itemIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t\t// Save reference of the last focused element for each item\n\t\tthis._lastFocusedElements[itemIndex] = target;\n\n\t\tconst sortedItemIndex = this._orderOfLastFocusedItems.indexOf(itemIndex);\n\t\tif (sortedItemIndex === -1) {\n\t\t\tthis._orderOfLastFocusedItems.unshift(itemIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedItems.splice(0, 0, this._orderOfLastFocusedItems.splice(sortedItemIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedItemIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(0, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this.items.length - 1, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex + this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex - this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedItemIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedItems.length; i++) {\n\t\t\tconst itemIndex = this._orderOfLastFocusedItems[i];\n\n\t\t\tif (this.isItemVisible(itemIndex)) {\n\t\t\t\treturn itemIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex - 1;\n\t\tif (this.cyclic && newFocusedItemIndex < 0) {\n\t\t\tnewFocusedItemIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateRight() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex + 1;\n\t\tif (this.cyclic && newFocusedItemIndex > this.items.length - 1) {\n\t\t\tnewFocusedItemIndex = 0;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowRight() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex + 1;\n\t\tif (this.cyclic && newCurrentPageIndex > this.items.length - this.effectiveItemsPerPage) {\n\t\t\tnewCurrentPageIndex = 0;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowLeft() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex - 1;\n\t\tif (this.cyclic && newCurrentPageIndex < 0) {\n\t\t\tnewCurrentPageIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\tthis.navigateArrowRight();\n\t\t} else {\n\t\t\tthis.navigateArrowLeft();\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number): void {\n\t\tthis._changePageIndex(itemIndex, { fireEvent: false });\n\t}\n\n\t_changePageIndex(itemIndex: number, options: ChangePageOptions = {}): void {\n\t\tconst { fireEvent = true, moveFocus = false } = options;\n\t\tconst newPageIndex = clamp(itemIndex, 0, this.items.length - this.effectiveItemsPerPage);\n\n\t\tif (moveFocus || (this._focusedItemIndex < newPageIndex || this._focusedItemIndex > newPageIndex + this.effectiveItemsPerPage - 1)) {\n\t\t\tthis._focusedItemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\t}\n\n\t\tif (this._currentPageIndex === newPageIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentPageIndex = newPageIndex;\n\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\t}\n\n\t_changeFocusIndex(itemIndex: number) {\n\t\titemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\tlet newPageIndex = this._currentPageIndex;\n\n\t\tif (itemIndex < this._currentPageIndex) {\n\t\t\tnewPageIndex = itemIndex;\n\t\t} else if (itemIndex > this._currentPageIndex + this.effectiveItemsPerPage - 1) {\n\t\t\tnewPageIndex = itemIndex - this.effectiveItemsPerPage + 1;\n\t\t}\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemVisible(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemVisible(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemVisible(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index: number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = items.length\t - effectiveItemsPerPage;\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentPageIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentPageIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentPageIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @default []\n\t * @private\n\t */\n\tget _visibleItems(): Array<HTMLElement> {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ChangePageOptions = {\n\tfireEvent?: boolean;\n\tmoveFocus?: boolean;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current page index, which determines the first visible item.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentPageIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedItems: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentPageIndex = clamp(this._currentPageIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - 1);\n\t\t\tthis._changePageIndex(this._currentPageIndex, { fireEvent: false });\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedItems = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateFocusedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateFocusedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\t\tthis._updateVisibleItems(this._currentPageIndex);\n\n\t\t// Items per page did not change or the current,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - this.effectiveItemsPerPage);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet itemIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\titemIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (itemIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t\t// Save reference of the last focused element for each item\n\t\tthis._lastFocusedElements[itemIndex] = target;\n\n\t\tconst sortedItemIndex = this._orderOfLastFocusedItems.indexOf(itemIndex);\n\t\tif (sortedItemIndex === -1) {\n\t\t\tthis._orderOfLastFocusedItems.unshift(itemIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedItems.splice(0, 0, this._orderOfLastFocusedItems.splice(sortedItemIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedItemIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(0, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this.items.length - 1, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex + this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex - this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedItemIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedItems.length; i++) {\n\t\t\tconst itemIndex = this._orderOfLastFocusedItems[i];\n\n\t\t\tif (this.isItemVisible(itemIndex)) {\n\t\t\t\treturn itemIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex - 1;\n\t\tif (this.cyclic && newFocusedItemIndex < 0) {\n\t\t\tnewFocusedItemIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateRight() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex + 1;\n\t\tif (this.cyclic && newFocusedItemIndex > this.items.length - 1) {\n\t\t\tnewFocusedItemIndex = 0;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowRight() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex + 1;\n\t\tif (this.cyclic && newCurrentPageIndex > this.items.length - this.effectiveItemsPerPage) {\n\t\t\tnewCurrentPageIndex = 0;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowLeft() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex - 1;\n\t\tif (this.cyclic && newCurrentPageIndex < 0) {\n\t\t\tnewCurrentPageIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\tthis.navigateArrowRight();\n\t\t} else {\n\t\t\tthis.navigateArrowLeft();\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number): void {\n\t\tthis._changePageIndex(itemIndex, { fireEvent: false });\n\t}\n\n\t_changePageIndex(itemIndex: number, options: ChangePageOptions = {}): void {\n\t\tconst { fireEvent = true, moveFocus = false } = options;\n\t\tconst newPageIndex = clamp(itemIndex, 0, this.items.length - this.effectiveItemsPerPage);\n\n\t\tif (moveFocus || (this._focusedItemIndex < newPageIndex || this._focusedItemIndex > newPageIndex + this.effectiveItemsPerPage - 1)) {\n\t\t\tthis._focusedItemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\t}\n\n\t\tif (this._currentPageIndex === newPageIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentPageIndex = newPageIndex;\n\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\t}\n\n\t_changeFocusIndex(itemIndex: number) {\n\t\titemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\tlet newPageIndex = this._currentPageIndex;\n\n\t\tif (itemIndex < this._currentPageIndex) {\n\t\t\tnewPageIndex = itemIndex;\n\t\t} else if (itemIndex > this._currentPageIndex + this.effectiveItemsPerPage - 1) {\n\t\t\tnewPageIndex = itemIndex - this.effectiveItemsPerPage + 1;\n\t\t}\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemVisible(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemVisible(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemVisible(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index: number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = Math.max(0, items.length - effectiveItemsPerPage);\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentPageIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentPageIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentPageIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @default []\n\t * @private\n\t */\n\tget _visibleItems(): Array<HTMLElement> {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
|
|
@@ -43,6 +43,20 @@ declare class DateRangePicker extends DatePicker implements IFormInputElement {
|
|
|
43
43
|
* @public
|
|
44
44
|
*/
|
|
45
45
|
delimiter: string;
|
|
46
|
+
/**
|
|
47
|
+
* Defines whether the component displays two months side by side in the picker popup.
|
|
48
|
+
*
|
|
49
|
+
* When enabled, two consecutive months are shown, making it easier to select date ranges
|
|
50
|
+
* that span multiple months without the need to navigate between months.
|
|
51
|
+
*
|
|
52
|
+
* **Note:** On mobile devices only a single month
|
|
53
|
+
* will be displayed regardless of this setting.
|
|
54
|
+
*
|
|
55
|
+
* @default false
|
|
56
|
+
* @public
|
|
57
|
+
* @since 2.22.0
|
|
58
|
+
*/
|
|
59
|
+
showTwoMonths: boolean;
|
|
46
60
|
/**
|
|
47
61
|
* The first date in the range during selection (this is a temporary value, not the first date in the value range)
|
|
48
62
|
* @private
|
|
@@ -83,6 +97,7 @@ declare class DateRangePicker extends DatePicker implements IFormInputElement {
|
|
|
83
97
|
* @override
|
|
84
98
|
*/
|
|
85
99
|
get _calendarSelectedDates(): string[];
|
|
100
|
+
get _isPhone(): boolean;
|
|
86
101
|
/**
|
|
87
102
|
* Returns the start date of the currently selected range as JavaScript Date instance.
|
|
88
103
|
* @public
|
|
@@ -102,6 +117,18 @@ declare class DateRangePicker extends DatePicker implements IFormInputElement {
|
|
|
102
117
|
* @override
|
|
103
118
|
*/
|
|
104
119
|
get _placeholder(): string;
|
|
120
|
+
get _submitDisabled(): boolean;
|
|
121
|
+
get _cancelButtonText(): string;
|
|
122
|
+
get _okButtonText(): string;
|
|
123
|
+
/**
|
|
124
|
+
* Handles clicking on the `submit` button, within the picker`s footer in mobile devices.
|
|
125
|
+
*/
|
|
126
|
+
_submitClick(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Handles clicking on the `cancel` button, within the picker`s footer,
|
|
129
|
+
* that would disregard the user selection.
|
|
130
|
+
*/
|
|
131
|
+
_cancelClick(): void;
|
|
105
132
|
/**
|
|
106
133
|
* @override
|
|
107
134
|
*/
|