@ui5/webcomponents-fiori 2.22.0 → 2.22.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/DynamicPage.d.ts +1 -1
- package/dist/DynamicPage.js +8 -3
- package/dist/DynamicPage.js.map +1 -1
- package/dist/DynamicSideContent.d.ts +8 -3
- package/dist/DynamicSideContent.js +15 -4
- package/dist/DynamicSideContent.js.map +1 -1
- package/dist/DynamicSideContentTemplate.js +2 -2
- package/dist/DynamicSideContentTemplate.js.map +1 -1
- package/dist/NotificationListItem.d.ts +8 -3
- package/dist/NotificationListItem.js +17 -3
- package/dist/NotificationListItem.js.map +1 -1
- package/dist/NotificationListItemBase.js +8 -3
- package/dist/NotificationListItemBase.js.map +1 -1
- package/dist/Search.d.ts +4 -0
- package/dist/Search.js.map +1 -1
- package/dist/SearchItemShowMore.d.ts +2 -1
- package/dist/SearchItemShowMore.js +1 -1
- package/dist/SearchItemShowMore.js.map +1 -1
- package/dist/ShellBarSearch.d.ts +1 -0
- package/dist/ShellBarSearch.js +11 -0
- package/dist/ShellBarSearch.js.map +1 -1
- package/dist/UploadCollectionItem.d.ts +2 -0
- package/dist/UploadCollectionItem.js +24 -0
- package/dist/UploadCollectionItem.js.map +1 -1
- package/dist/Wizard.d.ts +6 -0
- package/dist/Wizard.js +17 -0
- package/dist/Wizard.js.map +1 -1
- package/dist/css/themes/SearchField.css +1 -1
- package/dist/css/themes/ShellBar.css +1 -1
- package/dist/css/themes/ShellBarItem.css +1 -1
- package/dist/custom-elements-internal.json +548 -3
- package/dist/custom-elements.json +304 -3
- 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/i18n/i18n-defaults.js +3 -3
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/SearchField.css.d.ts +1 -1
- package/dist/generated/themes/SearchField.css.js +1 -1
- package/dist/generated/themes/SearchField.css.js.map +1 -1
- package/dist/generated/themes/ShellBar.css.d.ts +1 -1
- package/dist/generated/themes/ShellBar.css.js +1 -1
- package/dist/generated/themes/ShellBar.css.js.map +1 -1
- package/dist/generated/themes/ShellBarItem.css.d.ts +1 -1
- package/dist/generated/themes/ShellBarItem.css.js +1 -1
- package/dist/generated/themes/ShellBarItem.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +69 -2
- package/dist/web-types.json +92 -4
- package/package-scripts.cjs +1 -0
- package/package.json +7 -7
- package/src/DynamicSideContentTemplate.tsx +2 -2
- package/src/i18n/messagebundle_ar.properties +4 -4
- package/src/i18n/messagebundle_bg.properties +5 -5
- package/src/i18n/messagebundle_ca.properties +5 -5
- package/src/i18n/messagebundle_cnr.properties +4 -4
- package/src/i18n/messagebundle_cs.properties +4 -4
- package/src/i18n/messagebundle_cy.properties +4 -4
- package/src/i18n/messagebundle_da.properties +5 -5
- package/src/i18n/messagebundle_de.properties +4 -4
- package/src/i18n/messagebundle_el.properties +4 -4
- package/src/i18n/messagebundle_en.properties +3 -3
- package/src/i18n/messagebundle_en_GB.properties +3 -3
- package/src/i18n/messagebundle_en_US_sappsd.properties +4 -4
- package/src/i18n/messagebundle_en_US_saprigi.properties +4 -4
- package/src/i18n/messagebundle_en_US_saptrc.properties +4 -4
- package/src/i18n/messagebundle_es.properties +6 -6
- package/src/i18n/messagebundle_es_MX.properties +5 -5
- package/src/i18n/messagebundle_et.properties +4 -4
- package/src/i18n/messagebundle_fi.properties +4 -4
- package/src/i18n/messagebundle_fr.properties +4 -4
- package/src/i18n/messagebundle_fr_CA.properties +4 -4
- package/src/i18n/messagebundle_hi.properties +4 -4
- package/src/i18n/messagebundle_hr.properties +4 -4
- package/src/i18n/messagebundle_hu.properties +4 -4
- package/src/i18n/messagebundle_id.properties +6 -6
- package/src/i18n/messagebundle_it.properties +4 -4
- package/src/i18n/messagebundle_iw.properties +4 -4
- package/src/i18n/messagebundle_ja.properties +4 -4
- package/src/i18n/messagebundle_kk.properties +5 -5
- package/src/i18n/messagebundle_ko.properties +3 -3
- package/src/i18n/messagebundle_lt.properties +4 -4
- package/src/i18n/messagebundle_lv.properties +4 -4
- package/src/i18n/messagebundle_mk.properties +6 -6
- package/src/i18n/messagebundle_ms.properties +11 -11
- package/src/i18n/messagebundle_nl.properties +4 -4
- package/src/i18n/messagebundle_no.properties +4 -4
- package/src/i18n/messagebundle_pl.properties +6 -6
- package/src/i18n/messagebundle_pt.properties +5 -5
- package/src/i18n/messagebundle_pt_PT.properties +4 -4
- package/src/i18n/messagebundle_ro.properties +4 -4
- package/src/i18n/messagebundle_ru.properties +4 -4
- package/src/i18n/messagebundle_sh.properties +4 -4
- package/src/i18n/messagebundle_sk.properties +4 -4
- package/src/i18n/messagebundle_sl.properties +5 -5
- package/src/i18n/messagebundle_sr.properties +4 -4
- package/src/i18n/messagebundle_sv.properties +4 -4
- package/src/i18n/messagebundle_th.properties +3 -3
- package/src/i18n/messagebundle_tr.properties +4 -4
- package/src/i18n/messagebundle_uk.properties +7 -7
- package/src/i18n/messagebundle_vi.properties +3 -3
- package/src/i18n/messagebundle_zh_CN.properties +3 -3
- package/src/i18n/messagebundle_zh_TW.properties +3 -3
- package/src/themes/SearchField.css +1 -1
- package/src/themes/ShellBar.css +4 -1
- package/src/themes/ShellBarItem.css +3 -1
|
@@ -4,7 +4,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var NotificationListItemBase_1;
|
|
7
8
|
import { isSpace, isF2 } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
8
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
9
11
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
10
12
|
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
@@ -22,7 +24,7 @@ import { NOTIFICATION_LIST_ITEM_LOADING, } from "./generated/i18n/i18n-defaults.
|
|
|
22
24
|
* @since 1.0.0-rc.8
|
|
23
25
|
* @public
|
|
24
26
|
*/
|
|
25
|
-
class NotificationListItemBase extends ListItemBase {
|
|
27
|
+
let NotificationListItemBase = NotificationListItemBase_1 = class NotificationListItemBase extends ListItemBase {
|
|
26
28
|
constructor() {
|
|
27
29
|
super(...arguments);
|
|
28
30
|
/**
|
|
@@ -52,7 +54,7 @@ class NotificationListItemBase extends ListItemBase {
|
|
|
52
54
|
return !!this.titleText?.length;
|
|
53
55
|
}
|
|
54
56
|
get loadingText() {
|
|
55
|
-
return
|
|
57
|
+
return NotificationListItemBase_1.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Event handlers
|
|
@@ -83,7 +85,7 @@ class NotificationListItemBase extends ListItemBase {
|
|
|
83
85
|
const aContent = getTabbableElements(this.getHeaderDomRef());
|
|
84
86
|
return aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());
|
|
85
87
|
}
|
|
86
|
-
}
|
|
88
|
+
};
|
|
87
89
|
__decorate([
|
|
88
90
|
property()
|
|
89
91
|
], NotificationListItemBase.prototype, "titleText", void 0);
|
|
@@ -99,5 +101,8 @@ __decorate([
|
|
|
99
101
|
__decorate([
|
|
100
102
|
i18n("@ui5/webcomponents-fiori")
|
|
101
103
|
], NotificationListItemBase, "i18nFioriBundle", void 0);
|
|
104
|
+
NotificationListItemBase = NotificationListItemBase_1 = __decorate([
|
|
105
|
+
customElement({})
|
|
106
|
+
], NotificationListItemBase);
|
|
102
107
|
export default NotificationListItemBase;
|
|
103
108
|
//# sourceMappingURL=NotificationListItemBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationListItemBase.js","sourceRoot":"","sources":["../src/NotificationListItemBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationListItemBase.js","sourceRoot":"","sources":["../src/NotificationListItemBase.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AACrF,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAElG,QAAQ;AACR,OAAO,EACN,8BAA8B,GAC9B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AAEH,IAAM,wBAAwB,gCAA9B,MAAM,wBAAyB,SAAQ,YAAY;IAAnD;;QAUC;;;;;;;WAOG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,iBAAY,GAAG,IAAI,CAAC;IAgDrB,CAAC;IA3CA,IAAI,YAAY;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,0BAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAE7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAG,CAAC;YAE5C,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBACnE,cAAc,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,WAAW,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAG,CAAC,CAAC;QAE9D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;IACxF,CAAC;CACD,CAAA;AA5EA;IADC,QAAQ,EAAE;2DACQ;AAWnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACZ;AAQhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACP;AAGb;IADN,IAAI,CAAC,0BAA0B,CAAC;uDACE;AAvC9B,wBAAwB;IAD7B,aAAa,CAAC,EAAE,CAAC;GACZ,wBAAwB,CAoF7B;AAED,eAAe,wBAAwB,CAAC","sourcesContent":["import { isSpace, isF2 } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * The base class of the `NotificationListItem` and `NotificationListGroupItem`.\n * @constructor\n * @extends ListItemBase\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({})\nclass NotificationListItemBase extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\t/**\n\t * Defines the `titleText` of the item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttitleText?: string;\n\n\t/**\n\t * Defines if the `notification` is new or has been already read.\n\t *\n\t * **Note:** if set to `false` the `titleText` has bold font,\n\t * if set to true - it has a normal font.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tread = false;\n\n\t/**\n\t * Defines if a busy indicator would be displayed over the item.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\tget hasTitleText() {\n\t\treturn !!this.titleText?.length;\n\t}\n\n\tget loadingText() {\n\t\treturn NotificationListItemBase.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (isSpace(e) && this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\te.stopImmediatePropagation();\n\n\t\t\tconst activeElement = getActiveElement();\n\t\t\tconst focusDomRef = this.getHeaderDomRef()!;\n\n\t\t\tif (activeElement === focusDomRef) {\n\t\t\t\tconst firstFocusable = await getFirstFocusableElement(focusDomRef);\n\t\t\t\tfirstFocusable?.focus();\n\t\t\t} else {\n\t\t\t\tfocusDomRef.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeaderDomRef() {\n\t\treturn this.getFocusDomRef();\n\t}\n\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getHeaderDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n}\n\nexport default NotificationListItemBase;\n"]}
|
package/dist/Search.d.ts
CHANGED
|
@@ -13,10 +13,14 @@ import type Input from "@ui5/webcomponents/dist/Input.js";
|
|
|
13
13
|
import type { PopupBeforeCloseEventDetail } from "@ui5/webcomponents/dist/Popup.js";
|
|
14
14
|
import type Select from "@ui5/webcomponents/dist/Select.js";
|
|
15
15
|
import type { Slot, DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
16
|
+
import type { ListItemBaseClickEventDetail } from "@ui5/webcomponents/dist/ListItemBase.js";
|
|
16
17
|
interface ISearchSuggestionItem extends UI5Element {
|
|
17
18
|
selected: boolean;
|
|
18
19
|
text: string;
|
|
19
20
|
items?: ISearchSuggestionItem[];
|
|
21
|
+
eventDetails: {
|
|
22
|
+
click?: ListItemBaseClickEventDetail;
|
|
23
|
+
};
|
|
20
24
|
}
|
|
21
25
|
type SearchEventDetails = {
|
|
22
26
|
item?: ISearchSuggestionItem;
|
package/dist/Search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
|
|
2
|
+
import type { ListItemBaseClickEventDetail } from "@ui5/webcomponents/dist/ListItemBase.js";
|
|
2
3
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
-
type ShowMoreItemClickEventDetail = {
|
|
4
|
+
type ShowMoreItemClickEventDetail = ListItemBaseClickEventDetail & {
|
|
4
5
|
fromKeyboard: boolean;
|
|
5
6
|
};
|
|
6
7
|
/**
|
|
@@ -57,7 +57,7 @@ let SearchItemShowMore = SearchItemShowMore_1 = class SearchItemShowMore extends
|
|
|
57
57
|
}
|
|
58
58
|
_onclick(e, fromKeyboard = false) {
|
|
59
59
|
e.stopImmediatePropagation();
|
|
60
|
-
this.fireDecoratorEvent("click", { fromKeyboard });
|
|
60
|
+
this.fireDecoratorEvent("click", { item: this, originalEvent: e, fromKeyboard });
|
|
61
61
|
}
|
|
62
62
|
_onkeydown(e) {
|
|
63
63
|
if (isEnter(e)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchItemShowMore.js","sourceRoot":"","sources":["../src/SearchItemShowMore.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,YAAY,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchItemShowMore.js","sourceRoot":"","sources":["../src/SearchItemShowMore.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,YAAY,MAAM,yCAAyC,CAAC;AAEnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAMxE;;;;;;;;;;;;;;;GAeG;AA0BH,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,YAAY;IAA7C;;QAcC;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAwClB,CAAC;IAnCA,IAAI,iBAAiB;QACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,CAA6B,EAAE,YAAY,GAAG,KAAK;QAC3D,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;CACD,CAAA;AAhDA;IADC,QAAQ,EAAE;4DACgB;AAQ3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACX;AAGV;IADN,IAAI,CAAC,0BAA0B,CAAC;4CACH;AAvBzB,kBAAkB;IAzBvB,aAAa,CAAC;QACd,GAAG,EAAE,2BAA2B;QAChC,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,aAAa;YACb,qBAAqB;SACrB;KACD,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GAEI,kBAAkB,CA4DvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport SearchItemShowMoreTemplate from \"./SearchItemShowMoreTemplate.js\";\nimport SearchItemCss from \"./generated/themes/SearchItem.css.js\";\nimport SearchItemShowMoreCss from \"./generated/themes/SearchItemShowMore.css.js\";\nimport { SEARCH_ITEM_SHOW_MORE_COUNT, SEARCH_ITEM_SHOW_MORE_NO_COUNT } from \"./generated/i18n/i18n-defaults.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\ntype ShowMoreItemClickEventDetail = ListItemBaseClickEventDetail & {\n\tfromKeyboard: boolean;\n}\n\n/**\n * @class\n * ### Overview\n *\n * A `ui5-search-item-show-more` is a special type of ui5-li that acts as a button to progressively reveal additional (overflow) items within a group.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SearchItemShowMore.js\";`\n *\n * @constructor\n * @extends ListItemBase\n * @public\n * @since 2.14.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search-item-show-more\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchItemShowMoreTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tSearchItemCss,\n\t\tSearchItemShowMoreCss,\n\t],\n})\n\n/**\n * Fired when the component is activated, either with a mouse/tap\n * or by pressing the Enter or Space keys.\n *\n * @public\n * @param {boolean} fromKeyboard Indicates whether the event was fired\n * due to keyboard interaction (Enter or Space) rather than mouse/tap.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SearchItemShowMore extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"click\": ShowMoreItemClickEventDetail;\n\t}\n\t/**\n\t * Specifies the number of additional items available to show.\nIf no value is defined, the control shows \"Show more\" (without any counter).\nIf a number is provided, it displays \"Show more (N)\", where N is that number.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\titemsToShowCount ?: number;\n\n\t/**\n\t * Defines whether the show more item is selected.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget showMoreTextCount() {\n\t\tif (this.itemsToShowCount) {\n\t\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_COUNT, this.itemsToShowCount);\n\t\t}\n\n\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_NO_COUNT);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t\tthis.selected = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.selected = false;\n\t}\n\n\t_onclick(e: MouseEvent | KeyboardEvent, fromKeyboard = false) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e, fromKeyboard });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n}\n\nSearchItemShowMore.define();\n\nexport default SearchItemShowMore;\n\nexport type {\n\tShowMoreItemClickEventDetail,\n};\n"]}
|
package/dist/ShellBarSearch.d.ts
CHANGED
package/dist/ShellBarSearch.js
CHANGED
|
@@ -44,6 +44,17 @@ let ShellBarSearch = ShellBarSearch_1 = class ShellBarSearch extends Search {
|
|
|
44
44
|
this.collapsed = true;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
_handleEnter() {
|
|
48
|
+
if (!this.value && !this.collapsed) {
|
|
49
|
+
this.collapsed = true;
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
this.focus();
|
|
52
|
+
}, 0);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
super._handleEnter();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
47
58
|
_onFocusOutSearch(e) {
|
|
48
59
|
if (isPhone()) {
|
|
49
60
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EACN,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AAUH,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,MAAM;IAAnC;;QACC;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport Search from \"./Search.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ShellBarSearchTemplate from \"./ShellBarSearchTemplate.js\";\nimport ShellBarSearchCss from \"./generated/themes/ShellBarSearch.css.js\";\n\nimport {\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSHELLBAR_SEARCH_EXPANDED,\n\tSHELLBAR_SEARCH_COLLAPSED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * Search field for the ShellBar component.\n * @constructor\n * @extends Search\n * @public\n * @since 2.10.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-shellbar-search\",\n\ttemplate: ShellBarSearchTemplate,\n\tstyles: [\n\t\tSearch.styles,\n\t\tShellBarSearchCss,\n\t],\n})\n\nclass ShellBarSearch extends Search {\n\t/**\n\t * Indicates whether the suggestions popover should be opened on focus.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tautoOpen = false;\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone() && this.open) {\n\t\t\tthis._handleSearchEvent();\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._handleSearchIconPress();\n\n\t\tif (this.collapsed) {\n\t\t\tthis.collapsed = false;\n\t\t} else if (!this.value) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tif (!this.value && !this.collapsed) {\n\t\t\tthis.collapsed = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.focus();\n\t\t\t}, 0);\n\t\t} else {\n\t\t\tsuper._handleEnter();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e: FocusEvent) {\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onFocusOutSearch(e);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);\n\t\t}\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\tif (this.collapsed) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_COLLAPSED);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON);\n\t\t}\n\n\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_EXPANDED);\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn isPhone() ? domRef?.querySelector<HTMLInputElement>(`[ui5-responsive-popover] input`) : super.nativeInput;\n\t}\n\n\t_onfocusin() {\n\t\tsuper._onfocusin();\n\n\t\tif (this.autoOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (isPhone()) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n}\n\nShellBarSearch.define();\n\nexport default ShellBarSearch;\n"]}
|
|
@@ -126,6 +126,8 @@ declare class UploadCollectionItem extends ListItem {
|
|
|
126
126
|
_onRenameKeyup(e: KeyboardEvent): void;
|
|
127
127
|
_onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, "click">): Promise<void>;
|
|
128
128
|
_onRenameCancelKeyup(e: KeyboardEvent): void;
|
|
129
|
+
_handleTabNext(e: KeyboardEvent): void;
|
|
130
|
+
_handleTabPrevious(e: KeyboardEvent): void;
|
|
129
131
|
_focus(): void;
|
|
130
132
|
_onFileNameClick(): void;
|
|
131
133
|
_onRetry(): void;
|
|
@@ -121,6 +121,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
|
|
|
121
121
|
async onDetailClick() {
|
|
122
122
|
super.onDetailClick();
|
|
123
123
|
this._editing = true;
|
|
124
|
+
this._editMode = true;
|
|
124
125
|
await this._initInputField();
|
|
125
126
|
}
|
|
126
127
|
async _initInputField() {
|
|
@@ -172,6 +173,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
|
|
|
172
173
|
this.fileName = inp.value + this._fileExtension;
|
|
173
174
|
this.fireDecoratorEvent("rename");
|
|
174
175
|
this._editing = false;
|
|
176
|
+
this._editMode = false;
|
|
175
177
|
this._focus();
|
|
176
178
|
}
|
|
177
179
|
_onRenameKeyup(e) {
|
|
@@ -181,6 +183,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
|
|
|
181
183
|
}
|
|
182
184
|
async _onRenameCancel(e) {
|
|
183
185
|
this._editing = false;
|
|
186
|
+
this._editMode = false;
|
|
184
187
|
if (isEscape(e)) {
|
|
185
188
|
await renderFinished();
|
|
186
189
|
this.shadowRoot.querySelector(`#${this._id}-editing-button`).focus();
|
|
@@ -194,6 +197,27 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
|
|
|
194
197
|
this._onRenameCancel(e);
|
|
195
198
|
}
|
|
196
199
|
}
|
|
200
|
+
_handleTabNext(e) {
|
|
201
|
+
if (this._editMode) {
|
|
202
|
+
return super._handleTabNext(e);
|
|
203
|
+
}
|
|
204
|
+
if (this.shouldForwardTabAfter()) {
|
|
205
|
+
if (!this.fireDecoratorEvent("forward-after")) {
|
|
206
|
+
e.preventDefault();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
_handleTabPrevious(e) {
|
|
211
|
+
if (this._editMode) {
|
|
212
|
+
return super._handleTabPrevious(e);
|
|
213
|
+
}
|
|
214
|
+
const target = e.target;
|
|
215
|
+
if (this.shouldForwardTabBefore(target)) {
|
|
216
|
+
if (!this.fireDecoratorEvent("forward-before")) {
|
|
217
|
+
e.preventDefault();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
197
221
|
_focus() {
|
|
198
222
|
this.fireDecoratorEvent("focus-requested");
|
|
199
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadCollectionItem.js","sourceRoot":"","sources":["../src/UploadCollectionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItemType from \"@ui5/webcomponents/dist/types/ListItemType.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport ListItem from \"@ui5/webcomponents/dist/ListItem.js\";\nimport getFileExtension from \"@ui5/webcomponents-base/dist/util/getFileExtension.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisDelete,\n\tisEnter,\n\tisEscape,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UploadState from \"./types/UploadState.js\";\nimport \"@ui5/webcomponents-icons/dist/refresh.js\";\nimport \"@ui5/webcomponents-icons/dist/stop.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport {\n\tUPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_ERROR_STATE,\n\tUPLOADCOLLECTIONITEM_UPLOADING_STATE,\n\tUPLOADCOLLECTIONITEM_READY_STATE,\n\tUPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport UploadCollectionItemTemplate from \"./UploadCollectionItemTemplate.js\";\n\n// Styles\nimport UploadCollectionItemCss from \"./generated/themes/UploadCollectionItem.css.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n * A component to be used within the `ui5-upload-collection`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/UploadCollectionItem.js\";`\n * @constructor\n * @extends ListItem\n * @public\n * @slot {Node[]} default - Hold the description of the `ui5-upload-collection-item`. Will be shown below the file name.\n * @since 1.0.0-rc.7\n */\n@customElement({\n\ttag: \"ui5-upload-collection-item\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, UploadCollectionItemCss],\n\ttemplate: UploadCollectionItemTemplate,\n})\n\n/**\n * Fired when the file name is clicked.\n *\n * **Note:** This event is only available when `fileNameClickable` property is `true`.\n * @public\n */\n@event(\"file-name-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `fileName` property gets changed.\n *\n * **Note:** An edit button is displayed on each item,\n * when the `ui5-upload-collection-item` `type` property is set to `Detail`.\n * @public\n */\n@event(\"rename\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the terminate button is pressed.\n *\n * **Note:** Terminate button is displayed when `uploadState` property is set to `Uploading`.\n * @public\n */\n@event(\"terminate\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the retry button is pressed.\n *\n * **Note:** Retry button is displayed when `uploadState` property is set to `Error`.\n * @public\n */\n@event(\"retry\", {\n\tbubbles: true,\n})\n\n/**\n * @since 1.0.0-rc.8\n * @private\n */\n@event(\"focus-requested\", {\n\tbubbles: true,\n})\n\n/**\n * @private\n */\n@event(\"request-delete\", {\n\tbubbles: true,\n})\nclass UploadCollectionItem extends ListItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"file-name-click\": void;\n\t\t\"rename\": void;\n\t\t\"terminate\": void;\n\t\t\"retry\": void;\n\t\t\"focus-requested\": void;\n\t\t\"_uci-delete\": void;\n\t\t\"request-delete\": void;\n\t}\n\t/**\n\t * Holds an instance of `File` associated with this item.\n\t * @default null\n\t * @public\n\t */\n\t@property({ type: Object, noAttribute: true })\n\tfile: File | null = null;\n\n\t/**\n\t * The name of the file.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tfileName = \"\";\n\n\t/**\n\t * If set to `true` the file name will be clickable and it will fire `file-name-click` event upon click.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tfileNameClickable = false;\n\n\t/**\n\t * Disables the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableDeleteButton = false;\n\n\t/**\n\t * Hides the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideDeleteButton = false;\n\n\t/**\n\t * Hides the retry button when `uploadState` property is `Error`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideRetryButton = false;\n\n\t/**\n\t * Hides the terminate button when `uploadState` property is `Uploading`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideTerminateButton = false;\n\n\t/**\n\t * The upload progress in percentage.\n\t *\n\t * **Note:** Expected values are in the interval [0, 100].\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tprogress = 0;\n\n\t/**\n\t * Upload state.\n\t *\n\t * Depending on this property, the item displays the following:\n\t *\n\t * - `Ready` - progress indicator is displayed.\n\t * - `Uploading` - progress indicator and terminate button are displayed. When the terminate button is pressed, `terminate` event is fired.\n\t * - `Error` - progress indicator and retry button are displayed. When the retry button is pressed, `retry` event is fired.\n\t * - `Complete` - progress indicator is not displayed.\n\t *\n\t * @default \"Ready\"\n\t * @public\n\t */\n\t@property()\n\tuploadState: `${UploadState}` = \"Ready\";\n\n\t/**\n\t * Indicates if editing.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_editing = false;\n\n\t/**\n\t * A thumbnail, which will be shown in the beginning of the `ui5-upload-collection-item`.\n\t *\n\t * **Note:** Use `ui5-icon` or `img` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tthumbnail!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\t/**\n\t * @override\n\t */\n\tasync onDetailClick() {\n\t\tsuper.onDetailClick();\n\t\tthis._editing = true;\n\n\t\tawait this._initInputField();\n\t}\n\n\tasync _initInputField() {\n\t\tawait renderFinished();\n\n\t\tif (this.editInpElement) {\n\t\t\tthis.editInpElement.value = this._fileNameWithoutExtension;\n\t\t}\n\n\t\tawait renderFinished();\n\n\t\tconst inpFocusDomRef = this.editInpElement?.getFocusDomRef();\n\t\tif (inpFocusDomRef) {\n\t\t\tinpFocusDomRef.focus();\n\t\t\t(inpFocusDomRef as HTMLInputElement).setSelectionRange(0, this._fileNameWithoutExtension.length);\n\t\t}\n\t}\n\n\tget editInpElement() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\");\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e) && !this.disableDeleteButton && !this.hideDeleteButton && !this.disabled) {\n\t\t\tthis._onDelete();\n\t\t}\n\t}\n\n\t_onDetailKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.onDetailClick();\n\t\t}\n\t}\n\n\t_onInputFocusin(e: FocusEvent) {\n\t\t// prevent focusing the whole upload collection item.\n\t\te.stopPropagation();\n\t}\n\n\t_onInputKeyDown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t} else if (isEnter(e)) {\n\t\t\tthis._onRename();\n\t\t} else if (isSpace(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t_onRename() {\n\t\tconst inp = this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\")!;\n\t\tthis.fileName = inp.value + this._fileExtension;\n\t\tthis.fireDecoratorEvent(\"rename\");\n\n\t\tthis._editing = false;\n\t\tthis._focus();\n\t}\n\n\t_onRenameKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRename();\n\t\t}\n\t}\n\n\tasync _onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, \"click\">) {\n\t\tthis._editing = false;\n\n\t\tif (isEscape(e as KeyboardEvent)) {\n\t\t\tawait renderFinished();\n\t\t\tthis.shadowRoot!.querySelector<Button>(`#${this._id}-editing-button`)!.focus();\n\t\t} else {\n\t\t\tthis._focus();\n\t\t}\n\t}\n\n\t_onRenameCancelKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t}\n\t}\n\n\t_focus() {\n\t\tthis.fireDecoratorEvent(\"focus-requested\");\n\t}\n\n\t_onFileNameClick() {\n\t\tthis.fireDecoratorEvent(\"file-name-click\");\n\t}\n\n\t_onRetry() {\n\t\tthis.fireDecoratorEvent(\"retry\");\n\t}\n\n\t_onRetryKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRetry();\n\t\t}\n\t}\n\n\t_onTerminate() {\n\t\tthis.fireDecoratorEvent(\"terminate\");\n\t}\n\n\t_onTerminateKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onTerminate();\n\t\t}\n\t}\n\n\t_onDelete() {\n\t\tthis.fireDecoratorEvent(\"request-delete\");\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this.getDomRef();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget classes() {\n\t\tconst result = super.classes;\n\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t...result.main,\n\t\t\t\t\"ui5-uci-root\": true,\n\t\t\t\t\"ui5-uci-root-editing\": this._editing,\n\t\t\t\t\"ui5-uci-root-uploading\": this.uploadState === UploadState.Uploading,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _fileNameWithoutExtension() {\n\t\treturn this.fileName.substring(0, this.fileName.length - this._fileExtension.length);\n\t}\n\n\tget _fileExtension() {\n\t\treturn getFileExtension(this.fileName);\n\t}\n\n\tget _renameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT);\n\t}\n\n\tget _cancelRenameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT);\n\t}\n\n\tget _showProgressIndicator() {\n\t\treturn this.uploadState !== UploadState.Complete;\n\t}\n\n\tget _progressText() {\n\t\tif (this.uploadState === UploadState.Uploading) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_UPLOADING_STATE);\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_ERROR_STATE);\n\t\t}\n\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_READY_STATE);\n\t}\n\n\tget _showRetry() {\n\t\treturn !this.hideRetryButton && this.uploadState === UploadState.Error;\n\t}\n\n\tget _showTerminate() {\n\t\treturn !this.hideTerminateButton && this.uploadState === UploadState.Uploading;\n\t}\n\n\tget _retryButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT);\n\t}\n\n\tget _terminateButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT);\n\t}\n\n\tget _editButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT);\n\t}\n\n\tget valueStateName(): ValueState {\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn ValueState.Negative;\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Ready || this.uploadState === UploadState.Uploading) {\n\t\t\treturn ValueState.Information;\n\t\t}\n\n\t\treturn ValueState.None;\n\t}\n\n\t/**\n\t * override\n\t */\n\tget typeDetail() {\n\t\treturn false;\n\t}\n\n\tget showEditButton() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n}\n\nUploadCollectionItem.define();\n\nexport default UploadCollectionItem;\n"]}
|
|
1
|
+
{"version":3,"file":"UploadCollectionItem.js","sourceRoot":"","sources":["../src/UploadCollectionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItemType from \"@ui5/webcomponents/dist/types/ListItemType.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport ListItem from \"@ui5/webcomponents/dist/ListItem.js\";\nimport getFileExtension from \"@ui5/webcomponents-base/dist/util/getFileExtension.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisDelete,\n\tisEnter,\n\tisEscape,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UploadState from \"./types/UploadState.js\";\nimport \"@ui5/webcomponents-icons/dist/refresh.js\";\nimport \"@ui5/webcomponents-icons/dist/stop.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport {\n\tUPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_ERROR_STATE,\n\tUPLOADCOLLECTIONITEM_UPLOADING_STATE,\n\tUPLOADCOLLECTIONITEM_READY_STATE,\n\tUPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport UploadCollectionItemTemplate from \"./UploadCollectionItemTemplate.js\";\n\n// Styles\nimport UploadCollectionItemCss from \"./generated/themes/UploadCollectionItem.css.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n * A component to be used within the `ui5-upload-collection`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/UploadCollectionItem.js\";`\n * @constructor\n * @extends ListItem\n * @public\n * @slot {Node[]} default - Hold the description of the `ui5-upload-collection-item`. Will be shown below the file name.\n * @since 1.0.0-rc.7\n */\n@customElement({\n\ttag: \"ui5-upload-collection-item\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, UploadCollectionItemCss],\n\ttemplate: UploadCollectionItemTemplate,\n})\n\n/**\n * Fired when the file name is clicked.\n *\n * **Note:** This event is only available when `fileNameClickable` property is `true`.\n * @public\n */\n@event(\"file-name-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `fileName` property gets changed.\n *\n * **Note:** An edit button is displayed on each item,\n * when the `ui5-upload-collection-item` `type` property is set to `Detail`.\n * @public\n */\n@event(\"rename\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the terminate button is pressed.\n *\n * **Note:** Terminate button is displayed when `uploadState` property is set to `Uploading`.\n * @public\n */\n@event(\"terminate\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the retry button is pressed.\n *\n * **Note:** Retry button is displayed when `uploadState` property is set to `Error`.\n * @public\n */\n@event(\"retry\", {\n\tbubbles: true,\n})\n\n/**\n * @since 1.0.0-rc.8\n * @private\n */\n@event(\"focus-requested\", {\n\tbubbles: true,\n})\n\n/**\n * @private\n */\n@event(\"request-delete\", {\n\tbubbles: true,\n})\nclass UploadCollectionItem extends ListItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"file-name-click\": void;\n\t\t\"rename\": void;\n\t\t\"terminate\": void;\n\t\t\"retry\": void;\n\t\t\"focus-requested\": void;\n\t\t\"_uci-delete\": void;\n\t\t\"request-delete\": void;\n\t}\n\t/**\n\t * Holds an instance of `File` associated with this item.\n\t * @default null\n\t * @public\n\t */\n\t@property({ type: Object, noAttribute: true })\n\tfile: File | null = null;\n\n\t/**\n\t * The name of the file.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tfileName = \"\";\n\n\t/**\n\t * If set to `true` the file name will be clickable and it will fire `file-name-click` event upon click.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tfileNameClickable = false;\n\n\t/**\n\t * Disables the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableDeleteButton = false;\n\n\t/**\n\t * Hides the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideDeleteButton = false;\n\n\t/**\n\t * Hides the retry button when `uploadState` property is `Error`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideRetryButton = false;\n\n\t/**\n\t * Hides the terminate button when `uploadState` property is `Uploading`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideTerminateButton = false;\n\n\t/**\n\t * The upload progress in percentage.\n\t *\n\t * **Note:** Expected values are in the interval [0, 100].\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tprogress = 0;\n\n\t/**\n\t * Upload state.\n\t *\n\t * Depending on this property, the item displays the following:\n\t *\n\t * - `Ready` - progress indicator is displayed.\n\t * - `Uploading` - progress indicator and terminate button are displayed. When the terminate button is pressed, `terminate` event is fired.\n\t * - `Error` - progress indicator and retry button are displayed. When the retry button is pressed, `retry` event is fired.\n\t * - `Complete` - progress indicator is not displayed.\n\t *\n\t * @default \"Ready\"\n\t * @public\n\t */\n\t@property()\n\tuploadState: `${UploadState}` = \"Ready\";\n\n\t/**\n\t * Indicates if editing.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_editing = false;\n\n\t/**\n\t * A thumbnail, which will be shown in the beginning of the `ui5-upload-collection-item`.\n\t *\n\t * **Note:** Use `ui5-icon` or `img` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tthumbnail!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\t/**\n\t * @override\n\t */\n\tasync onDetailClick() {\n\t\tsuper.onDetailClick();\n\t\tthis._editing = true;\n\t\tthis._editMode = true;\n\n\t\tawait this._initInputField();\n\t}\n\n\tasync _initInputField() {\n\t\tawait renderFinished();\n\n\t\tif (this.editInpElement) {\n\t\t\tthis.editInpElement.value = this._fileNameWithoutExtension;\n\t\t}\n\n\t\tawait renderFinished();\n\n\t\tconst inpFocusDomRef = this.editInpElement?.getFocusDomRef();\n\t\tif (inpFocusDomRef) {\n\t\t\tinpFocusDomRef.focus();\n\t\t\t(inpFocusDomRef as HTMLInputElement).setSelectionRange(0, this._fileNameWithoutExtension.length);\n\t\t}\n\t}\n\n\tget editInpElement() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\");\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e) && !this.disableDeleteButton && !this.hideDeleteButton && !this.disabled) {\n\t\t\tthis._onDelete();\n\t\t}\n\t}\n\n\t_onDetailKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.onDetailClick();\n\t\t}\n\t}\n\n\t_onInputFocusin(e: FocusEvent) {\n\t\t// prevent focusing the whole upload collection item.\n\t\te.stopPropagation();\n\t}\n\n\t_onInputKeyDown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t} else if (isEnter(e)) {\n\t\t\tthis._onRename();\n\t\t} else if (isSpace(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t_onRename() {\n\t\tconst inp = this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\")!;\n\t\tthis.fileName = inp.value + this._fileExtension;\n\t\tthis.fireDecoratorEvent(\"rename\");\n\n\t\tthis._editing = false;\n\t\tthis._editMode = false;\n\t\tthis._focus();\n\t}\n\n\t_onRenameKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRename();\n\t\t}\n\t}\n\n\tasync _onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, \"click\">) {\n\t\tthis._editing = false;\n\t\tthis._editMode = false;\n\n\t\tif (isEscape(e as KeyboardEvent)) {\n\t\t\tawait renderFinished();\n\t\t\tthis.shadowRoot!.querySelector<Button>(`#${this._id}-editing-button`)!.focus();\n\t\t} else {\n\t\t\tthis._focus();\n\t\t}\n\t}\n\n\t_onRenameCancelKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t}\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\treturn super._handleTabNext(e);\n\t\t}\n\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\tif (this._editMode) {\n\t\t\treturn super._handleTabPrevious(e);\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\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_focus() {\n\t\tthis.fireDecoratorEvent(\"focus-requested\");\n\t}\n\n\t_onFileNameClick() {\n\t\tthis.fireDecoratorEvent(\"file-name-click\");\n\t}\n\n\t_onRetry() {\n\t\tthis.fireDecoratorEvent(\"retry\");\n\t}\n\n\t_onRetryKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRetry();\n\t\t}\n\t}\n\n\t_onTerminate() {\n\t\tthis.fireDecoratorEvent(\"terminate\");\n\t}\n\n\t_onTerminateKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onTerminate();\n\t\t}\n\t}\n\n\t_onDelete() {\n\t\tthis.fireDecoratorEvent(\"request-delete\");\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this.getDomRef();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget classes() {\n\t\tconst result = super.classes;\n\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t...result.main,\n\t\t\t\t\"ui5-uci-root\": true,\n\t\t\t\t\"ui5-uci-root-editing\": this._editing,\n\t\t\t\t\"ui5-uci-root-uploading\": this.uploadState === UploadState.Uploading,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _fileNameWithoutExtension() {\n\t\treturn this.fileName.substring(0, this.fileName.length - this._fileExtension.length);\n\t}\n\n\tget _fileExtension() {\n\t\treturn getFileExtension(this.fileName);\n\t}\n\n\tget _renameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT);\n\t}\n\n\tget _cancelRenameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT);\n\t}\n\n\tget _showProgressIndicator() {\n\t\treturn this.uploadState !== UploadState.Complete;\n\t}\n\n\tget _progressText() {\n\t\tif (this.uploadState === UploadState.Uploading) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_UPLOADING_STATE);\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_ERROR_STATE);\n\t\t}\n\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_READY_STATE);\n\t}\n\n\tget _showRetry() {\n\t\treturn !this.hideRetryButton && this.uploadState === UploadState.Error;\n\t}\n\n\tget _showTerminate() {\n\t\treturn !this.hideTerminateButton && this.uploadState === UploadState.Uploading;\n\t}\n\n\tget _retryButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT);\n\t}\n\n\tget _terminateButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT);\n\t}\n\n\tget _editButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT);\n\t}\n\n\tget valueStateName(): ValueState {\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn ValueState.Negative;\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Ready || this.uploadState === UploadState.Uploading) {\n\t\t\treturn ValueState.Information;\n\t\t}\n\n\t\treturn ValueState.None;\n\t}\n\n\t/**\n\t * override\n\t */\n\tget typeDetail() {\n\t\treturn false;\n\t}\n\n\tget showEditButton() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n}\n\nUploadCollectionItem.define();\n\nexport default UploadCollectionItem;\n"]}
|
package/dist/Wizard.d.ts
CHANGED
|
@@ -323,6 +323,12 @@ declare class Wizard extends UI5Element {
|
|
|
323
323
|
* @private
|
|
324
324
|
*/
|
|
325
325
|
scrollToSelectedStep(): void;
|
|
326
|
+
/**
|
|
327
|
+
* Focuses the first focusable element in the currently selected step.
|
|
328
|
+
* This helps screen readers announce the step change.
|
|
329
|
+
* @private
|
|
330
|
+
*/
|
|
331
|
+
focusFirstElementInCurrentStep(): Promise<void>;
|
|
326
332
|
/**
|
|
327
333
|
* Scrolls to the content item within the `ui5-wizard` shadowDOM
|
|
328
334
|
* by given step index.
|
package/dist/Wizard.js
CHANGED
|
@@ -187,6 +187,7 @@ let Wizard = Wizard_1 = class Wizard extends UI5Element {
|
|
|
187
187
|
this.storeStepScrollOffsets();
|
|
188
188
|
if (this.previouslySelectedStepIndex !== this.selectedStepIndex) {
|
|
189
189
|
this.scrollToSelectedStep();
|
|
190
|
+
this.focusFirstElementInCurrentStep();
|
|
190
191
|
}
|
|
191
192
|
this.attachStepsResizeObserver();
|
|
192
193
|
this.previouslySelectedStepIndex = this.selectedStepIndex;
|
|
@@ -687,6 +688,22 @@ let Wizard = Wizard_1 = class Wizard extends UI5Element {
|
|
|
687
688
|
}
|
|
688
689
|
this.selectionRequestedByScroll = false;
|
|
689
690
|
}
|
|
691
|
+
/**
|
|
692
|
+
* Focuses the first focusable element in the currently selected step.
|
|
693
|
+
* This helps screen readers announce the step change.
|
|
694
|
+
* @private
|
|
695
|
+
*/
|
|
696
|
+
async focusFirstElementInCurrentStep() {
|
|
697
|
+
const currentStep = this.slottedSteps[this.selectedStepIndex];
|
|
698
|
+
if (!currentStep || currentStep.disabled) {
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
701
|
+
const firstElementChild = currentStep.firstElementChild;
|
|
702
|
+
const firstFocusableElement = await getFirstFocusableElement(firstElementChild);
|
|
703
|
+
if (firstFocusableElement) {
|
|
704
|
+
firstFocusableElement.focus();
|
|
705
|
+
}
|
|
706
|
+
}
|
|
690
707
|
/**
|
|
691
708
|
* Scrolls to the content item within the `ui5-wizard` shadowDOM
|
|
692
709
|
* by given step index.
|