@ui5/webcomponents 2.22.0-rc.4 → 2.22.0-rc.6
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 +49 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Carousel.js +13 -3
- package/dist/Carousel.js.map +1 -1
- package/dist/ComboBox.d.ts +4 -0
- package/dist/ComboBox.js +6 -0
- package/dist/ComboBox.js.map +1 -1
- package/dist/DateTimePicker.d.ts +5 -6
- package/dist/DateTimePicker.js +9 -11
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/Form.d.ts +4 -4
- package/dist/Form.js +6 -6
- package/dist/Form.js.map +1 -1
- package/dist/GridWalker.js +8 -2
- package/dist/GridWalker.js.map +1 -1
- package/dist/Input.d.ts +4 -0
- package/dist/Input.js.map +1 -1
- package/dist/List.js +54 -2
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +21 -6
- package/dist/ListItem.js +72 -23
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +6 -1
- package/dist/ListItemBase.js +20 -1
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemBaseTemplate.d.ts +2 -2
- package/dist/ListItemBaseTemplate.js.map +1 -1
- package/dist/ListItemGroup.d.ts +2 -0
- package/dist/ListItemGroup.js.map +1 -1
- package/dist/ListItemTemplate.js +1 -1
- package/dist/ListItemTemplate.js.map +1 -1
- package/dist/Menu.d.ts +4 -0
- package/dist/Menu.js.map +1 -1
- package/dist/MenuItemTemplate.d.ts +5 -1
- package/dist/MenuItemTemplate.js +8 -3
- package/dist/MenuItemTemplate.js.map +1 -1
- package/dist/MultiComboBox.d.ts +5 -1
- package/dist/MultiComboBox.js +41 -24
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.d.ts +6 -0
- package/dist/MultiInput.js +36 -8
- package/dist/MultiInput.js.map +1 -1
- package/dist/Panel.d.ts +22 -0
- package/dist/Panel.js +51 -0
- package/dist/Panel.js.map +1 -1
- package/dist/PanelTemplate.js +5 -2
- package/dist/PanelTemplate.js.map +1 -1
- package/dist/Select.d.ts +2 -0
- package/dist/Select.js +3 -0
- package/dist/Select.js.map +1 -1
- package/dist/Tab.d.ts +8 -1
- package/dist/Tab.js +13 -0
- package/dist/Tab.js.map +1 -1
- package/dist/TabContainer.d.ts +6 -3
- package/dist/TabContainer.js +11 -8
- package/dist/TabContainer.js.map +1 -1
- package/dist/Table.d.ts +1 -0
- package/dist/Table.js +25 -10
- package/dist/Table.js.map +1 -1
- package/dist/TableCustomAnnouncement.d.ts +1 -0
- package/dist/TableCustomAnnouncement.js +17 -2
- package/dist/TableCustomAnnouncement.js.map +1 -1
- package/dist/TableGroupRow.d.ts +60 -0
- package/dist/TableGroupRow.js +114 -0
- package/dist/TableGroupRow.js.map +1 -0
- package/dist/TableGroupRowTemplate.d.ts +2 -0
- package/dist/TableGroupRowTemplate.js +7 -0
- package/dist/TableGroupRowTemplate.js.map +1 -0
- package/dist/TableRowBase.d.ts +1 -0
- package/dist/TableRowBase.js +3 -0
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TableSelection.js +2 -2
- package/dist/TableSelection.js.map +1 -1
- package/dist/TableSelectionMulti.js +1 -1
- package/dist/TableSelectionMulti.js.map +1 -1
- package/dist/TableVirtualizer.d.ts +1 -0
- package/dist/TableVirtualizer.js +1 -0
- package/dist/TableVirtualizer.js.map +1 -1
- package/dist/Tokenizer.d.ts +1 -0
- package/dist/Tokenizer.js +12 -0
- package/dist/Tokenizer.js.map +1 -1
- package/dist/bundle.esm.js +3 -0
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/FormLayout.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderTooltip.css +1 -1
- package/dist/css/themes/TableGroupRow.css +1 -0
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Toolbar.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 +7 -5
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +5 -2
- 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 +1258 -113
- package/dist/custom-elements.json +578 -9
- package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js +7 -2
- package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js.map +1 -1
- package/dist/dynamic-date-range-options/FromDateTimeTemplate.js +1 -1
- package/dist/dynamic-date-range-options/FromDateTimeTemplate.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.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_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 +2 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -5
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/FormLayout.css.d.ts +1 -1
- package/dist/generated/themes/FormLayout.css.js +1 -1
- package/dist/generated/themes/FormLayout.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderTooltip.css.d.ts +1 -1
- package/dist/generated/themes/SliderTooltip.css.js +1 -1
- package/dist/generated/themes/SliderTooltip.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.d.ts +2 -0
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -0
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.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 +7 -5
- 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 +5 -2
- 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 +140 -20
- package/dist/web-types.json +340 -36
- package/package-scripts.cjs +1 -0
- package/package.json +9 -9
- package/src/ListItemBaseTemplate.tsx +3 -3
- package/src/ListItemTemplate.tsx +0 -2
- package/src/MenuItemTemplate.tsx +21 -10
- package/src/PanelTemplate.tsx +12 -5
- package/src/TableGroupRowTemplate.tsx +24 -0
- package/src/dynamic-date-range-options/DateTimeRangeTemplate.tsx +8 -2
- package/src/dynamic-date-range-options/FromDateTimeTemplate.tsx +1 -1
- package/src/i18n/messagebundle.properties +2 -0
- package/src/i18n/messagebundle_ar.properties +26 -6
- package/src/i18n/messagebundle_bg.properties +24 -4
- package/src/i18n/messagebundle_ca.properties +24 -4
- package/src/i18n/messagebundle_cnr.properties +24 -4
- package/src/i18n/messagebundle_cs.properties +25 -5
- package/src/i18n/messagebundle_cy.properties +24 -4
- package/src/i18n/messagebundle_da.properties +25 -5
- package/src/i18n/messagebundle_de.properties +24 -4
- package/src/i18n/messagebundle_el.properties +24 -4
- package/src/i18n/messagebundle_en.properties +24 -4
- package/src/i18n/messagebundle_en_GB.properties +24 -4
- package/src/i18n/messagebundle_en_US_sappsd.properties +24 -4
- package/src/i18n/messagebundle_en_US_saprigi.properties +22 -4
- package/src/i18n/messagebundle_en_US_saptrc.properties +24 -4
- package/src/i18n/messagebundle_es.properties +25 -5
- package/src/i18n/messagebundle_es_MX.properties +24 -4
- package/src/i18n/messagebundle_et.properties +24 -4
- package/src/i18n/messagebundle_fi.properties +24 -4
- package/src/i18n/messagebundle_fr.properties +25 -5
- package/src/i18n/messagebundle_fr_CA.properties +28 -8
- package/src/i18n/messagebundle_hi.properties +25 -5
- package/src/i18n/messagebundle_hr.properties +24 -4
- package/src/i18n/messagebundle_hu.properties +24 -4
- package/src/i18n/messagebundle_id.properties +25 -5
- package/src/i18n/messagebundle_it.properties +25 -5
- package/src/i18n/messagebundle_iw.properties +24 -4
- package/src/i18n/messagebundle_ja.properties +24 -4
- package/src/i18n/messagebundle_kk.properties +24 -4
- package/src/i18n/messagebundle_ko.properties +27 -7
- package/src/i18n/messagebundle_lt.properties +24 -4
- package/src/i18n/messagebundle_lv.properties +24 -4
- package/src/i18n/messagebundle_mk.properties +25 -5
- package/src/i18n/messagebundle_ms.properties +24 -4
- package/src/i18n/messagebundle_nl.properties +24 -4
- package/src/i18n/messagebundle_no.properties +25 -5
- package/src/i18n/messagebundle_pl.properties +24 -4
- package/src/i18n/messagebundle_pt.properties +24 -4
- package/src/i18n/messagebundle_pt_PT.properties +24 -4
- package/src/i18n/messagebundle_ro.properties +24 -4
- package/src/i18n/messagebundle_ru.properties +26 -6
- package/src/i18n/messagebundle_sh.properties +24 -4
- package/src/i18n/messagebundle_sk.properties +24 -4
- package/src/i18n/messagebundle_sl.properties +25 -5
- package/src/i18n/messagebundle_sr.properties +24 -4
- package/src/i18n/messagebundle_sv.properties +24 -4
- package/src/i18n/messagebundle_th.properties +24 -4
- package/src/i18n/messagebundle_tr.properties +24 -4
- package/src/i18n/messagebundle_uk.properties +36 -16
- package/src/i18n/messagebundle_vi.properties +25 -5
- package/src/i18n/messagebundle_zh_CN.properties +26 -6
- package/src/i18n/messagebundle_zh_TW.properties +24 -4
- package/src/themes/Dialog.css +2 -2
- package/src/themes/FormItemSpan.css +4 -4
- package/src/themes/FormLayout.css +4 -4
- package/src/themes/ListItemBase.css +4 -3
- package/src/themes/OptionBase.css +6 -0
- package/src/themes/Panel.css +19 -2
- package/src/themes/Select.css +11 -0
- package/src/themes/SliderTooltip.css +1 -1
- package/src/themes/TableGroupRow.css +20 -0
- package/src/themes/TableRowBase.css +5 -0
- package/src/themes/Toolbar.css +2 -2
- package/src/themes/base/Panel-parameters.css +1 -0
- package/src/themes/base/Select-parameters.css +2 -0
- package/src/themes/base/sizes-parameters.css +2 -2
- package/src/themes/sap_fiori_3_hcb/Link-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcw/Link-parameters.css +1 -1
- package/src/themes/sap_horizon/Select-parameters.css +6 -3
- package/src/themes/sap_horizon_dark/Select-parameters.css +6 -3
- package/src/themes/sap_horizon_hcb/Link-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/Link-parameters.css +1 -1
- package/src/themes/base/SliderTooltip-parameters.css +0 -3
- package/src/themes/sap_fiori_3/SliderTooltip-parameters.css +0 -5
- package/src/themes/sap_fiori_3_dark/SliderTooltip-parameters.css +0 -5
- package/src/themes/sap_fiori_3_hcb/SliderTooltip-parameters.css +0 -5
- package/src/themes/sap_fiori_3_hcw/SliderTooltip-parameters.css +0 -5
- package/src/themes/sap_horizon_dark/SliderTooltip-parameters.css +0 -1
- package/src/themes/sap_horizon_hcb/SliderTooltip-parameters.css +0 -1
- package/src/themes/sap_horizon_hcw/SliderTooltip-parameters.css +0 -1
package/dist/ListItem.js
CHANGED
|
@@ -9,7 +9,6 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
9
9
|
import { isSpace, isEnter, isDelete, isF2, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
10
10
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
11
11
|
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
12
|
-
import { getFirstFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
|
|
13
12
|
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
14
13
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
15
14
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
@@ -86,15 +85,15 @@ let ListItem = ListItem_1 = class ListItem extends ListItemBase {
|
|
|
86
85
|
* @since 1.24
|
|
87
86
|
*/
|
|
88
87
|
this.highlight = "None";
|
|
88
|
+
this._selectionMode = "None";
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
90
|
+
* Indicates whether the list item is in edit mode.
|
|
91
|
+
* When active, Tab cycles through internal focusable elements
|
|
92
|
+
* instead of navigating to the next list item.
|
|
93
|
+
* Toggled by F2; also set by the parent List on F7.
|
|
91
94
|
* @private
|
|
92
|
-
* @default "ListItem"
|
|
93
|
-
* @since 1.3.0
|
|
94
|
-
*
|
|
95
95
|
*/
|
|
96
|
-
this.
|
|
97
|
-
this._selectionMode = "None";
|
|
96
|
+
this._editMode = false;
|
|
98
97
|
/**
|
|
99
98
|
* Defines the current media query size.
|
|
100
99
|
* @default "S"
|
|
@@ -169,6 +168,12 @@ let ListItem = ListItem_1 = class ListItem extends ListItemBase {
|
|
|
169
168
|
}
|
|
170
169
|
}
|
|
171
170
|
_onfocusout(e) {
|
|
171
|
+
if (this._editMode) {
|
|
172
|
+
const relatedTarget = e.relatedTarget;
|
|
173
|
+
if (!relatedTarget || !(this.contains(relatedTarget) || this.shadowRoot.contains(relatedTarget))) {
|
|
174
|
+
this._editMode = false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
172
177
|
if (e.target !== this.getFocusDomRef()) {
|
|
173
178
|
return;
|
|
174
179
|
}
|
|
@@ -267,7 +272,13 @@ let ListItem = ListItem_1 = class ListItem extends ListItemBase {
|
|
|
267
272
|
return undefined;
|
|
268
273
|
}
|
|
269
274
|
get listItemAccessibleRole() {
|
|
270
|
-
|
|
275
|
+
if (this._forcedAccessibleRole) {
|
|
276
|
+
return this._forcedAccessibleRole;
|
|
277
|
+
}
|
|
278
|
+
if (this.accessibleRole) {
|
|
279
|
+
return this.accessibleRole.toLowerCase();
|
|
280
|
+
}
|
|
281
|
+
return (this._inheritedAccessibleRole || "listitem");
|
|
271
282
|
}
|
|
272
283
|
get ariaSelectedText() {
|
|
273
284
|
let ariaSelectedText;
|
|
@@ -325,37 +336,72 @@ let ListItem = ListItem_1 = class ListItem extends ListItemBase {
|
|
|
325
336
|
get _listItem() {
|
|
326
337
|
return this.shadowRoot.querySelector("li");
|
|
327
338
|
}
|
|
328
|
-
|
|
339
|
+
_handleF2() {
|
|
329
340
|
const focusDomRef = this.getFocusDomRef();
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
firstFocusable?.focus();
|
|
341
|
+
if (getActiveElement() === focusDomRef) {
|
|
342
|
+
const focusables = this._getFocusableElements();
|
|
343
|
+
if (!focusables.length) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
this._editMode = true;
|
|
347
|
+
focusables[0].focus();
|
|
338
348
|
}
|
|
339
349
|
else {
|
|
350
|
+
this._editMode = false;
|
|
340
351
|
focusDomRef.focus();
|
|
341
352
|
}
|
|
342
353
|
}
|
|
354
|
+
_handleTabNext(e) {
|
|
355
|
+
if (this._editMode) {
|
|
356
|
+
const focusables = this._getFocusableElements();
|
|
357
|
+
const currentIndex = this._indexOfActiveElement(focusables);
|
|
358
|
+
const nextIndex = currentIndex + 1;
|
|
359
|
+
if (currentIndex !== -1 && nextIndex < focusables.length) {
|
|
360
|
+
e.preventDefault();
|
|
361
|
+
focusables[nextIndex].focus();
|
|
362
|
+
}
|
|
363
|
+
else if (!this.fireDecoratorEvent("forward-after")) {
|
|
364
|
+
e.preventDefault();
|
|
365
|
+
}
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
if (!this.fireDecoratorEvent("forward-after")) {
|
|
369
|
+
e.preventDefault();
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
_handleTabPrevious(e) {
|
|
373
|
+
if (this._editMode) {
|
|
374
|
+
const focusables = this._getFocusableElements();
|
|
375
|
+
const currentIndex = this._indexOfActiveElement(focusables);
|
|
376
|
+
if (currentIndex > 0) {
|
|
377
|
+
e.preventDefault();
|
|
378
|
+
focusables[currentIndex - 1].focus();
|
|
379
|
+
}
|
|
380
|
+
else if (!this.fireDecoratorEvent("forward-before")) {
|
|
381
|
+
e.preventDefault();
|
|
382
|
+
}
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (!this.fireDecoratorEvent("forward-before")) {
|
|
386
|
+
e.preventDefault();
|
|
387
|
+
}
|
|
388
|
+
}
|
|
343
389
|
_getFocusableElements() {
|
|
344
390
|
const focusDomRef = this.getFocusDomRef();
|
|
345
391
|
return getTabbableElements(focusDomRef);
|
|
346
392
|
}
|
|
347
|
-
|
|
348
|
-
const focusables = this._getFocusableElements();
|
|
393
|
+
_indexOfActiveElement(focusables) {
|
|
349
394
|
const activeElement = getActiveElement();
|
|
350
|
-
return focusables.
|
|
395
|
+
return focusables.findIndex(el => el === activeElement || (el.shadowRoot !== null && el.shadowRoot.contains(activeElement)));
|
|
396
|
+
}
|
|
397
|
+
_getFocusedElementIndex() {
|
|
398
|
+
return this._indexOfActiveElement(this._getFocusableElements());
|
|
351
399
|
}
|
|
352
400
|
_hasFocusableElements() {
|
|
353
401
|
return this._getFocusableElements().length > 0;
|
|
354
402
|
}
|
|
355
403
|
_isFocusOnInternalElement() {
|
|
356
|
-
|
|
357
|
-
const currentElementIndex = focusables.indexOf(getActiveElement());
|
|
358
|
-
return currentElementIndex !== -1;
|
|
404
|
+
return this._indexOfActiveElement(this._getFocusableElements()) !== -1;
|
|
359
405
|
}
|
|
360
406
|
_focusInternalElement(targetIndex) {
|
|
361
407
|
const focusables = this._getFocusableElements();
|
|
@@ -395,6 +441,9 @@ __decorate([
|
|
|
395
441
|
__decorate([
|
|
396
442
|
property()
|
|
397
443
|
], ListItem.prototype, "_forcedAccessibleRole", void 0);
|
|
444
|
+
__decorate([
|
|
445
|
+
property({ noAttribute: true })
|
|
446
|
+
], ListItem.prototype, "_inheritedAccessibleRole", void 0);
|
|
398
447
|
__decorate([
|
|
399
448
|
property()
|
|
400
449
|
], ListItem.prototype, "_selectionMode", void 0);
|
package/dist/ListItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport {\n\tisSpace, isEnter, isDelete, isF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type { AccessibilityAttributes, AriaRole, AriaHasPopup } from \"@ui5/webcomponents-base\";\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 \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport Highlight from \"./types/Highlight.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport type CheckBox from \"./CheckBox.js\";\nimport type { IButton } from \"./Button.js\";\nimport {\n\tDELETE,\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tARIA_LABEL_LIST_ITEM_RADIO_BUTTON,\n\tLIST_ITEM_ACTIVE,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemAccessibleRole from \"./types/ListItemAccessibleRole.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface IAccessibleListItem {\n\taccessibleName?: string;\n\taccessibleNameRef?: string;\n}\n\ntype SelectionRequestEventDetail = {\n\titem: ListItemBase,\n\tselectionComponentPressed: boolean,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype AccInfo = {\n\trole?: AriaRole | undefined;\n\tariaExpanded?: boolean;\n\tariaLevel?: number;\n\tariaLabel: string;\n\tariaLabelRadioButton: string;\n\tariaSelectedText?: string;\n\tariaHaspopup?: `${AriaHasPopup}`;\n\tposinset?: number;\n\tsetsize?: number;\n\tariaSelected?: boolean;\n\tariaChecked?: boolean;\n\tlistItemAriaLabel?: string;\n\tariaOwns?: string;\n\ttooltip?: string;\n\tariaKeyShortcuts?: string;\n}\n\ntype ListItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"ariaSetsize\" | \"ariaPosinset\">;\n\n/**\n * @class\n * A class to serve as a base\n * for the `ListItemStandard` and `ListItemCustom` classes.\n * @constructor\n * @abstract\n * @extends ListItemBase\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tstyles,\n\t],\n})\n/**\n * Fired when the user clicks on the detail button when type is `Detail`.\n * @public\n */\n@event(\"detail-click\", {\n\tbubbles: true,\n})\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\nabstract class ListItem extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"detail-click\": { item: ListItem, selected: boolean };\n\t\t\"selection-requested\": SelectionRequestEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the list items.\n\t * Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.\n\t *\n\t * **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\n\t * while with type `Inactive` and `Detail` - will not.\n\t * @default \"Active\"\n\t * @public\n\t*/\n\t@property()\n\ttype: `${ListItemType}` = \"Active\";\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 * - **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n\t * **Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\t *\n\t * \t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t * \t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ListItemAccessibilityAttributes = {};\n\n\t/**\n\t * The navigated state of the list item.\n\t * If set to `true`, a navigation indicator is displayed at the end of the list item.\n\t * @default false\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the text of the tooltip that would be displayed for the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t * @private\n\t*/\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines the highlight state of the list items.\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\thighlight: `${Highlight}` = \"None\";\n\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\t/**\n\t * Used to define the role of the list item.\n\t * @private\n\t * @default \"ListItem\"\n\t * @since 1.3.0\n\t *\n\t */\n\t@property()\n\taccessibleRole: `${ListItemAccessibleRole}` = \"ListItem\";\n\n\t@property()\n\t_forcedAccessibleRole?: string;\n\n\t@property()\n\t_selectionMode: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Defines the current media query size.\n\t * @default \"S\"\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * Defines the delete button, displayed in \"Delete\" mode.\n\t * **Note:** While the slot allows custom buttons, to match\n\t * design guidelines, please use the `ui5-button` component.\n\t * **Note:** When the slot is not present, a built-in delete button will be displayed.\n\t * @since 1.9.0\n\t * @public\n\t*/\n\t@slot()\n\tdeleteButton!: Slot<IButton>;\n\n\tdeactivateByKey: (e: KeyboardEvent) => void;\n\tdeactivate: () => void;\n\t// used in template, implemented in TreeItemBase, ListItemStandard\n\taccessibleName?: string;\n\t// used in ListItem template but implemented in TreeItemBase\n\tindeterminate?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.deactivateByKey = (e: KeyboardEvent) => {\n\t\t\tif (isEnter(e)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.actionable = (this.type === ListItemType.Active || this.type === ListItemType.Navigation) && (this._selectionMode !== ListSelectionMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isInternalElementFocused = e.target !== this.getFocusDomRef();\n\n\t\tif ((isSpace(e) || isEnter(e)) && isInternalElementFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\n\t\tconst itemActive = this.type === ListItemType.Active,\n\t\t\titemNavigated = this.typeNavigation;\n\n\t\tif ((isSpace(e) || isEnter(e)) && (itemActive || itemNavigated)) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\tthis._handleF2();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this.modeDelete && isDelete(e)) {\n\t\t\tthis.onDelete();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchend() {\n\t\tthis._onmouseup();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deactivate();\n\t}\n\n\t_ondragstart(e: DragEvent) {\n\t\tif (!e.dataTransfer) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.setDraggedElement(this, e);\n\t\t\tthis.setAttribute(\"data-moving\", \"\");\n\t\t\te.dataTransfer.dropEffect = \"move\";\n\t\t\te.dataTransfer.effectAllowed = \"move\";\n\t\t}\n\t}\n\n\t_ondragend(e: DragEvent) {\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.clearDraggedElement();\n\t\t\tthis.removeAttribute(\"data-moving\");\n\t\t}\n\t}\n\n\t/**\n\t * Called when selection components in Single (ui5-radio-button)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: (e.target as CheckBox).checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: !(e.target as RadioButton).checked, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active || this.type === ListItemType.Navigation) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick() {\n\t\tthis.fireDecoratorEvent(\"detail-click\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.fireItemPress(e);\n\t\tif (document.activeElement !== this) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple\n\t\t\t|| this._selectionMode === ListSelectionMode.SingleStart;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._selectionMode === ListSelectionMode.SingleEnd || this._selectionMode === ListSelectionMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListSelectionMode.SingleStart,\n\t\t\tListSelectionMode.SingleEnd,\n\t\t\tListSelectionMode.Single,\n\t\t].includes(this._selectionMode as ListSelectionMode);\n\t}\n\n\tget modeMultiple() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._selectionMode === ListSelectionMode.Delete;\n\t}\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget typeNavigation() {\n\t\treturn this.type === ListItemType.Navigation;\n\t}\n\n\tget typeActive() {\n\t\treturn this.type === ListItemType.Active;\n\t}\n\n\tget _ariaSelected() {\n\t\tif (this.modeMultiple || this.modeSingleSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget listItemAccessibleRole() {\n\t\treturn (this._forcedAccessibleRole || this.accessibleRole.toLowerCase()) as AriaRole | undefined;\n\t}\n\n\tget ariaSelectedText() {\n\t\tlet ariaSelectedText;\n\n\t\t// Selected state needs to be supported separately since now the role mapping is list -> listitem[]\n\t\t// to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);\n\t\t// The text is added to aria-describedby because as part of the aria-labelledby\n\t\t// the whole content of the item is readout when the aria-labelledby value is changed.\n\t\tif (this._ariaSelected !== undefined) {\n\t\t\tariaSelectedText = this._ariaSelected ? ListItem.i18nBundle.getText(LIST_ITEM_SELECTED) : ListItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\t}\n\n\t\treturn ariaSelectedText;\n\t}\n\n\tget deleteText() {\n\t\treturn ListItem.i18nBundle.getText(DELETE);\n\t}\n\n\tget hasDeleteButtonSlot() {\n\t\treturn !!this.deleteButton.length;\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\tif ((this as IAccessibleListItem).accessibleName) {\n\t\t\t// accessibleName is set - return labels excluding content\n\t\t\treturn `${this._id}-invisibleText`;\n\t\t}\n\n\t\t// accessibleName is not set - return _accInfo.listItemAriaLabel including content\n\t\treturn `${this._id}-content ${this._id}-invisibleText`;\n\t}\n\n\tget ariaLabelledByText() {\n\t\tconst texts = [\n\t\t\tthis._accInfo.listItemAriaLabel,\n\t\t\tthis.accessibleName,\n\t\t\tthis.typeActive ? ListItem.i18nBundle.getText(LIST_ITEM_ACTIVE) : undefined,\n\t\t].filter(Boolean);\n\n\t\treturn texts.join(\" \");\n\t}\n\n\tget _accInfo(): AccInfo {\n\t\treturn {\n\t\t\trole: this.listItemAccessibleRole,\n\t\t\tariaExpanded: undefined,\n\t\t\tariaLevel: undefined,\n\t\t\tariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),\n\t\t\tariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t\tsetsize: this.accessibilityAttributes.ariaSetsize,\n\t\t\tposinset: this.accessibilityAttributes.ariaPosinset,\n\t\t\ttooltip: this.tooltip,\n\t\t};\n\t}\n\n\tget _hasHighlightColor() {\n\t\treturn this.highlight !== Highlight.None;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn true;\n\t}\n\n\tget _listItem() {\n\t\treturn this.shadowRoot!.querySelector(\"li\");\n\t}\n\n\tasync _handleF2() {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\t\tconst activeElement = getActiveElement();\n\n\t\tconst focusables = this._getFocusableElements().length > 0;\n\t\tif (!focusables) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (activeElement === focusDomRef) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(focusDomRef);\n\t\t\tfirstFocusable?.focus();\n\t\t} else {\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t_getFocusableElements(): HTMLElement[] {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\t\treturn getTabbableElements(focusDomRef);\n\t}\n\n\t_getFocusedElementIndex(): number {\n\t\tconst focusables = this._getFocusableElements();\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\treturn focusables.indexOf(activeElement);\n\t}\n\n\t_hasFocusableElements(): boolean {\n\t\treturn this._getFocusableElements().length > 0;\n\t}\n\n\t_isFocusOnInternalElement(): boolean {\n\t\tconst focusables = this._getFocusableElements();\n\t\tconst currentElementIndex = focusables.indexOf(getActiveElement() as HTMLElement);\n\t\treturn currentElementIndex !== -1;\n\t}\n\n\t_focusInternalElement(targetIndex: number) {\n\t\tconst focusables = this._getFocusableElements();\n\t\tif (!focusables.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeIndex = Math.min(targetIndex, focusables.length - 1);\n\t\tconst elementToFocus = focusables[safeIndex];\n\n\t\telementToFocus.focus();\n\n\t\treturn safeIndex;\n\t}\n}\n\nexport default ListItem;\nexport type {\n\tIAccessibleListItem,\n\tSelectionRequestEventDetail,\n\tListItemAccessibilityAttributes,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport {\n\tisSpace, isEnter, isDelete, isF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type { AccessibilityAttributes, AriaRole, AriaHasPopup } from \"@ui5/webcomponents-base\";\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 \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport Highlight from \"./types/Highlight.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport type CheckBox from \"./CheckBox.js\";\nimport type { IButton } from \"./Button.js\";\nimport {\n\tDELETE,\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tARIA_LABEL_LIST_ITEM_RADIO_BUTTON,\n\tLIST_ITEM_ACTIVE,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemAccessibleRole from \"./types/ListItemAccessibleRole.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface IAccessibleListItem {\n\taccessibleName?: string;\n\taccessibleNameRef?: string;\n}\n\ntype SelectionRequestEventDetail = {\n\titem: ListItemBase,\n\tselectionComponentPressed: boolean,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype AccInfo = {\n\trole?: AriaRole | undefined;\n\tariaExpanded?: boolean;\n\tariaLevel?: number;\n\tariaLabel: string;\n\tariaLabelRadioButton: string;\n\tariaSelectedText?: string;\n\tariaHaspopup?: `${AriaHasPopup}`;\n\tposinset?: number;\n\tsetsize?: number;\n\tariaSelected?: boolean;\n\tariaChecked?: boolean;\n\tlistItemAriaLabel?: string;\n\tariaOwns?: string;\n\ttooltip?: string;\n\tariaKeyShortcuts?: string;\n}\n\ntype ListItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"ariaSetsize\" | \"ariaPosinset\">;\n\n/**\n * @class\n * A class to serve as a base\n * for the `ListItemStandard` and `ListItemCustom` classes.\n * @constructor\n * @abstract\n * @extends ListItemBase\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tstyles,\n\t],\n})\n/**\n * Fired when the user clicks on the detail button when type is `Detail`.\n * @public\n */\n@event(\"detail-click\", {\n\tbubbles: true,\n})\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\nabstract class ListItem extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"detail-click\": { item: ListItem, selected: boolean };\n\t\t\"selection-requested\": SelectionRequestEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the list items.\n\t * Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.\n\t *\n\t * **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\n\t * while with type `Inactive` and `Detail` - will not.\n\t * @default \"Active\"\n\t * @public\n\t*/\n\t@property()\n\ttype: `${ListItemType}` = \"Active\";\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 * - **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n\t * **Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\t *\n\t * \t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t * \t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ListItemAccessibilityAttributes = {};\n\n\t/**\n\t * The navigated state of the list item.\n\t * If set to `true`, a navigation indicator is displayed at the end of the list item.\n\t * @default false\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the text of the tooltip that would be displayed for the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t * @private\n\t*/\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines the highlight state of the list items.\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\thighlight: `${Highlight}` = \"None\";\n\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\t/**\n\t * Used to define the role of the list item.\n\t *\n\t * **Note:** If not set, the role is automatically inherited from the parent `ui5-list` based on its `accessible-role` property\n\t * (e.g. `Menu` -> `MenuItem`, `Tree` -> `TreeItem`, `ListBox` -> `Option`).\n\t * An explicitly set `accessible-role` on the list item takes precedence over the inherited role.\n\t * @default undefined\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property()\n\taccessibleRole?: `${Exclude<ListItemAccessibleRole, ListItemAccessibleRole.Group>}`;\n\n\t@property()\n\t_forcedAccessibleRole?: string;\n\n\t@property({ noAttribute: true })\n\t_inheritedAccessibleRole?: string;\n\n\t@property()\n\t_selectionMode: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Indicates whether the list item is in edit mode.\n\t * When active, Tab cycles through internal focusable elements\n\t * instead of navigating to the next list item.\n\t * Toggled by F2; also set by the parent List on F7.\n\t * @private\n\t */\n\t_editMode = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @default \"S\"\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * Defines the delete button, displayed in \"Delete\" mode.\n\t * **Note:** While the slot allows custom buttons, to match\n\t * design guidelines, please use the `ui5-button` component.\n\t * **Note:** When the slot is not present, a built-in delete button will be displayed.\n\t * @since 1.9.0\n\t * @public\n\t*/\n\t@slot()\n\tdeleteButton!: Slot<IButton>;\n\n\tdeactivateByKey: (e: KeyboardEvent) => void;\n\tdeactivate: () => void;\n\t// used in template, implemented in TreeItemBase, ListItemStandard\n\taccessibleName?: string;\n\t// used in ListItem template but implemented in TreeItemBase\n\tindeterminate?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.deactivateByKey = (e: KeyboardEvent) => {\n\t\t\tif (isEnter(e)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.actionable = (this.type === ListItemType.Active || this.type === ListItemType.Navigation) && (this._selectionMode !== ListSelectionMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isInternalElementFocused = e.target !== this.getFocusDomRef();\n\n\t\tif ((isSpace(e) || isEnter(e)) && isInternalElementFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\n\t\tconst itemActive = this.type === ListItemType.Active,\n\t\t\titemNavigated = this.typeNavigation;\n\n\t\tif ((isSpace(e) || isEnter(e)) && (itemActive || itemNavigated)) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\tthis._handleF2();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this.modeDelete && isDelete(e)) {\n\t\t\tthis.onDelete();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchend() {\n\t\tthis._onmouseup();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst relatedTarget = e.relatedTarget as Node;\n\t\t\tif (!relatedTarget || !(this.contains(relatedTarget) || this.shadowRoot!.contains(relatedTarget))) {\n\t\t\t\tthis._editMode = false;\n\t\t\t}\n\t\t}\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deactivate();\n\t}\n\n\t_ondragstart(e: DragEvent) {\n\t\tif (!e.dataTransfer) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.setDraggedElement(this, e);\n\t\t\tthis.setAttribute(\"data-moving\", \"\");\n\t\t\te.dataTransfer.dropEffect = \"move\";\n\t\t\te.dataTransfer.effectAllowed = \"move\";\n\t\t}\n\t}\n\n\t_ondragend(e: DragEvent) {\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.clearDraggedElement();\n\t\t\tthis.removeAttribute(\"data-moving\");\n\t\t}\n\t}\n\n\t/**\n\t * Called when selection components in Single (ui5-radio-button)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: (e.target as CheckBox).checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: !(e.target as RadioButton).checked, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active || this.type === ListItemType.Navigation) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick() {\n\t\tthis.fireDecoratorEvent(\"detail-click\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.fireItemPress(e);\n\t\tif (document.activeElement !== this) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple\n\t\t\t|| this._selectionMode === ListSelectionMode.SingleStart;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._selectionMode === ListSelectionMode.SingleEnd || this._selectionMode === ListSelectionMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListSelectionMode.SingleStart,\n\t\t\tListSelectionMode.SingleEnd,\n\t\t\tListSelectionMode.Single,\n\t\t].includes(this._selectionMode as ListSelectionMode);\n\t}\n\n\tget modeMultiple() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._selectionMode === ListSelectionMode.Delete;\n\t}\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget typeNavigation() {\n\t\treturn this.type === ListItemType.Navigation;\n\t}\n\n\tget typeActive() {\n\t\treturn this.type === ListItemType.Active;\n\t}\n\n\tget _ariaSelected() {\n\t\tif (this.modeMultiple || this.modeSingleSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget listItemAccessibleRole() {\n\t\tif (this._forcedAccessibleRole) {\n\t\t\treturn this._forcedAccessibleRole as AriaRole;\n\t\t}\n\t\tif (this.accessibleRole) {\n\t\t\treturn this.accessibleRole.toLowerCase() as AriaRole;\n\t\t}\n\t\treturn (this._inheritedAccessibleRole || \"listitem\") as AriaRole;\n\t}\n\n\tget ariaSelectedText() {\n\t\tlet ariaSelectedText;\n\n\t\t// Selected state needs to be supported separately since now the role mapping is list -> listitem[]\n\t\t// to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);\n\t\t// The text is added to aria-describedby because as part of the aria-labelledby\n\t\t// the whole content of the item is readout when the aria-labelledby value is changed.\n\t\tif (this._ariaSelected !== undefined) {\n\t\t\tariaSelectedText = this._ariaSelected ? ListItem.i18nBundle.getText(LIST_ITEM_SELECTED) : ListItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\t}\n\n\t\treturn ariaSelectedText;\n\t}\n\n\tget deleteText() {\n\t\treturn ListItem.i18nBundle.getText(DELETE);\n\t}\n\n\tget hasDeleteButtonSlot() {\n\t\treturn !!this.deleteButton.length;\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\tif ((this as IAccessibleListItem).accessibleName) {\n\t\t\t// accessibleName is set - return labels excluding content\n\t\t\treturn `${this._id}-invisibleText`;\n\t\t}\n\n\t\t// accessibleName is not set - return _accInfo.listItemAriaLabel including content\n\t\treturn `${this._id}-content ${this._id}-invisibleText`;\n\t}\n\n\tget ariaLabelledByText() {\n\t\tconst texts = [\n\t\t\tthis._accInfo.listItemAriaLabel,\n\t\t\tthis.accessibleName,\n\t\t\tthis.typeActive ? ListItem.i18nBundle.getText(LIST_ITEM_ACTIVE) : undefined,\n\t\t].filter(Boolean);\n\n\t\treturn texts.join(\" \");\n\t}\n\n\tget _accInfo(): AccInfo {\n\t\treturn {\n\t\t\trole: this.listItemAccessibleRole,\n\t\t\tariaExpanded: undefined,\n\t\t\tariaLevel: undefined,\n\t\t\tariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),\n\t\t\tariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t\tsetsize: this.accessibilityAttributes.ariaSetsize,\n\t\t\tposinset: this.accessibilityAttributes.ariaPosinset,\n\t\t\ttooltip: this.tooltip,\n\t\t};\n\t}\n\n\tget _hasHighlightColor() {\n\t\treturn this.highlight !== Highlight.None;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn true;\n\t}\n\n\tget _listItem() {\n\t\treturn this.shadowRoot!.querySelector(\"li\");\n\t}\n\n\t_handleF2() {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\n\t\tif (getActiveElement() === focusDomRef) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tif (!focusables.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._editMode = true;\n\t\t\tfocusables[0].focus();\n\t\t} else {\n\t\t\tthis._editMode = false;\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tconst nextIndex = currentIndex + 1;\n\n\t\t\tif (currentIndex !== -1 && nextIndex < focusables.length) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[nextIndex].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tif (currentIndex > 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[currentIndex - 1].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_getFocusableElements(): HTMLElement[] {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\t\treturn getTabbableElements(focusDomRef);\n\t}\n\n\t_indexOfActiveElement(focusables: HTMLElement[]): number {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\treturn focusables.findIndex(el => el === activeElement || (el.shadowRoot !== null && el.shadowRoot.contains(activeElement)));\n\t}\n\n\t_getFocusedElementIndex(): number {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements());\n\t}\n\n\t_hasFocusableElements(): boolean {\n\t\treturn this._getFocusableElements().length > 0;\n\t}\n\n\t_isFocusOnInternalElement(): boolean {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements()) !== -1;\n\t}\n\n\t_focusInternalElement(targetIndex: number) {\n\t\tconst focusables = this._getFocusableElements();\n\t\tif (!focusables.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeIndex = Math.min(targetIndex, focusables.length - 1);\n\t\tconst elementToFocus = focusables[safeIndex];\n\n\t\telementToFocus.focus();\n\n\t\treturn safeIndex;\n\t}\n}\n\nexport default ListItem;\nexport type {\n\tIAccessibleListItem,\n\tSelectionRequestEventDetail,\n\tListItemAccessibilityAttributes,\n};\n"]}
|
package/dist/ListItemBase.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ type ListItemBasePressEventDetail = {
|
|
|
6
6
|
selected?: boolean;
|
|
7
7
|
key?: string;
|
|
8
8
|
};
|
|
9
|
+
type ListItemBaseClickEventDetail = {
|
|
10
|
+
item: ListItemBase;
|
|
11
|
+
originalEvent: Event;
|
|
12
|
+
};
|
|
9
13
|
/**
|
|
10
14
|
* @class
|
|
11
15
|
* A class to serve as a foundation
|
|
@@ -17,6 +21,7 @@ type ListItemBasePressEventDetail = {
|
|
|
17
21
|
*/
|
|
18
22
|
declare class ListItemBase extends UI5Element implements ITabbable {
|
|
19
23
|
eventDetails: {
|
|
24
|
+
"click": ListItemBaseClickEventDetail;
|
|
20
25
|
"request-tabindex-change": FocusEvent;
|
|
21
26
|
"_press": ListItemBasePressEventDetail;
|
|
22
27
|
"_focused": FocusEvent;
|
|
@@ -100,4 +105,4 @@ declare class ListItemBase extends UI5Element implements ITabbable {
|
|
|
100
105
|
get isListItemBase(): boolean;
|
|
101
106
|
}
|
|
102
107
|
export default ListItemBase;
|
|
103
|
-
export type { ListItemBasePressEventDetail, };
|
|
108
|
+
export type { ListItemBasePressEventDetail, ListItemBaseClickEventDetail, };
|
package/dist/ListItemBase.js
CHANGED
|
@@ -110,6 +110,7 @@ let ListItemBase = class ListItemBase extends UI5Element {
|
|
|
110
110
|
if (this.getFocusDomRef().matches(":has(:focus-within)") || this._isDisabledInteractiveContentClicked(e)) {
|
|
111
111
|
return;
|
|
112
112
|
}
|
|
113
|
+
e.stopPropagation();
|
|
113
114
|
this.fireItemPress(e);
|
|
114
115
|
}
|
|
115
116
|
_isDisabledInteractiveContentClicked(e) {
|
|
@@ -162,6 +163,7 @@ let ListItemBase = class ListItemBase extends UI5Element {
|
|
|
162
163
|
if (isEnter(e)) {
|
|
163
164
|
e.preventDefault();
|
|
164
165
|
}
|
|
166
|
+
this.fireDecoratorEvent("click", { item: this, originalEvent: e });
|
|
165
167
|
this.fireDecoratorEvent("_press", { item: this, selected: this.selected, key: e.key });
|
|
166
168
|
}
|
|
167
169
|
_handleTabNext(e) {
|
|
@@ -174,7 +176,9 @@ let ListItemBase = class ListItemBase extends UI5Element {
|
|
|
174
176
|
_handleTabPrevious(e) {
|
|
175
177
|
const target = e.target;
|
|
176
178
|
if (this.shouldForwardTabBefore(target)) {
|
|
177
|
-
this.fireDecoratorEvent("forward-before")
|
|
179
|
+
if (!this.fireDecoratorEvent("forward-before")) {
|
|
180
|
+
e.preventDefault();
|
|
181
|
+
}
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
/**
|
|
@@ -249,6 +253,20 @@ ListItemBase = __decorate([
|
|
|
249
253
|
customElement({
|
|
250
254
|
renderer: jsxRenderer,
|
|
251
255
|
styles: [styles, draggableElementStyles],
|
|
256
|
+
})
|
|
257
|
+
/**
|
|
258
|
+
* Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.
|
|
259
|
+
*
|
|
260
|
+
* **Note:** The event will not be fired if the `disabled` property is set to `true`.
|
|
261
|
+
*
|
|
262
|
+
* @since 2.22.0
|
|
263
|
+
* @public
|
|
264
|
+
* @param {ListItemBase} item The activated item.
|
|
265
|
+
* @param {Event} originalEvent The original event from the user interaction.
|
|
266
|
+
*/
|
|
267
|
+
,
|
|
268
|
+
event("click", {
|
|
269
|
+
bubbles: true,
|
|
252
270
|
}),
|
|
253
271
|
event("request-tabindex-change", {
|
|
254
272
|
bubbles: true,
|
|
@@ -265,6 +283,7 @@ ListItemBase = __decorate([
|
|
|
265
283
|
}),
|
|
266
284
|
event("forward-before", {
|
|
267
285
|
bubbles: true,
|
|
286
|
+
cancelable: true,
|
|
268
287
|
})
|
|
269
288
|
], ListItemBase);
|
|
270
289
|
export default ListItemBase;
|
package/dist/ListItemBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\nimport draggableElementStyles from \"./generated/themes/DraggableElement.css.js\";\n\ntype ListItemBasePressEventDetail = {\n\titem: ListItemBase,\n\tselected?: boolean,\n\tkey?: string,\n}\n\n/**\n * @class\n * A class to serve as a foundation\n * for the `ListItem` and `ListItemGroupHeader` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: [styles, draggableElementStyles],\n})\n@event(\"request-tabindex-change\", {\n\tbubbles: true,\n})\n@event(\"_press\", {\n\tbubbles: true,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\n@event(\"forward-after\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n@event(\"forward-before\", {\n\tbubbles: true,\n})\nclass ListItemBase extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\t\"request-tabindex-change\": FocusEvent,\n\t\t\"_press\": ListItemBasePressEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-after\": void,\n\t\t\"forward-before\": void,\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines if the list item should display its bottom border.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\thasBorder = false;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t* Defines whether `ui5-li` is in disabled state.\n\t*\n\t* **Note:** A disabled `ui5-li` is noninteractive.\n\t* @default false\n\t* @protected\n\t* @since 1.0.0-rc.12\n\t*/\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Indicates if the element is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactionable = false;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tthis.actionable = true;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"request-tabindex-change\", e);\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\treturn this._handleTabNext(e);\n\t\t}\n\n\t\tif (isTabPrevious(e)) {\n\t\t\treturn this._handleTabPrevious(e);\n\t\t}\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (this._isEnter(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isSpace(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\") || this._isDisabledInteractiveContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_isDisabledInteractiveContentClicked(e: MouseEvent): boolean {\n\t\tconst path = e.composedPath();\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\treturn path.some(target => {\n\t\t\tif (!(target instanceof HTMLElement)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (target === this || target === focusDomRef) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this._isNativeInteractiveElement(target) && !this._isCustomInteractiveElement(target)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._isElementDisabled(target);\n\t\t});\n\t}\n\n\t_isNativeInteractiveElement(target: HTMLElement): boolean {\n\t\treturn target.matches(\"button, input, select, textarea\");\n\t}\n\n\t_isCustomInteractiveElement(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\n\t\treturn target.tagName.includes(\"-\")\n\t\t\t&& (\"disabled\" in targetWithDisabled || target.hasAttribute(\"aria-disabled\"));\n\t}\n\n\t_isElementDisabled(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\t\tif (typeof targetWithDisabled.disabled === \"boolean\") {\n\t\t\treturn targetWithDisabled.disabled;\n\t\t}\n\n\t\treturn target.getAttribute(\"aria-disabled\") === \"true\";\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isSpace(e: KeyboardEvent) {\n\t\treturn isSpace(e);\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isEnter(e: KeyboardEvent) {\n\t\treturn isEnter(e);\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.disabled || !this._pressable) {\n\t\t\treturn;\n\t\t}\n\t\tif (isEnter(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this, selected: this.selected, key: (e as KeyboardEvent).key });\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this.shouldForwardTabAfter()) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tthis.fireDecoratorEvent(\"forward-before\");\n\t\t}\n\t}\n\n\t/**\n\t * Determines if th current list item either has no tabbable content or\n\t * [Tab] is performed onto the last tabbale content item.\n\t */\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getFocusDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n\n\t/**\n\t * Determines if the current list item is target of [SHIFT+TAB].\n\t */\n\tshouldForwardTabBefore(target: HTMLElement) {\n\t\treturn this.getFocusDomRef() === target;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": this._focusable,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled ? true : undefined;\n\t}\n\n\tget _focusable() {\n\t\treturn !this.disabled;\n\t}\n\n\tget _pressable() {\n\t\treturn true;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn false;\n\t}\n\n\tget _effectiveTabIndex() {\n\t\tif (!this._focusable) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (this.selected) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined;\n\t}\n\n\tget isListItemBase() {\n\t\treturn true;\n\t}\n}\n\nexport default ListItemBase;\n\nexport type {\n\tListItemBasePressEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\nimport draggableElementStyles from \"./generated/themes/DraggableElement.css.js\";\n\ntype ListItemBasePressEventDetail = {\n\titem: ListItemBase,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype ListItemBaseClickEventDetail = {\n\titem: ListItemBase,\n\toriginalEvent: Event,\n}\n\n/**\n * @class\n * A class to serve as a foundation\n * for the `ListItem` and `ListItemGroupHeader` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: [styles, draggableElementStyles],\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.22.0\n * @public\n * @param {ListItemBase} item The activated item.\n * @param {Event} originalEvent The original event from the user interaction.\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n@event(\"request-tabindex-change\", {\n\tbubbles: true,\n})\n@event(\"_press\", {\n\tbubbles: true,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\n@event(\"forward-after\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n@event(\"forward-before\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass ListItemBase extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\t\"click\": ListItemBaseClickEventDetail,\n\t\t\"request-tabindex-change\": FocusEvent,\n\t\t\"_press\": ListItemBasePressEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-after\": void,\n\t\t\"forward-before\": void,\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines if the list item should display its bottom border.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\thasBorder = false;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t* Defines whether `ui5-li` is in disabled state.\n\t*\n\t* **Note:** A disabled `ui5-li` is noninteractive.\n\t* @default false\n\t* @protected\n\t* @since 1.0.0-rc.12\n\t*/\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Indicates if the element is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactionable = false;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tthis.actionable = true;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"request-tabindex-change\", e);\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\treturn this._handleTabNext(e);\n\t\t}\n\n\t\tif (isTabPrevious(e)) {\n\t\t\treturn this._handleTabPrevious(e);\n\t\t}\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (this._isEnter(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isSpace(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\") || this._isDisabledInteractiveContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\t\te.stopPropagation();\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_isDisabledInteractiveContentClicked(e: MouseEvent): boolean {\n\t\tconst path = e.composedPath();\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\treturn path.some(target => {\n\t\t\tif (!(target instanceof HTMLElement)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (target === this || target === focusDomRef) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this._isNativeInteractiveElement(target) && !this._isCustomInteractiveElement(target)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._isElementDisabled(target);\n\t\t});\n\t}\n\n\t_isNativeInteractiveElement(target: HTMLElement): boolean {\n\t\treturn target.matches(\"button, input, select, textarea\");\n\t}\n\n\t_isCustomInteractiveElement(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\n\t\treturn target.tagName.includes(\"-\")\n\t\t\t&& (\"disabled\" in targetWithDisabled || target.hasAttribute(\"aria-disabled\"));\n\t}\n\n\t_isElementDisabled(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\t\tif (typeof targetWithDisabled.disabled === \"boolean\") {\n\t\t\treturn targetWithDisabled.disabled;\n\t\t}\n\n\t\treturn target.getAttribute(\"aria-disabled\") === \"true\";\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isSpace(e: KeyboardEvent) {\n\t\treturn isSpace(e);\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isEnter(e: KeyboardEvent) {\n\t\treturn isEnter(e);\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.disabled || !this._pressable) {\n\t\t\treturn;\n\t\t}\n\t\tif (isEnter(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e });\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this, selected: this.selected, key: (e as KeyboardEvent).key });\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this.shouldForwardTabAfter()) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if th current list item either has no tabbable content or\n\t * [Tab] is performed onto the last tabbale content item.\n\t */\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getFocusDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n\n\t/**\n\t * Determines if the current list item is target of [SHIFT+TAB].\n\t */\n\tshouldForwardTabBefore(target: HTMLElement) {\n\t\treturn this.getFocusDomRef() === target;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": this._focusable,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled ? true : undefined;\n\t}\n\n\tget _focusable() {\n\t\treturn !this.disabled;\n\t}\n\n\tget _pressable() {\n\t\treturn true;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn false;\n\t}\n\n\tget _effectiveTabIndex() {\n\t\tif (!this._focusable) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (this.selected) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined;\n\t}\n\n\tget isListItemBase() {\n\t\treturn true;\n\t}\n}\n\nexport default ListItemBase;\n\nexport type {\n\tListItemBasePressEventDetail,\n\tListItemBaseClickEventDetail,\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type ListItemBase from "./ListItemBase.js";
|
|
2
|
-
import type { AriaRole } from "@ui5/webcomponents-base/";
|
|
2
|
+
import type { AriaRole, JsxTemplate } from "@ui5/webcomponents-base/";
|
|
3
3
|
export default function ListItemBaseTemplate(this: ListItemBase, hooks?: {
|
|
4
|
-
listItemContent:
|
|
4
|
+
listItemContent: JsxTemplate;
|
|
5
5
|
}, injectedProps?: {
|
|
6
6
|
role?: AriaRole;
|
|
7
7
|
title?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemBaseTemplate.js","sourceRoot":"","sources":["../src/ListItemBaseTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAqB,
|
|
1
|
+
{"version":3,"file":"ListItemBaseTemplate.js","sourceRoot":"","sources":["../src/ListItemBaseTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAqB,KAAwC,EAAE,aAG1G;IACA,MAAM,eAAe,GAAG,KAAK,EAAE,eAAe,IAAI,sBAAsB,CAAC;IAEzE,OAAO,CACN,aACC,IAAI,EAAC,WAAW,8BAEhB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EACxB,SAAS,EAAE,IAAI,CAAC,OAAO,EACvB,IAAI,EAAE,aAAa,EAAE,IAAI,EACzB,KAAK,EAAE,aAAa,EAAE,KAAK,EAC3B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,YAEpB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAgB,GACvC,CACL,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC9B,OAAO,cAAK,IAAI,EAAC,SAAS,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,gBAAgB,YAC3E,cAAK,KAAK,EAAC,qBAAqB,YAC/B,eAAM,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,cAAc,YAAC,gBAAa,GAAO,GACvD,GACD,CAAC;AACR,CAAC","sourcesContent":["import type ListItemBase from \"./ListItemBase.js\";\nimport type { AriaRole, JsxTemplate } from \"@ui5/webcomponents-base/\";\n\nexport default function ListItemBaseTemplate(this: ListItemBase, hooks?: { listItemContent: JsxTemplate }, injectedProps?: {\n\trole?: AriaRole,\n\ttitle?: string,\n}) {\n\tconst listItemContent = hooks?.listItemContent || defaultListItemContent;\n\n\treturn (\n\t\t<li\n\t\t\tpart=\"native-li\"\n\t\t\tdata-sap-focus-ref\n\t\t\ttabindex={this._effectiveTabIndex}\n\t\t\tclass={this.classes.main}\n\t\t\tdraggable={this.movable}\n\t\t\trole={injectedProps?.role}\n\t\t\ttitle={injectedProps?.title}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonClick={this._onclick}\n\t\t>\n\t\t\t{ listItemContent.call(this) as JSX.Element }\n\t\t</li>\n\t);\n}\n\nfunction defaultListItemContent(this: ListItemBase) {\n\treturn <div part=\"content\" id={`${this._id}-content`} class=\"ui5-li-content\">\n\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t<span part=\"title\" class=\"ui5-li-title\"><slot></slot></span>\n\t\t</div>\n\t</div>;\n}\n"]}
|
package/dist/ListItemGroup.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import DragAndDropHandler from "./delegate/DragAndDropHandler.js";
|
|
|
4
4
|
import MovePlacement from "@ui5/webcomponents-base/dist/types/MovePlacement.js";
|
|
5
5
|
import type DropIndicator from "./DropIndicator.js";
|
|
6
6
|
import type ListItemBase from "./ListItemBase.js";
|
|
7
|
+
import type { ListItemBaseClickEventDetail } from "./ListItemBase.js";
|
|
7
8
|
import type ListItemGroupHeader from "./ListItemGroupHeader.js";
|
|
8
9
|
import WrappingType from "./types/WrappingType.js";
|
|
9
10
|
type ListItemGroupMoveEventDetail = {
|
|
@@ -33,6 +34,7 @@ type ListItemGroupMoveEventDetail = {
|
|
|
33
34
|
*/
|
|
34
35
|
declare class ListItemGroup extends UI5Element {
|
|
35
36
|
eventDetails: {
|
|
37
|
+
"click"?: ListItemBaseClickEventDetail;
|
|
36
38
|
"move-over": ListItemGroupMoveEventDetail;
|
|
37
39
|
"move": ListItemGroupMoveEventDetail;
|
|
38
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemGroup.js","sourceRoot":"","sources":["../src/ListItemGroup.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,aAAa,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"ListItemGroup.js","sourceRoot":"","sources":["../src/ListItemGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport DragAndDropHandler from \"./delegate/DragAndDropHandler.js\";\nimport MovePlacement from \"@ui5/webcomponents-base/dist/types/MovePlacement.js\";\nimport type DropIndicator from \"./DropIndicator.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport type { ListItemBaseClickEventDetail } from \"./ListItemBase.js\";\n\n// Template\nimport ListItemGroupTemplate from \"./ListItemGroupTemplate.js\";\n\n// Styles\nimport ListItemGroupCss from \"./generated/themes/ListItemGroup.css.js\";\nimport type ListItemGroupHeader from \"./ListItemGroupHeader.js\";\nimport WrappingType from \"./types/WrappingType.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\ntype ListItemGroupMoveEventDetail = {\n\tsource: {\n\t\telement: HTMLElement,\n\t},\n\tdestination: {\n\t\telement: HTMLElement,\n\t\tplacement: `${MovePlacement}`,\n\t}\n}\n\n/**\n * @class\n * ### Overview\n * The `ui5-li-group` is a special list item, used only to create groups of list items.\n *\n * This is the item to use inside a `ui5-list`.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/ListItemGroup.js\";`\n * @csspart header - Used to style the header item of the group\n * @csspart title - Used to style the title of the group header\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-li-group\",\n\trenderer: jsxRenderer,\n\tlanguageAware: true,\n\ttemplate: ListItemGroupTemplate,\n\tstyles: [ListItemGroupCss],\n})\n\n/**\n * Fired when a movable list item is moved over a potential drop target during a dragging operation.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @since 2.1.0\n */\n\n@event(\"move-over\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when a movable list item is dropped onto a drop target.\n *\n * **Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @since 2.1.0\n */\n@event(\"move\", {\n\tbubbles: true,\n})\n\nclass ListItemGroup extends UI5Element {\n\teventDetails!: {\n\t\t\"click\"?: ListItemBaseClickEventDetail,\n\t\t\"move-over\": ListItemGroupMoveEventDetail,\n\t\t\"move\": ListItemGroupMoveEventDetail,\n\t}\n\t/**\n\t * Defines the header text of the <code>ui5-li-group</code>.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the accessible name of the header.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\theaderAccessibleName?: string;\n\n\t/**\n\t * Defines the items of the <code>ui5-li-group</code>.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t\ttype: HTMLElement,\n\t})\n\titems!: DefaultSlot<ListItemBase>;\n\n\t/**\n\t * Defines if the text of the component should wrap when it's too long.\n\t * When set to \"Normal\", the content (title, description) will be wrapped\n\t * using the `ui5-expandable-text` component.<br/>\n\t *\n\t * The text can wrap up to 100 characters on small screens (size S) and\n\t * up to 300 characters on larger screens (size M and above). When text exceeds\n\t * these limits, it truncates with an ellipsis followed by a text expansion trigger.\n\t *\n\t * Available options are:\n\t * - `None` (default) - The text will truncate with an ellipsis.\n\t * - `Normal` - The text will wrap (without truncation).\n\t *\n\t * @default \"None\"\n\t * @public\n\t * @since 2.15.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Indicates whether the header is focused\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t* Defines the header of the component.\n\t*\n\t* **Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\n\t* @public\n\t*/\n\t@slot()\n\theader!: Slot<ListItemBase>;\n\n\t_dragAndDropHandler: DragAndDropHandler;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Initialize the DragAndDropHandler with the necessary configurations\n\t\t// The handler will manage the drag and drop operations for the list items.\n\t\tthis._dragAndDropHandler = new DragAndDropHandler(this, {\n\t\t\tgetItems: () => this.items,\n\t\t\tgetDropIndicator: () => this.dropIndicatorDOM,\n\t\t\tfilterPlacements: this._filterPlacements.bind(this),\n\t\t});\n\t}\n\n\tget groupHeaderItem() {\n\t\treturn this.shadowRoot!.querySelector<ListItemGroupHeader>(\"[ui5-li-group-header]\")!;\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn !!this.headerText || this.hasFormattedHeader;\n\t}\n\n\tget hasFormattedHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget isListItemGroup() {\n\t\treturn true;\n\t}\n\n\tget dropIndicatorDOM(): DropIndicator | null {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-drop-indicator]\");\n\t}\n\n\t_ondragenter(e: DragEvent) {\n\t\tthis._dragAndDropHandler.ondragenter(e);\n\t}\n\n\t_ondragleave(e: DragEvent) {\n\t\tthis._dragAndDropHandler.ondragleave(e);\n\t}\n\n\t_ondragover(e: DragEvent) {\n\t\tthis._dragAndDropHandler.ondragover(e);\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\tthis._dragAndDropHandler.ondrop(e);\n\t}\n\n\t_filterPlacements(placements: MovePlacement[], draggedElement: HTMLElement, targetElement: HTMLElement): MovePlacement[] {\n\t\t// Filter out MovePlacement.On when dragged element is the same as target\n\t\tif (targetElement === draggedElement) {\n\t\t\treturn placements.filter(placement => placement !== MovePlacement.On);\n\t\t}\n\t\treturn placements;\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this.groupHeaderItem || this.items.at(0);\n\t}\n\n\tgetGroupHeaderWrapping(): WrappingType { return WrappingType.None; }\n}\n\nListItemGroup.define();\n\nexport default ListItemGroup;\nexport const isInstanceOfListItemGroup = createInstanceChecker<ListItemGroup>(\"isListItemGroup\");\nexport type { ListItemGroupMoveEventDetail };\n"]}
|
package/dist/ListItemTemplate.js
CHANGED
|
@@ -31,7 +31,7 @@ function selectionElement() {
|
|
|
31
31
|
return (_jsx(CheckBox, { part: "checkbox", disabled: this.isInactive, indeterminate: this.indeterminate, tabindex: -1, id: `${this._id}-multiSelectionElement`, class: "ui5-li-multisel-cb", checked: this.selected, accessibleName: this._accInfo.ariaLabel, onChange: this.onMultiSelectionComponentPress }));
|
|
32
32
|
case this.modeDelete:
|
|
33
33
|
return (_jsx("div", { class: "ui5-li-deletebtn", children: this.hasDeleteButtonSlot ?
|
|
34
|
-
(_jsx("slot", { name: "deleteButton" })) : (_jsx(Button, { part: "delete-button",
|
|
34
|
+
(_jsx("slot", { name: "deleteButton" })) : (_jsx(Button, { part: "delete-button", id: `${this._id}-deleteSelectionElement`, design: "Transparent", icon: declineIcon, onClick: this.onDelete, tooltip: this.deleteText })) }));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
//# sourceMappingURL=ListItemTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemTemplate.js","sourceRoot":"","sources":["../src/ListItemTemplate.tsx"],"names":[],"mappings":";AAEA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,mDAAmD,CAAC;AACnF,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAWrC,MAAM,eAAe,GAAkB;IACtC,kBAAkB;IAClB,eAAe;IACf,UAAU;IACV,SAAS;IACT,OAAO;IACP,gBAAgB;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAiB,KAA8B;IACtF,MAAM,YAAY,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,EAAE,CAAC;IAEtD,OAAO,cACN,IAAI,EAAC,WAAW,8BAEhB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EACxB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,OAAO,EACvB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,mBACb,IAAI,CAAC,QAAQ,CAAC,YAAY,gBAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,mBACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,mBAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,kBACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,sBACjB,GAAG,IAAI,CAAC,GAAG,4BAA4B,qBACxC,IAAI,CAAC,kBAAkB,mBACzB,IAAI,CAAC,aAAa,mBAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,kBAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,eAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,uBACd,IAAI,CAAC,QAAQ,CAAC,gBAAgB,aAEhD,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAE1C,IAAI,CAAC,2BAA2B,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAE/D,IAAI,CAAC,kBAAkB,IAAI,cAAK,KAAK,EAAC,kBAAkB,GAAO,EAEhE,eAAK,IAAI,EAAC,SAAS,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,gBAAgB,aACnE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACjC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IACnC,EAEL,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAE/B,IAAI,CAAC,UAAU,IAAI,CACnB,cAAK,KAAK,EAAC,kBAAkB,YAC5B,KAAC,MAAM,IACN,IAAI,EAAC,eAAe,EACpB,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,IAAI,EAAE,QAAQ,GACb,GACG,CACN,EAEA,IAAI,CAAC,cAAc,IAAI,CACvB,KAAC,IAAI,IAAC,IAAI,EAAE,kBAAkB,GAAI,CAClC,EAEA,IAAI,CAAC,SAAS,IAAI,CAClB,cAAK,KAAK,EAAC,kBAAkB,GAAO,CACpC,EAEA,IAAI,CAAC,0BAA0B,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAE9E,eACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAC/B,KAAK,EAAC,iBAAiB,YACtB,IAAI,CAAC,kBAAkB,GAClB,EACP,eACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,EAC3C,KAAK,EAAC,iBAAiB,YACtB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GACzB,IAEF,CAAC;AACR,CAAC;AAED,SAAS,kBAAkB,KAAmB,CAAC;AAC/C,SAAS,eAAe,KAAmB,CAAC;AAC5C,SAAS,UAAU,KAAmB,CAAC;AACvC,SAAS,SAAS,KAAmB,CAAC;AACtC,SAAS,OAAO,KAAmB,CAAC;AACpC,SAAS,gBAAgB;IACxB,QAAQ,IAAI,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,gBAAgB;YACzB,OAAO,CACN,KAAC,WAAW,IACX,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAClD,QAAQ,EAAE,CAAC,CAAC,EACZ,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,yBAAyB,EACxC,KAAK,EAAC,2BAA2B,EACjC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,IAAI,CAAC,+BAA+B,GAC7C,CACF,CAAC;QACH,KAAK,IAAI,CAAC,YAAY;YACrB,OAAO,CACN,KAAC,QAAQ,IACR,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,QAAQ,EAAE,CAAC,CAAC,EACZ,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,wBAAwB,EACvC,KAAK,EAAC,oBAAoB,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvC,QAAQ,EAAE,IAAI,CAAC,8BAA8B,GAC5C,CACF,CAAC;QACH,KAAK,IAAI,CAAC,UAAU;YACnB,OAAO,CACN,cAAK,KAAK,EAAC,kBAAkB,YAE3B,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACzB,CACC,eAAM,IAAI,EAAC,cAAc,GAAQ,CACjC,CAAC,CAAC,CAAC,CACH,KAAC,MAAM,IACN,IAAI,EAAC,eAAe,EACpB,
|
|
1
|
+
{"version":3,"file":"ListItemTemplate.js","sourceRoot":"","sources":["../src/ListItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\nimport type ListItem from \"./ListItem.js\";\nimport Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport editIcon from \"@ui5/webcomponents-icons/dist/edit.js\";\nimport slimArrowRightIcon from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport RadioButton from \"./RadioButton.js\";\nimport CheckBox from \"./CheckBox.js\";\n\nexport type ListItemHooks = {\n\tlistItemPreContent: JsxTemplate\n\tlistItemContent: JsxTemplate\n\timageBegin: JsxTemplate\n\ticonBegin: JsxTemplate\n\ticonEnd: JsxTemplate\n\tselectionElement: JsxTemplate\n}\n\nconst predefinedHooks: ListItemHooks = {\n\tlistItemPreContent,\n\tlistItemContent,\n\timageBegin,\n\ticonBegin,\n\ticonEnd,\n\tselectionElement,\n};\n\nexport default function ListItemTemplate(this: ListItem, hooks?: Partial<ListItemHooks>) {\n\tconst currentHooks = { ...predefinedHooks, ...hooks };\n\n\treturn <li\n\t\tpart=\"native-li\"\n\t\tdata-sap-focus-ref\n\t\ttabindex={this._effectiveTabIndex}\n\t\tclass={this.classes.main}\n\t\tonFocusIn={this._onfocusin}\n\t\tonFocusOut={this._onfocusout}\n\t\tonKeyUp={this._onkeyup}\n\t\tonKeyDown={this._onkeydown}\n\t\tonMouseUp={this._onmouseup}\n\t\tonMouseDown={this._onmousedown}\n\t\tonTouchStart={this._onmousedown}\n\t\tonTouchEnd={this._ontouchend}\n\t\tonClick={this._onclick}\n\t\tdraggable={this.movable}\n\t\tonDragStart={this._ondragstart}\n\t\tonDragEnd={this._ondragend}\n\t\trole={this._accInfo.role}\n\t\ttitle={this._accInfo.tooltip}\n\t\taria-expanded={this._accInfo.ariaExpanded}\n\t\taria-level={this._accInfo.ariaLevel}\n\t\taria-haspopup={this._accInfo.ariaHaspopup}\n\t\taria-posinset={this._accInfo.posinset}\n\t\taria-setsize={this._accInfo.setsize}\n\t\taria-describedby={`${this._id}-invisibleText-describedby`}\n\t\taria-labelledby={this._accessibleNameRef}\n\t\taria-disabled={this._ariaDisabled}\n\t\taria-selected={this._accInfo.ariaSelected}\n\t\taria-checked={this._accInfo.ariaChecked}\n\t\taria-owns={this._accInfo.ariaOwns}\n\t\taria-keyshortcuts={this._accInfo.ariaKeyShortcuts}\n\t>\n\t\t{currentHooks.listItemPreContent.call(this)}\n\n\t\t{this.placeSelectionElementBefore && selectionElement.call(this)}\n\n\t\t{this._hasHighlightColor && <div class=\"ui5-li-highlight\"></div>}\n\n\t\t<div part=\"content\" id={`${this._id}-content`} class=\"ui5-li-content\">\n\t\t\t{currentHooks.imageBegin.call(this)}\n\t\t\t{currentHooks.iconBegin.call(this)}\n\t\t\t{currentHooks.listItemContent.call(this)}\n\t\t</div>\n\n\t\t{currentHooks.iconEnd.call(this)}\n\n\t\t{this.typeDetail && (\n\t\t\t<div class=\"ui5-li-detailbtn\">\n\t\t\t\t<Button\n\t\t\t\t\tpart=\"detail-button\"\n\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\tonClick={this.onDetailClick}\n\t\t\t\t\ticon={editIcon}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)}\n\n\t\t{this.typeNavigation && (\n\t\t\t<Icon name={slimArrowRightIcon} />\n\t\t)}\n\n\t\t{this.navigated && (\n\t\t\t<div class=\"ui5-li-navigated\"></div>\n\t\t)}\n\n\t\t{this.placeSelectionElementAfter && (currentHooks.selectionElement.call(this))}\n\n\t\t<span\n\t\t\tid={`${this._id}-invisibleText`}\n\t\t\tclass=\"ui5-hidden-text\">\n\t\t\t{this.ariaLabelledByText}\n\t\t</span>\n\t\t<span\n\t\t\tid={`${this._id}-invisibleText-describedby`}\n\t\t\tclass=\"ui5-hidden-text\">\n\t\t\t{this._accInfo.ariaSelectedText}\n\t\t</span>\n\n\t</li >;\n}\n\nfunction listItemPreContent(this: ListItem) { }\nfunction listItemContent(this: ListItem) { }\nfunction imageBegin(this: ListItem) { }\nfunction iconBegin(this: ListItem) { }\nfunction iconEnd(this: ListItem) { }\nfunction selectionElement(this: ListItem) {\n\tswitch (true) {\n\tcase this.modeSingleSelect:\n\t\treturn (\n\t\t\t<RadioButton\n\t\t\t\tpart=\"radio\"\n\t\t\t\tdisabled={this.isInactive}\n\t\t\t\taccessibleName={this._accInfo.ariaLabelRadioButton}\n\t\t\t\ttabindex={-1}\n\t\t\t\tid={`${this._id}-singleSelectionElement`}\n\t\t\t\tclass=\"ui5-li-singlesel-radiobtn\"\n\t\t\t\tchecked={this.selected}\n\t\t\t\tonChange={this.onSingleSelectionComponentPress}\n\t\t\t/>\n\t\t);\n\tcase this.modeMultiple:\n\t\treturn (\n\t\t\t<CheckBox\n\t\t\t\tpart=\"checkbox\"\n\t\t\t\tdisabled={this.isInactive}\n\t\t\t\tindeterminate={this.indeterminate}\n\t\t\t\ttabindex={-1}\n\t\t\t\tid={`${this._id}-multiSelectionElement`}\n\t\t\t\tclass=\"ui5-li-multisel-cb\"\n\t\t\t\tchecked={this.selected}\n\t\t\t\taccessibleName={this._accInfo.ariaLabel}\n\t\t\t\tonChange={this.onMultiSelectionComponentPress}\n\t\t\t/>\n\t\t);\n\tcase this.modeDelete:\n\t\treturn (\n\t\t\t<div class=\"ui5-li-deletebtn\">\n\t\t\t\t{\n\t\t\t\t\tthis.hasDeleteButtonSlot ?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<slot name=\"deleteButton\"></slot>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tpart=\"delete-button\"\n\t\t\t\t\t\t\t\tid={`${this._id}-deleteSelectionElement`}\n\t\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\t\t\tonClick={this.onDelete}\n\t\t\t\t\t\t\t\ttooltip={this.deleteText}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</div >\n\t\t);\n\t}\n}\n"]}
|
package/dist/Menu.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
+
import type { ListItemBaseClickEventDetail } from "./ListItemBase.js";
|
|
3
4
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
5
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
5
6
|
import type { Timeout } from "@ui5/webcomponents-base/dist/types.js";
|
|
@@ -19,6 +20,9 @@ interface IMenuItem extends UI5Element {
|
|
|
19
20
|
isMenuItem?: boolean;
|
|
20
21
|
isSeparator?: boolean;
|
|
21
22
|
isGroup?: boolean;
|
|
23
|
+
eventDetails: {
|
|
24
|
+
click?: ListItemBaseClickEventDetail;
|
|
25
|
+
};
|
|
22
26
|
}
|
|
23
27
|
type MenuItemClickEventDetail = {
|
|
24
28
|
item: MenuItem;
|