@ui5/webcomponents 2.20.0 → 2.21.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 +36 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Button.d.ts +6 -0
- package/dist/Button.js +11 -2
- package/dist/Button.js.map +1 -1
- package/dist/Carousel.d.ts +14 -13
- package/dist/Carousel.js +93 -177
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +2 -2
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/ColorPaletteTemplate.js +1 -1
- package/dist/ColorPaletteTemplate.js.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/DayPickerTemplate.js +1 -1
- package/dist/DayPickerTemplate.js.map +1 -1
- package/dist/Dialog.d.ts +0 -3
- package/dist/Dialog.js +3 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js +12 -4
- package/dist/Icon.js.map +1 -1
- package/dist/IconTemplate.js +1 -1
- package/dist/IconTemplate.js.map +1 -1
- package/dist/Input.d.ts +2 -1
- package/dist/Input.js +38 -16
- package/dist/Input.js.map +1 -1
- package/dist/Menu.js +6 -1
- package/dist/Menu.js.map +1 -1
- package/dist/MenuItem.d.ts +8 -0
- package/dist/MenuItem.js +29 -1
- package/dist/MenuItem.js.map +1 -1
- package/dist/MenuItemTemplate.js +2 -2
- package/dist/MenuItemTemplate.js.map +1 -1
- package/dist/MultiComboBox.js +5 -0
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.js +4 -5
- package/dist/MultiInput.js.map +1 -1
- package/dist/StepInput.d.ts +5 -0
- package/dist/StepInput.js +26 -5
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +8 -4
- package/dist/Switch.js +15 -11
- package/dist/Switch.js.map +1 -1
- package/dist/SwitchTemplate.js +1 -1
- package/dist/SwitchTemplate.js.map +1 -1
- package/dist/TimePicker.d.ts +55 -3
- package/dist/TimePicker.js +160 -26
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimePickerTemplate.js +1 -1
- package/dist/TimePickerTemplate.js.map +1 -1
- package/dist/TimeSelectionClocks.js +8 -0
- package/dist/TimeSelectionClocks.js.map +1 -1
- package/dist/Token.js +2 -2
- package/dist/Token.js.map +1 -1
- package/dist/Tokenizer.js +2 -1
- package/dist/Tokenizer.js.map +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/PopupsCommon.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_dark/parameters-bundle.css +1 -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 +69 -6
- package/dist/custom-elements.json +66 -6
- package/dist/features/InputSuggestions.js +2 -1
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- 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_dark/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 +7 -2
- package/dist/generated/i18n/i18n-defaults.js +7 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.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/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.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_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_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 +13 -3
- package/dist/web-types.json +28 -8
- package/package.json +9 -9
- package/src/CarouselTemplate.tsx +3 -3
- package/src/ColorPaletteTemplate.tsx +2 -2
- package/src/DayPickerTemplate.tsx +1 -1
- package/src/IconTemplate.tsx +1 -0
- package/src/MenuItemTemplate.tsx +11 -1
- package/src/SwitchTemplate.tsx +2 -2
- package/src/TimePickerTemplate.tsx +1 -1
- package/src/i18n/messagebundle.properties +17 -2
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/themes/Breadcrumbs.css +6 -2
- package/src/themes/ColorPaletteItem.css +14 -0
- package/src/themes/DatePickerPopover.css +5 -0
- package/src/themes/MenuItem.css +5 -0
- package/src/themes/PopupsCommon.css +7 -0
- package/src/themes/base/Bar-parameters.css +1 -0
- package/src/themes/base/Breadcrumbs-parameters.css +4 -0
- package/src/themes/sap_fiori_3/parameters-bundle.css +2 -1
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -1
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +2 -1
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +2 -1
- package/src/themes/sap_horizon/Breadcrumbs-parameters.css +5 -1
- package/src/themes/sap_horizon/CalendarHeader-parameters.css +3 -3
- package/src/themes/sap_horizon/DayPicker-parameters.css +3 -3
- package/src/themes/sap_horizon_dark/Breadcrumbs-parameters.css +5 -1
- package/src/themes/sap_horizon_dark/CalendarHeader-parameters.css +2 -2
- package/src/themes/sap_horizon_hcb/Breadcrumbs-parameters.css +6 -0
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +2 -1
- package/src/themes/sap_horizon_hcw/Breadcrumbs-parameters.css +6 -0
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +2 -1
package/dist/Button.d.ts
CHANGED
|
@@ -244,6 +244,11 @@ declare class Button extends UI5Element implements IButton {
|
|
|
244
244
|
_isTouch: boolean;
|
|
245
245
|
_cancelAction: boolean;
|
|
246
246
|
_isSpacePressed: boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Constantly updated value of texts collected from the accessibleNameRef elements
|
|
249
|
+
* @private
|
|
250
|
+
*/
|
|
251
|
+
_accessibleNameRefTexts?: string;
|
|
247
252
|
/**
|
|
248
253
|
* Defines the text of the component.
|
|
249
254
|
*
|
|
@@ -264,6 +269,7 @@ declare class Button extends UI5Element implements IButton {
|
|
|
264
269
|
constructor();
|
|
265
270
|
_ontouchstart(): void;
|
|
266
271
|
onEnterDOM(): void;
|
|
272
|
+
_updateAccessibleNameRefTexts(): void;
|
|
267
273
|
onExitDOM(): void;
|
|
268
274
|
onBeforeRendering(): Promise<void>;
|
|
269
275
|
_setBadgeOverlayStyle(): void;
|
package/dist/Button.js
CHANGED
|
@@ -13,7 +13,7 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
|
13
13
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
14
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
15
15
|
import { isSpace, isEnter, isEscape, isShift, isSpaceShift, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
|
-
import {
|
|
16
|
+
import { getAllAccessibleNameRefTexts, registerUI5Element, deregisterUI5Element, } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
17
17
|
import { getIconAccessibleName } from "@ui5/webcomponents-base/dist/asset-registries/Icons.js";
|
|
18
18
|
import { isDesktop, isSafari, } from "@ui5/webcomponents-base/dist/Device.js";
|
|
19
19
|
import willShowContent from "@ui5/webcomponents-base/dist/util/willShowContent.js";
|
|
@@ -224,6 +224,10 @@ let Button = Button_1 = class Button extends UI5Element {
|
|
|
224
224
|
this.addEventListener("click", this._onclickBound);
|
|
225
225
|
this._clickHandlerAttached = true;
|
|
226
226
|
}
|
|
227
|
+
registerUI5Element(this, this._updateAccessibleNameRefTexts.bind(this));
|
|
228
|
+
}
|
|
229
|
+
_updateAccessibleNameRefTexts() {
|
|
230
|
+
this._accessibleNameRefTexts = getAllAccessibleNameRefTexts(this);
|
|
227
231
|
}
|
|
228
232
|
onExitDOM() {
|
|
229
233
|
if (this._clickHandlerAttached) {
|
|
@@ -233,6 +237,7 @@ let Button = Button_1 = class Button extends UI5Element {
|
|
|
233
237
|
if (activeButton === this) {
|
|
234
238
|
activeButton = null;
|
|
235
239
|
}
|
|
240
|
+
deregisterUI5Element(this);
|
|
236
241
|
}
|
|
237
242
|
async onBeforeRendering() {
|
|
238
243
|
this._setBadgeOverlayStyle();
|
|
@@ -390,7 +395,8 @@ let Button = Button_1 = class Button extends UI5Element {
|
|
|
390
395
|
return this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);
|
|
391
396
|
}
|
|
392
397
|
get ariaLabelText() {
|
|
393
|
-
|
|
398
|
+
// Use accessibleNameRef texts (cached), then accessibleName (direct), then textContent as fallback
|
|
399
|
+
const effectiveAriaLabelText = this._accessibleNameRefTexts || this.accessibleName || "";
|
|
394
400
|
const textContent = this.textContent || "";
|
|
395
401
|
const internalLabelText = this.effectiveBadgeDescriptionText || "";
|
|
396
402
|
// Use either the effective aria label text (if accessibleName is provided) or the button's text content
|
|
@@ -533,6 +539,9 @@ __decorate([
|
|
|
533
539
|
__decorate([
|
|
534
540
|
property({ type: Boolean, noAttribute: true })
|
|
535
541
|
], Button.prototype, "_isSpacePressed", void 0);
|
|
542
|
+
__decorate([
|
|
543
|
+
property({ noAttribute: true })
|
|
544
|
+
], Button.prototype, "_accessibleNameRefTexts", void 0);
|
|
536
545
|
__decorate([
|
|
537
546
|
slot({ type: Node, "default": true })
|
|
538
547
|
], Button.prototype, "text", void 0);
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n\tisSpaceShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n\tBUTTON_BADGE_ONE_ITEM,\n\tBUTTON_BADGE_MANY_ITEMS,\n\tBUTTON_ROLE_DESCRIPTION,\n\tLINK_ROLE_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\" | \"ariaKeyShortcuts\" | \"ariaLabel\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **ariaLabel**: Defines the accessible ARIA name of the component.\n\t * Accepts any string value.\n\t *\n\t * - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * Defines whether the button shows a loading indicator.\n\t *\n\t * **Note:** If set to `true`, a busy indicator component will be displayed on the related button.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Specifies the delay in milliseconds before the loading indicator appears within the associated button.\n\t * @default 1000\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * The button's current title is determined by either the `tooltip` property or the icon's tooltip, with the `tooltip`\n\t * property taking precedence if both are set.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_isSpacePressed = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: DefaultSlot<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Slot<ButtonBadge>;\n\n\t_deactivate: () => void;\n\t_onclickBound: (e: MouseEvent) => void;\n\t_clickHandlerAttached = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tthis._onclickBound = e => {\n\t\t\tif (e instanceof CustomEvent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onclick(e);\n\t\t};\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tif (this._clickHandlerAttached) {\n\t\t\tthis.removeEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = false;\n\t\t}\n\n\t\tif (activeButton === this) {\n\t\t\tactiveButton = null;\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.loading) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled || this.loading) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isShift(e) || isEscape(e)) {\n\t\t\tthis._cancelAction = true;\n\t\t} else if (isSpace(e)) {\n\t\t\tthis._isSpacePressed = true;\n\t\t}\n\n\t\tif ((isSpace(e) || isEnter(e))) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isSpaceKey = isSpace(e);\n\t\tconst isCancelKey = isShift(e) || isEscape(e);\n\n\t\tif (isSpaceKey || isSpaceShift(e)) {\n\t\t\tif (this._cancelAction) {\n\t\t\t\tthis._cancelAction = false;\n\t\t\t\tthis._isSpacePressed = false;\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._isSpacePressed = false;\n\t\t} else if (isCancelKey && !this._isSpacePressed) {\n\t\t\tthis._cancelAction = false;\n\t\t}\n\n\t\tif ((isSpace(e) || isEnter(e))) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isSpacePressed = false;\n\t\tthis._cancelAction = false;\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented || this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\tconst effectiveAriaLabelText = getEffectiveAriaLabelText(this) || \"\";\n\t\tconst textContent = this.textContent || \"\";\n\t\tconst internalLabelText = this.effectiveBadgeDescriptionText || \"\";\n\n\t\t// Use either the effective aria label text (if accessibleName is provided) or the button's text content\n\t\tconst mainLabelText = effectiveAriaLabelText || textContent;\n\t\tconst labelParts = [mainLabelText, internalLabelText].filter(part => part);\n\t\treturn labelParts.join(\" \");\n\t}\n\n\tget ariaDescriptionText() {\n\t\tconst accessibleDescription = this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t\tconst typeLabelText = this.hasButtonType ? this.buttonTypeText : \"\";\n\n\t\tconst descriptionParts = [accessibleDescription, typeLabelText].filter(part => part);\n\t\treturn descriptionParts.length > 0 ? descriptionParts.join(\" \") : undefined;\n\t}\n\n\tget _computedAccessibilityAttributes(): ButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\texpanded: this.accessibilityAttributes.expanded,\n\t\t\thasPopup: this.accessibilityAttributes.hasPopup,\n\t\t\tcontrols: this.accessibilityAttributes.controls,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaLabel: this.accessibilityAttributes.ariaLabel || this.ariaLabelText,\n\t\t};\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\tdescription: this.ariaDescriptionText,\n\t\t\trole: this.effectiveAccRole,\n\t\t\tdisabled: this.disabled,\n\t\t\tchildren: this.text,\n\t\t\ttype: this.effectiveAccRoleTranslation,\n\t\t};\n\t}\n\n\tget effectiveAccRoleTranslation(): string {\n\t\tif (this.accessibleRole as ButtonAccessibleRole === ButtonAccessibleRole.Button) {\n\t\t\treturn Button.i18nBundle.getText(BUTTON_ROLE_DESCRIPTION);\n\t\t}\n\n\t\tif (this.accessibleRole as ButtonAccessibleRole === ButtonAccessibleRole.Link) {\n\t\t\treturn Button.i18nBundle.getText(LINK_ROLE_DESCRIPTION);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget effectiveBadgeDescriptionText() {\n\t\tif (!this.shouldRenderBadge) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst badgeEffectiveText = this.badge[0].effectiveText;\n\n\t\t// Use distinct i18n keys for singular and plural badge values to ensure proper localization.\n\t\t// Some languages have different grammatical rules for singular and plural forms,\n\t\t// so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.\n\t\tswitch (badgeEffectiveText) {\n\t\tcase \"\":\n\t\t\treturn badgeEffectiveText;\n\t\tcase \"1\":\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);\n\t\tdefault:\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);\n\t\t}\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n\tisSpaceShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tgetAllAccessibleNameRefTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n\tBUTTON_BADGE_ONE_ITEM,\n\tBUTTON_BADGE_MANY_ITEMS,\n\tBUTTON_ROLE_DESCRIPTION,\n\tLINK_ROLE_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\" | \"ariaKeyShortcuts\" | \"ariaLabel\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **ariaLabel**: Defines the accessible ARIA name of the component.\n\t * Accepts any string value.\n\t *\n\t * - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * Defines whether the button shows a loading indicator.\n\t *\n\t * **Note:** If set to `true`, a busy indicator component will be displayed on the related button.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Specifies the delay in milliseconds before the loading indicator appears within the associated button.\n\t * @default 1000\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * The button's current title is determined by either the `tooltip` property or the icon's tooltip, with the `tooltip`\n\t * property taking precedence if both are set.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_isSpacePressed = false;\n\n\t/**\n\t * Constantly updated value of texts collected from the accessibleNameRef elements\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_accessibleNameRefTexts?: string;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: DefaultSlot<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Slot<ButtonBadge>;\n\n\t_deactivate: () => void;\n\t_onclickBound: (e: MouseEvent) => void;\n\t_clickHandlerAttached = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tthis._onclickBound = e => {\n\t\t\tif (e instanceof CustomEvent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onclick(e);\n\t\t};\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\n\t\tregisterUI5Element(this, this._updateAccessibleNameRefTexts.bind(this));\n\t}\n\n\t_updateAccessibleNameRefTexts() {\n\t\tthis._accessibleNameRefTexts = getAllAccessibleNameRefTexts(this);\n\t}\n\n\tonExitDOM() {\n\t\tif (this._clickHandlerAttached) {\n\t\t\tthis.removeEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = false;\n\t\t}\n\n\t\tif (activeButton === this) {\n\t\t\tactiveButton = null;\n\t\t}\n\n\t\tderegisterUI5Element(this);\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.loading) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled || this.loading) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isShift(e) || isEscape(e)) {\n\t\t\tthis._cancelAction = true;\n\t\t} else if (isSpace(e)) {\n\t\t\tthis._isSpacePressed = true;\n\t\t}\n\n\t\tif ((isSpace(e) || isEnter(e))) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isSpaceKey = isSpace(e);\n\t\tconst isCancelKey = isShift(e) || isEscape(e);\n\n\t\tif (isSpaceKey || isSpaceShift(e)) {\n\t\t\tif (this._cancelAction) {\n\t\t\t\tthis._cancelAction = false;\n\t\t\t\tthis._isSpacePressed = false;\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._isSpacePressed = false;\n\t\t} else if (isCancelKey && !this._isSpacePressed) {\n\t\t\tthis._cancelAction = false;\n\t\t}\n\n\t\tif ((isSpace(e) || isEnter(e))) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isSpacePressed = false;\n\t\tthis._cancelAction = false;\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented || this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\t// Use accessibleNameRef texts (cached), then accessibleName (direct), then textContent as fallback\n\t\tconst effectiveAriaLabelText = this._accessibleNameRefTexts || this.accessibleName || \"\";\n\t\tconst textContent = this.textContent || \"\";\n\t\tconst internalLabelText = this.effectiveBadgeDescriptionText || \"\";\n\n\t\t// Use either the effective aria label text (if accessibleName is provided) or the button's text content\n\t\tconst mainLabelText = effectiveAriaLabelText || textContent;\n\t\tconst labelParts = [mainLabelText, internalLabelText].filter(part => part);\n\t\treturn labelParts.join(\" \");\n\t}\n\n\tget ariaDescriptionText() {\n\t\tconst accessibleDescription = this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t\tconst typeLabelText = this.hasButtonType ? this.buttonTypeText : \"\";\n\n\t\tconst descriptionParts = [accessibleDescription, typeLabelText].filter(part => part);\n\t\treturn descriptionParts.length > 0 ? descriptionParts.join(\" \") : undefined;\n\t}\n\n\tget _computedAccessibilityAttributes(): ButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\texpanded: this.accessibilityAttributes.expanded,\n\t\t\thasPopup: this.accessibilityAttributes.hasPopup,\n\t\t\tcontrols: this.accessibilityAttributes.controls,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaLabel: this.accessibilityAttributes.ariaLabel || this.ariaLabelText,\n\t\t};\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\tdescription: this.ariaDescriptionText,\n\t\t\trole: this.effectiveAccRole,\n\t\t\tdisabled: this.disabled,\n\t\t\tchildren: this.text,\n\t\t\ttype: this.effectiveAccRoleTranslation,\n\t\t};\n\t}\n\n\tget effectiveAccRoleTranslation(): string {\n\t\tif (this.accessibleRole as ButtonAccessibleRole === ButtonAccessibleRole.Button) {\n\t\t\treturn Button.i18nBundle.getText(BUTTON_ROLE_DESCRIPTION);\n\t\t}\n\n\t\tif (this.accessibleRole as ButtonAccessibleRole === ButtonAccessibleRole.Link) {\n\t\t\treturn Button.i18nBundle.getText(LINK_ROLE_DESCRIPTION);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget effectiveBadgeDescriptionText() {\n\t\tif (!this.shouldRenderBadge) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst badgeEffectiveText = this.badge[0].effectiveText;\n\n\t\t// Use distinct i18n keys for singular and plural badge values to ensure proper localization.\n\t\t// Some languages have different grammatical rules for singular and plural forms,\n\t\t// so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.\n\t\tswitch (badgeEffectiveText) {\n\t\tcase \"\":\n\t\t\treturn badgeEffectiveText;\n\t\tcase \"1\":\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);\n\t\tdefault:\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);\n\t\t}\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
|
package/dist/Carousel.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ import type Icon from "./Icon.js";
|
|
|
13
13
|
type CarouselNavigateEventDetail = {
|
|
14
14
|
selectedIndex: number;
|
|
15
15
|
};
|
|
16
|
+
type ChangePageOptions = {
|
|
17
|
+
fireEvent?: boolean;
|
|
18
|
+
moveFocus?: boolean;
|
|
19
|
+
};
|
|
16
20
|
type ItemsInfo = {
|
|
17
21
|
id: string;
|
|
18
22
|
item: HTMLElement & {
|
|
@@ -204,20 +208,19 @@ declare class Carousel extends UI5Element {
|
|
|
204
208
|
*/
|
|
205
209
|
_visibleItemsCount: number;
|
|
206
210
|
/**
|
|
207
|
-
* Defines the current
|
|
211
|
+
* Defines the current page index, which determines the first visible item.
|
|
208
212
|
* @private
|
|
209
213
|
* @since 2.16.0-r.c1
|
|
210
214
|
*/
|
|
211
|
-
|
|
215
|
+
_currentPageIndex: number;
|
|
212
216
|
_scrollEnablement: ScrollEnablement;
|
|
213
217
|
_onResizeBound: ResizeObserverCallback;
|
|
214
218
|
_resizing: boolean;
|
|
215
219
|
_lastFocusedElements: Array<HTMLElement>;
|
|
216
|
-
|
|
220
|
+
_orderOfLastFocusedItems: Array<number>;
|
|
217
221
|
_lastInnerFocusedElement?: HTMLElement;
|
|
218
222
|
_pageStep: number;
|
|
219
223
|
_visibleItemsIndexes: Array<number>;
|
|
220
|
-
_itemIndicator: number;
|
|
221
224
|
_contentItemsObserver: MutationObserver;
|
|
222
225
|
_observableContent: Array<HTMLElement>;
|
|
223
226
|
/**
|
|
@@ -235,7 +238,7 @@ declare class Carousel extends UI5Element {
|
|
|
235
238
|
onAfterRendering(): void;
|
|
236
239
|
onEnterDOM(): void;
|
|
237
240
|
onExitDOM(): void;
|
|
238
|
-
|
|
241
|
+
validateFocusedIndex(): void;
|
|
239
242
|
_onResize(): void;
|
|
240
243
|
_updateScrolling(e: ScrollEnablementEventListenerParam): void;
|
|
241
244
|
_onkeydown(e: KeyboardEvent): void;
|
|
@@ -252,13 +255,11 @@ declare class Carousel extends UI5Element {
|
|
|
252
255
|
_handlePageUp(e: KeyboardEvent): Promise<void>;
|
|
253
256
|
_handlePageDown(e: KeyboardEvent): Promise<void>;
|
|
254
257
|
get _backgroundDesign(): string;
|
|
255
|
-
get
|
|
258
|
+
get _getLastFocusedItemIndex(): number;
|
|
256
259
|
navigateLeft(): Promise<void>;
|
|
257
260
|
navigateRight(): Promise<void>;
|
|
258
|
-
navigateArrowRight(): void
|
|
259
|
-
navigateArrowLeft(): void
|
|
260
|
-
_calculateItemSlideIndex(currentSlideIndex: number, itemStep: number): number;
|
|
261
|
-
_moveToItem(slideIndex: number): void;
|
|
261
|
+
navigateArrowRight(): Promise<void>;
|
|
262
|
+
navigateArrowLeft(): Promise<void>;
|
|
262
263
|
focusItem(): void;
|
|
263
264
|
_navButtonClick(e: UI5CustomEvent<Icon, "click">): void;
|
|
264
265
|
/**
|
|
@@ -268,7 +269,8 @@ declare class Carousel extends UI5Element {
|
|
|
268
269
|
* @public
|
|
269
270
|
*/
|
|
270
271
|
navigateTo(itemIndex: number): void;
|
|
271
|
-
|
|
272
|
+
_changePageIndex(itemIndex: number, options?: ChangePageOptions): void;
|
|
273
|
+
_changeFocusIndex(itemIndex: number): void;
|
|
272
274
|
/**
|
|
273
275
|
* The indices of the currently visible items of the component.
|
|
274
276
|
* @public
|
|
@@ -282,7 +284,7 @@ declare class Carousel extends UI5Element {
|
|
|
282
284
|
*/
|
|
283
285
|
get items(): Array<ItemsInfo>;
|
|
284
286
|
get effectiveItemsPerPage(): number;
|
|
285
|
-
|
|
287
|
+
isItemVisible(index: number): boolean;
|
|
286
288
|
_updateVisibleItems(index: number): void;
|
|
287
289
|
isIndexInRange(index: number): boolean;
|
|
288
290
|
/**
|
|
@@ -321,7 +323,6 @@ declare class Carousel extends UI5Element {
|
|
|
321
323
|
get hasNext(): boolean;
|
|
322
324
|
get suppressAnimation(): boolean;
|
|
323
325
|
get _isRTL(): boolean;
|
|
324
|
-
get selectedIndexToShow(): number;
|
|
325
326
|
get ofText(): string;
|
|
326
327
|
get ariaLabelTxt(): string | undefined;
|
|
327
328
|
get nextPageText(): string;
|