@ui5/webcomponents-fiori 2.8.0-rc.2 → 2.8.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +3 -0
- package/cypress/specs/NotificationList.cy.tsx +154 -0
- package/cypress/specs/SearchField.cy.tsx +445 -0
- package/cypress/specs/UserSettingsDialog.cy.tsx +619 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/NotificationListGroupItem.d.ts +1 -1
- package/dist/NotificationListGroupItem.js +5 -2
- package/dist/NotificationListGroupItem.js.map +1 -1
- package/dist/NotificationListGroupItemTemplate.js +4 -5
- package/dist/NotificationListGroupItemTemplate.js.map +1 -1
- package/dist/NotificationListGroupList.d.ts +2 -0
- package/dist/NotificationListGroupList.js +9 -0
- package/dist/NotificationListGroupList.js.map +1 -1
- package/dist/NotificationListInternal.d.ts +6 -0
- package/dist/NotificationListInternal.js +119 -0
- package/dist/NotificationListInternal.js.map +1 -1
- package/dist/NotificationListItem.d.ts +0 -1
- package/dist/NotificationListItem.js +1 -32
- package/dist/NotificationListItem.js.map +1 -1
- package/dist/SearchField.d.ts +130 -0
- package/dist/SearchField.js +228 -0
- package/dist/SearchField.js.map +1 -0
- package/dist/SearchFieldScopeOption.d.ts +26 -0
- package/dist/SearchFieldScopeOption.js +35 -0
- package/dist/SearchFieldScopeOption.js.map +1 -0
- package/dist/SearchFieldTemplate.d.ts +2 -0
- package/dist/SearchFieldTemplate.js +20 -0
- package/dist/SearchFieldTemplate.js.map +1 -0
- package/dist/SideNavigationItem.js +1 -1
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/UserSettingsDialog.d.ts +118 -0
- package/dist/UserSettingsDialog.js +260 -0
- package/dist/UserSettingsDialog.js.map +1 -0
- package/dist/UserSettingsDialogTemplate.d.ts +2 -0
- package/dist/UserSettingsDialogTemplate.js +23 -0
- package/dist/UserSettingsDialogTemplate.js.map +1 -0
- package/dist/UserSettingsItem.d.ts +131 -0
- package/dist/UserSettingsItem.js +209 -0
- package/dist/UserSettingsItem.js.map +1 -0
- package/dist/UserSettingsItemTemplate.d.ts +4 -0
- package/dist/UserSettingsItemTemplate.js +20 -0
- package/dist/UserSettingsItemTemplate.js.map +1 -0
- package/dist/UserSettingsView.d.ts +43 -0
- package/dist/UserSettingsView.js +68 -0
- package/dist/UserSettingsView.js.map +1 -0
- package/dist/UserSettingsViewTemplate.d.ts +2 -0
- package/dist/UserSettingsViewTemplate.js +5 -0
- package/dist/UserSettingsViewTemplate.js.map +1 -0
- package/dist/bundle.esm.js +5 -0
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/DynamicPage.css +1 -1
- package/dist/css/themes/DynamicPageHeader.css +1 -1
- package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
- package/dist/css/themes/DynamicPageTitle.css +1 -1
- package/dist/css/themes/FlexibleColumnLayout.css +1 -1
- package/dist/css/themes/IllustratedMessage.css +1 -1
- package/dist/css/themes/MediaGallery.css +1 -1
- package/dist/css/themes/MediaGalleryItem.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/NotificationListGroupItem.css +1 -1
- package/dist/css/themes/NotificationListItem.css +1 -1
- package/dist/css/themes/NotificationListItemBase.css +1 -1
- package/dist/css/themes/NotificationStateIcon.css +1 -1
- package/dist/css/themes/Page.css +1 -1
- package/dist/css/themes/ProductSwitchItem.css +1 -1
- package/dist/css/themes/SearchField.css +1 -0
- package/dist/css/themes/ShellBar.css +1 -1
- package/dist/css/themes/ShellBarPopover.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationItemBase.css +1 -1
- package/dist/css/themes/SideNavigationPopover.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Timeline.css +1 -1
- package/dist/css/themes/TimelineGroupItem.css +1 -1
- package/dist/css/themes/TimelineItem.css +1 -1
- package/dist/css/themes/UploadCollection.css +1 -1
- package/dist/css/themes/UploadCollectionItem.css +1 -1
- package/dist/css/themes/UserSettingsDialog.css +1 -0
- package/dist/css/themes/UserSettingsItem.css +1 -0
- package/dist/css/themes/UserSettingsView.css +1 -0
- package/dist/css/themes/ViewSettingsDialog.css +1 -1
- package/dist/css/themes/Wizard.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +730 -0
- package/dist/custom-elements.json +573 -0
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +10 -1
- package/dist/generated/i18n/i18n-defaults.js +10 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPage.css.js +1 -1
- package/dist/generated/themes/DynamicPage.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
- package/dist/generated/themes/IllustratedMessage.css.d.ts +1 -1
- package/dist/generated/themes/IllustratedMessage.css.js +1 -1
- package/dist/generated/themes/IllustratedMessage.css.js.map +1 -1
- package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
- package/dist/generated/themes/MediaGallery.css.js +1 -1
- package/dist/generated/themes/MediaGallery.css.js.map +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListItem.css.js +1 -1
- package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
- package/dist/generated/themes/Page.css.d.ts +1 -1
- package/dist/generated/themes/Page.css.js +1 -1
- package/dist/generated/themes/Page.css.js.map +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
- package/dist/generated/themes/SearchField.css.d.ts +2 -0
- package/dist/generated/themes/SearchField.css.js +8 -0
- package/dist/generated/themes/SearchField.css.js.map +1 -0
- 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/ShellBarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ShellBarPopover.css.js +1 -1
- package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationPopover.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
- package/dist/generated/themes/SideNavigationPopover.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Timeline.css.d.ts +1 -1
- package/dist/generated/themes/Timeline.css.js +1 -1
- package/dist/generated/themes/Timeline.css.js.map +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
- package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
- package/dist/generated/themes/TimelineItem.css.js +1 -1
- package/dist/generated/themes/TimelineItem.css.js.map +1 -1
- package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
- package/dist/generated/themes/UploadCollection.css.js +1 -1
- package/dist/generated/themes/UploadCollection.css.js.map +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsDialog.css.d.ts +2 -0
- package/dist/generated/themes/UserSettingsDialog.css.js +8 -0
- package/dist/generated/themes/UserSettingsDialog.css.js.map +1 -0
- package/dist/generated/themes/UserSettingsItem.css.d.ts +2 -0
- package/dist/generated/themes/UserSettingsItem.css.js +8 -0
- package/dist/generated/themes/UserSettingsItem.css.js.map +1 -0
- package/dist/generated/themes/UserSettingsView.css.d.ts +2 -0
- package/dist/generated/themes/UserSettingsView.css.js +8 -0
- package/dist/generated/themes/UserSettingsView.css.js.map +1 -0
- package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.d.ts +1 -1
- package/dist/generated/themes/Wizard.css.js +1 -1
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/types/SearchMode.d.ts +17 -0
- package/dist/types/SearchMode.js +19 -0
- package/dist/types/SearchMode.js.map +1 -0
- package/dist/vscode.html-custom-data.json +104 -0
- package/dist/web-types.json +283 -1
- package/package.json +7 -7
- package/src/NotificationListGroupItemTemplate.tsx +37 -43
- package/src/SearchFieldTemplate.tsx +83 -0
- package/src/UserSettingsDialogTemplate.tsx +68 -0
- package/src/UserSettingsItemTemplate.tsx +52 -0
- package/src/UserSettingsViewTemplate.tsx +11 -0
- package/src/i18n/messagebundle.properties +27 -1
- package/src/themes/IllustratedMessage.css +5 -2
- package/src/themes/NavigationMenuItem.css +0 -1
- package/src/themes/NotificationListGroupItem.css +5 -0
- package/src/themes/SearchField.css +234 -0
- package/src/themes/ShellBar.css +7 -2
- package/src/themes/SideNavigationItemBase.css +71 -10
- package/src/themes/UserSettingsDialog.css +106 -0
- package/src/themes/UserSettingsItem.css +78 -0
- package/src/themes/UserSettingsView.css +13 -0
- package/src/themes/base/SearchField-parameters.css +23 -0
- package/src/themes/base/SideNavigation-parameters.css +7 -1
- package/src/themes/sap_fiori_3/SearchField-parameters.css +25 -0
- package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_dark/SearchField-parameters.css +25 -0
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_hcb/SearchField-parameters.css +25 -0
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_hcw/SearchField-parameters.css +25 -0
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon/SideNavigation-parameters.css +7 -3
- package/src/themes/sap_horizon/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon_dark/SideNavigation-parameters.css +7 -3
- package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon_hcb/SearchField-parameters.css +25 -0
- package/src/themes/sap_horizon_hcb/SideNavigation-parameters.css +9 -3
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon_hcw/SearchField-parameters.css +25 -0
- package/src/themes/sap_horizon_hcw/SideNavigation-parameters.css +9 -3
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
+
import type SearchMode from "./types/SearchMode.js";
|
|
4
|
+
import type { SelectChangeEventDetail } from "@ui5/webcomponents/dist/Select.js";
|
|
5
|
+
/**
|
|
6
|
+
* Interface for components that may be slotted inside a `ui5-search`
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
interface ISearchFieldScopeOption extends UI5Element {
|
|
10
|
+
text?: string;
|
|
11
|
+
selected: boolean;
|
|
12
|
+
stableDomRef: string;
|
|
13
|
+
}
|
|
14
|
+
type SearchFieldScopeSelectionChangeDetails = {
|
|
15
|
+
scope: ISearchFieldScopeOption | undefined;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @class
|
|
19
|
+
*
|
|
20
|
+
* ### Overview
|
|
21
|
+
*
|
|
22
|
+
* A `ui5-search-field` is an input field, used for user search.
|
|
23
|
+
*
|
|
24
|
+
* The `ui5-search-field` consists of several elements parts:
|
|
25
|
+
* - Scope - displays a select in the beggining of the component, used for filtering results by their scope.
|
|
26
|
+
* - Input field - for user input value
|
|
27
|
+
* - Clear button - gives the possibility for deleting the entered value
|
|
28
|
+
* - Search button - a primary button for performing search, when the user has entered a search term
|
|
29
|
+
* - Expand/Collapse button - when there is no search term, the search button behaves as an expand/collapse button for the `ui5-search-field` component
|
|
30
|
+
*
|
|
31
|
+
* ### ES6 Module Import
|
|
32
|
+
*
|
|
33
|
+
* `import "@ui5/webcomponents/fiori/dist/SearchField.js";`
|
|
34
|
+
*
|
|
35
|
+
* @constructor
|
|
36
|
+
* @extends UI5Element
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
declare class SearchField extends UI5Element {
|
|
40
|
+
eventDetails: {
|
|
41
|
+
search: void;
|
|
42
|
+
input: void;
|
|
43
|
+
"scope-change": SearchFieldScopeSelectionChangeDetails;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Defines the mode of the component.
|
|
47
|
+
* @default "Default"
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
mode: `${SearchMode}`;
|
|
51
|
+
/**
|
|
52
|
+
* Defines whether the clear icon of the search will be shown.
|
|
53
|
+
* @default false
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
showClearIcon: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Defines whether the component is expanded.
|
|
59
|
+
*
|
|
60
|
+
* @default false
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
expanded: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Determines whether the component is in a fixed state that is not
|
|
66
|
+
* expandable/collapsible by user interaction.
|
|
67
|
+
* @default false
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
fixed: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Defines the value of the component.
|
|
73
|
+
*
|
|
74
|
+
* **Note:** The property is updated upon typing.
|
|
75
|
+
* @default ""
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
value: string;
|
|
79
|
+
/**
|
|
80
|
+
* Defines a short hint intended to aid the user with data entry when the
|
|
81
|
+
* component has no value.
|
|
82
|
+
* @default undefined
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
placeholder?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Defines the accessible ARIA name of the component.
|
|
88
|
+
* @public
|
|
89
|
+
* @default undefined
|
|
90
|
+
*/
|
|
91
|
+
accessibleName?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Defines the component scope options.
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
scopeOptions: Array<ISearchFieldScopeOption>;
|
|
97
|
+
/**
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
focusedInnerInput: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
104
|
+
_effectiveShowClearIcon: boolean;
|
|
105
|
+
static i18nBundle: I18nBundle;
|
|
106
|
+
onBeforeRendering(): void;
|
|
107
|
+
_onkeydown(e: KeyboardEvent): void;
|
|
108
|
+
_onfocusin(): void;
|
|
109
|
+
_onfocusout(): void;
|
|
110
|
+
_handleEnter(): void;
|
|
111
|
+
_handleSearchIconPress(): void;
|
|
112
|
+
_handleInput(e: InputEvent): void;
|
|
113
|
+
_handleClear(): void;
|
|
114
|
+
_handleScopeChange(e: CustomEvent<SelectChangeEventDetail>): void;
|
|
115
|
+
get _isSearchIcon(): boolean | 0;
|
|
116
|
+
get _searchButtonAccessibilityAttributes(): {
|
|
117
|
+
expanded: boolean;
|
|
118
|
+
};
|
|
119
|
+
get _translations(): {
|
|
120
|
+
scope: string;
|
|
121
|
+
clearIcon: string;
|
|
122
|
+
searchIcon: string;
|
|
123
|
+
collapsedSearch: string;
|
|
124
|
+
};
|
|
125
|
+
captureRef(ref: HTMLElement & {
|
|
126
|
+
scopeOption?: UI5Element;
|
|
127
|
+
} | null): void;
|
|
128
|
+
}
|
|
129
|
+
export default SearchField;
|
|
130
|
+
export type { ISearchFieldScopeOption, SearchFieldScopeSelectionChangeDetails };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var SearchField_1;
|
|
8
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
11
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
13
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
|
+
import SearchFieldTemplate from "./SearchFieldTemplate.js";
|
|
15
|
+
import SearchFieldCss from "./generated/themes/SearchField.css.js";
|
|
16
|
+
import { isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
17
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
18
|
+
import { SEARCH_FIELD_SCOPE_SELECT_LABEL, SEARCH_FIELD_CLEAR_ICON, SEARCH_FIELD_SEARCH_ICON, SEARCH_FIELD_SEARCH_COLLAPSED, SEARCH_FIELD_SEARCH_EXPANDED, } from "./generated/i18n/i18n-defaults.js";
|
|
19
|
+
/**
|
|
20
|
+
* @class
|
|
21
|
+
*
|
|
22
|
+
* ### Overview
|
|
23
|
+
*
|
|
24
|
+
* A `ui5-search-field` is an input field, used for user search.
|
|
25
|
+
*
|
|
26
|
+
* The `ui5-search-field` consists of several elements parts:
|
|
27
|
+
* - Scope - displays a select in the beggining of the component, used for filtering results by their scope.
|
|
28
|
+
* - Input field - for user input value
|
|
29
|
+
* - Clear button - gives the possibility for deleting the entered value
|
|
30
|
+
* - Search button - a primary button for performing search, when the user has entered a search term
|
|
31
|
+
* - Expand/Collapse button - when there is no search term, the search button behaves as an expand/collapse button for the `ui5-search-field` component
|
|
32
|
+
*
|
|
33
|
+
* ### ES6 Module Import
|
|
34
|
+
*
|
|
35
|
+
* `import "@ui5/webcomponents/fiori/dist/SearchField.js";`
|
|
36
|
+
*
|
|
37
|
+
* @constructor
|
|
38
|
+
* @extends UI5Element
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
let SearchField = SearchField_1 = class SearchField extends UI5Element {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
/**
|
|
45
|
+
* Defines the mode of the component.
|
|
46
|
+
* @default "Default"
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
this.mode = "Default";
|
|
50
|
+
/**
|
|
51
|
+
* Defines whether the clear icon of the search will be shown.
|
|
52
|
+
* @default false
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
this.showClearIcon = false;
|
|
56
|
+
/**
|
|
57
|
+
* Defines whether the component is expanded.
|
|
58
|
+
*
|
|
59
|
+
* @default false
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
this.expanded = false;
|
|
63
|
+
/**
|
|
64
|
+
* Determines whether the component is in a fixed state that is not
|
|
65
|
+
* expandable/collapsible by user interaction.
|
|
66
|
+
* @default false
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
this.fixed = false;
|
|
70
|
+
/**
|
|
71
|
+
* Defines the value of the component.
|
|
72
|
+
*
|
|
73
|
+
* **Note:** The property is updated upon typing.
|
|
74
|
+
* @default ""
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
this.value = "";
|
|
78
|
+
/**
|
|
79
|
+
* @private
|
|
80
|
+
*/
|
|
81
|
+
this.focusedInnerInput = false;
|
|
82
|
+
/**
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
this._effectiveShowClearIcon = false;
|
|
86
|
+
}
|
|
87
|
+
onBeforeRendering() {
|
|
88
|
+
this._effectiveShowClearIcon = (this.showClearIcon && !!this.value);
|
|
89
|
+
}
|
|
90
|
+
_onkeydown(e) {
|
|
91
|
+
if (isEnter(e)) {
|
|
92
|
+
return this._handleEnter();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
_onfocusin() {
|
|
96
|
+
this.focusedInnerInput = true;
|
|
97
|
+
}
|
|
98
|
+
_onfocusout() {
|
|
99
|
+
this.focusedInnerInput = false;
|
|
100
|
+
}
|
|
101
|
+
_handleEnter() {
|
|
102
|
+
if (this.value.length) {
|
|
103
|
+
this.fireDecoratorEvent("search");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
_handleSearchIconPress() {
|
|
107
|
+
if (this.value.length) {
|
|
108
|
+
this.fireDecoratorEvent("search");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (this.fixed) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.expanded = !this.expanded;
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
this.focus();
|
|
117
|
+
}, 0);
|
|
118
|
+
}
|
|
119
|
+
_handleInput(e) {
|
|
120
|
+
this.value = e.target.value;
|
|
121
|
+
this.fireDecoratorEvent("input");
|
|
122
|
+
}
|
|
123
|
+
_handleClear() {
|
|
124
|
+
this.value = "";
|
|
125
|
+
this.fireDecoratorEvent("input");
|
|
126
|
+
this.focus();
|
|
127
|
+
}
|
|
128
|
+
_handleScopeChange(e) {
|
|
129
|
+
const item = e.detail.selectedOption;
|
|
130
|
+
this.fireDecoratorEvent("scope-change", {
|
|
131
|
+
scope: item.scopeOption,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
get _isSearchIcon() {
|
|
135
|
+
return this.value.length && this.focusedInnerInput;
|
|
136
|
+
}
|
|
137
|
+
get _searchButtonAccessibilityAttributes() {
|
|
138
|
+
return {
|
|
139
|
+
expanded: this.expanded,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
get _translations() {
|
|
143
|
+
return {
|
|
144
|
+
scope: SearchField_1.i18nBundle.getText(SEARCH_FIELD_SCOPE_SELECT_LABEL),
|
|
145
|
+
clearIcon: SearchField_1.i18nBundle.getText(SEARCH_FIELD_CLEAR_ICON),
|
|
146
|
+
searchIcon: this._isSearchIcon ? SearchField_1.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON) : SearchField_1.i18nBundle.getText(SEARCH_FIELD_SEARCH_EXPANDED),
|
|
147
|
+
collapsedSearch: SearchField_1.i18nBundle.getText(SEARCH_FIELD_SEARCH_COLLAPSED),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
captureRef(ref) {
|
|
151
|
+
if (ref) {
|
|
152
|
+
ref.scopeOption = this;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
__decorate([
|
|
157
|
+
property()
|
|
158
|
+
], SearchField.prototype, "mode", void 0);
|
|
159
|
+
__decorate([
|
|
160
|
+
property({ type: Boolean })
|
|
161
|
+
], SearchField.prototype, "showClearIcon", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
property({ type: Boolean })
|
|
164
|
+
], SearchField.prototype, "expanded", void 0);
|
|
165
|
+
__decorate([
|
|
166
|
+
property({ type: Boolean })
|
|
167
|
+
], SearchField.prototype, "fixed", void 0);
|
|
168
|
+
__decorate([
|
|
169
|
+
property()
|
|
170
|
+
], SearchField.prototype, "value", void 0);
|
|
171
|
+
__decorate([
|
|
172
|
+
property()
|
|
173
|
+
], SearchField.prototype, "placeholder", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
property()
|
|
176
|
+
], SearchField.prototype, "accessibleName", void 0);
|
|
177
|
+
__decorate([
|
|
178
|
+
slot({ type: HTMLElement, individualSlots: true, invalidateOnChildChange: true })
|
|
179
|
+
], SearchField.prototype, "scopeOptions", void 0);
|
|
180
|
+
__decorate([
|
|
181
|
+
property({ type: Boolean })
|
|
182
|
+
], SearchField.prototype, "focusedInnerInput", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
property({ type: Boolean })
|
|
185
|
+
], SearchField.prototype, "_effectiveShowClearIcon", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
i18n("@ui5/webcomponents-fiori")
|
|
188
|
+
], SearchField, "i18nBundle", void 0);
|
|
189
|
+
SearchField = SearchField_1 = __decorate([
|
|
190
|
+
customElement({
|
|
191
|
+
tag: "ui5-search-field",
|
|
192
|
+
languageAware: true,
|
|
193
|
+
renderer: jsxRenderer,
|
|
194
|
+
template: SearchFieldTemplate,
|
|
195
|
+
styles: [
|
|
196
|
+
SearchFieldCss,
|
|
197
|
+
],
|
|
198
|
+
})
|
|
199
|
+
/**
|
|
200
|
+
* Fired when typing in input or clear icon is pressed.
|
|
201
|
+
*
|
|
202
|
+
* @public
|
|
203
|
+
*/
|
|
204
|
+
,
|
|
205
|
+
event("input", {
|
|
206
|
+
bubbles: true,
|
|
207
|
+
})
|
|
208
|
+
/**
|
|
209
|
+
* Fired when the scope has changed.
|
|
210
|
+
* @public
|
|
211
|
+
* @param {HTMLElement} scope The newly selected scope
|
|
212
|
+
*/
|
|
213
|
+
,
|
|
214
|
+
event("scope-change", {
|
|
215
|
+
bubbles: true,
|
|
216
|
+
})
|
|
217
|
+
/**
|
|
218
|
+
* Fired when the user has triggered search with Enter key or Search Button press.
|
|
219
|
+
* @public
|
|
220
|
+
*/
|
|
221
|
+
,
|
|
222
|
+
event("search", {
|
|
223
|
+
bubbles: true,
|
|
224
|
+
})
|
|
225
|
+
], SearchField);
|
|
226
|
+
SearchField.define();
|
|
227
|
+
export default SearchField;
|
|
228
|
+
//# sourceMappingURL=SearchField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchField.js","sourceRoot":"","sources":["../src/SearchField.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport SearchFieldTemplate from \"./SearchFieldTemplate.js\";\nimport SearchFieldCss from \"./generated/themes/SearchField.css.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type SearchMode from \"./types/SearchMode.js\";\nimport type { IOption, SelectChangeEventDetail } from \"@ui5/webcomponents/dist/Select.js\";\n\nimport {\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\n\nimport {\n\tSEARCH_FIELD_SCOPE_SELECT_LABEL,\n\tSEARCH_FIELD_CLEAR_ICON,\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSEARCH_FIELD_SEARCH_COLLAPSED,\n\tSEARCH_FIELD_SEARCH_EXPANDED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that may be slotted inside a `ui5-search`\n * @public\n */\ninterface ISearchFieldScopeOption extends UI5Element {\n\ttext?: string,\n\tselected: boolean,\n\tstableDomRef: string,\n}\n\ntype SearchFieldScopeSelectionChangeDetails = {\n\tscope: ISearchFieldScopeOption | undefined;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search-field` is an input field, used for user search.\n *\n * The `ui5-search-field` 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 * - Expand/Collapse button - when there is no search term, the search button behaves as an expand/collapse button for the `ui5-search-field` component\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/fiori/dist/SearchField.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @private\n */\n@customElement({\n\ttag: \"ui5-search-field\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchFieldTemplate,\n\tstyles: [\n\t\tSearchFieldCss,\n\t],\n})\n\n/**\n * Fired when typing in input or clear icon is pressed.\n *\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the scope has changed.\n * @public\n * @param {HTMLElement} scope The newly selected scope\n */\n@event(\"scope-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user has triggered search with Enter key or Search Button press.\n * @public\n */\n@event(\"search\", {\n\tbubbles: true,\n})\n\nclass SearchField extends UI5Element {\n\teventDetails!: {\n\t\tsearch: void,\n\t\tinput: void,\n\t\t\"scope-change\": SearchFieldScopeSelectionChangeDetails,\n\t}\n\n\t/**\n\t * Defines the mode of the component.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${SearchMode}` = \"Default\";\n\n\t/**\n\t * Defines whether the clear icon of the search will be shown.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Defines whether the component is expanded.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Determines whether the component is in a fixed state that is not\n\t * expandable/collapsible by user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tfixed = false;\n\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the component scope options.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true, invalidateOnChildChange: true })\n\tscopeOptions!: Array<ISearchFieldScopeOption>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocusedInnerInput = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_effectiveShowClearIcon = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value);\n\t}\n\n\t_onkeydown(e:KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\treturn this._handleEnter();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis.focusedInnerInput = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focusedInnerInput = false;\n\t}\n\n\t_handleEnter() {\n\t\tif (this.value.length) {\n\t\t\tthis.fireDecoratorEvent(\"search\");\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (this.value.length) {\n\t\t\tthis.fireDecoratorEvent(\"search\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.fixed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = !this.expanded;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.focus();\n\t\t}, 0);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLInputElement).value;\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClear() {\n\t\tthis.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tthis.focus();\n\t}\n\n\t_handleScopeChange(e: CustomEvent<SelectChangeEventDetail>) {\n\t\tconst item = e.detail.selectedOption as IOption & { scopeOption: ISearchFieldScopeOption };\n\t\tthis.fireDecoratorEvent(\"scope-change\", {\n\t\t\tscope: item.scopeOption,\n\t\t});\n\t}\n\n\tget _isSearchIcon() {\n\t\treturn this.value.length && this.focusedInnerInput;\n\t}\n\n\tget _searchButtonAccessibilityAttributes() {\n\t\treturn {\n\t\t\texpanded: this.expanded,\n\t\t};\n\t}\n\n\tget _translations() {\n\t\treturn {\n\t\t\tscope: SearchField.i18nBundle.getText(SEARCH_FIELD_SCOPE_SELECT_LABEL),\n\t\t\tclearIcon: SearchField.i18nBundle.getText(SEARCH_FIELD_CLEAR_ICON),\n\t\t\tsearchIcon: this._isSearchIcon ? SearchField.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON) : SearchField.i18nBundle.getText(SEARCH_FIELD_SEARCH_EXPANDED),\n\t\t\tcollapsedSearch: SearchField.i18nBundle.getText(SEARCH_FIELD_SEARCH_COLLAPSED),\n\t\t};\n\t}\n\n\tcaptureRef(ref: HTMLElement & { scopeOption?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.scopeOption = this;\n\t\t}\n\t}\n}\n\nSearchField.define();\n\nexport default SearchField;\n\nexport type { ISearchFieldScopeOption, SearchFieldScopeSelectionChangeDetails };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { ISearchFieldScopeOption } from "./SearchField.js";
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
* The `ui5-search-scope-option` represents the options for the scope in `ui5-search`.
|
|
6
|
+
* @constructor
|
|
7
|
+
* @extends UI5Element
|
|
8
|
+
* @abstract
|
|
9
|
+
* @implements {ISearchFieldScopeOption}
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
declare class SearchFieldScopeOption extends UI5Element implements ISearchFieldScopeOption {
|
|
13
|
+
/**
|
|
14
|
+
* Defines the text of the component.
|
|
15
|
+
* @default ""
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
text: string;
|
|
19
|
+
/**
|
|
20
|
+
* Indicates whether the item is selected
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
23
|
+
selected: boolean;
|
|
24
|
+
get stableDomRef(): string;
|
|
25
|
+
}
|
|
26
|
+
export default SearchFieldScopeOption;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
8
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
9
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
10
|
+
/**
|
|
11
|
+
* @class
|
|
12
|
+
* The `ui5-search-scope-option` represents the options for the scope in `ui5-search`.
|
|
13
|
+
* @constructor
|
|
14
|
+
* @extends UI5Element
|
|
15
|
+
* @abstract
|
|
16
|
+
* @implements {ISearchFieldScopeOption}
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
let SearchFieldScopeOption = class SearchFieldScopeOption extends UI5Element {
|
|
20
|
+
get stableDomRef() {
|
|
21
|
+
return this.getAttribute("stable-dom-ref") || `${this._id}-stable-dom-ref`;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
__decorate([
|
|
25
|
+
property()
|
|
26
|
+
], SearchFieldScopeOption.prototype, "text", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
property({ type: Boolean })
|
|
29
|
+
], SearchFieldScopeOption.prototype, "selected", void 0);
|
|
30
|
+
SearchFieldScopeOption = __decorate([
|
|
31
|
+
customElement("ui5-search-field-scope-option")
|
|
32
|
+
], SearchFieldScopeOption);
|
|
33
|
+
SearchFieldScopeOption.define();
|
|
34
|
+
export default SearchFieldScopeOption;
|
|
35
|
+
//# sourceMappingURL=SearchFieldScopeOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFieldScopeOption.js","sourceRoot":"","sources":["../src/SearchFieldScopeOption.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAGpE;;;;;;;;GAQG;AAEH,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,UAAU;IAgB9C,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC;IAC5E,CAAC;CACD,CAAA;AAZA;IADC,QAAQ,EAAE;oDACE;AAOb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACT;AAdd,sBAAsB;IAD3B,aAAa,CAAC,+BAA+B,CAAC;GACzC,sBAAsB,CAmB3B;AAED,sBAAsB,CAAC,MAAM,EAAE,CAAC;AAEhC,eAAe,sBAAsB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ISearchFieldScopeOption } from \"./SearchField.js\";\n\n/**\n * @class\n * The `ui5-search-scope-option` represents the options for the scope in `ui5-search`.\n * @constructor\n * @extends UI5Element\n * @abstract\n * @implements {ISearchFieldScopeOption}\n * @public\n */\n@customElement(\"ui5-search-field-scope-option\")\nclass SearchFieldScopeOption extends UI5Element implements ISearchFieldScopeOption {\n\t/**\n\t * Defines the text of the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string\n\n\t/**\n\t * Indicates whether the item is selected\n\t * @protected\n\t */\n\t@property({ type: Boolean })\n\tselected!: boolean;\n\n\tget stableDomRef() {\n\t\treturn this.getAttribute(\"stable-dom-ref\") || `${this._id}-stable-dom-ref`;\n\t}\n}\n\nSearchFieldScopeOption.define();\n\nexport default SearchFieldScopeOption;\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
3
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
4
|
+
import Option from "@ui5/webcomponents/dist/Option.js";
|
|
5
|
+
import Select from "@ui5/webcomponents/dist/Select.js";
|
|
6
|
+
import SearchMode from "./types/SearchMode.js";
|
|
7
|
+
import decline from "@ui5/webcomponents-icons/dist/decline.js";
|
|
8
|
+
import search from "@ui5/webcomponents-icons/dist/search.js";
|
|
9
|
+
import ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
|
|
10
|
+
export default function SearchFieldTemplate() {
|
|
11
|
+
return (this.expanded ? (_jsx("div", { class: "ui5-search-field-root", role: "search", children: _jsxs("div", { class: "ui5-search-field-content", children: [this.mode === SearchMode.Scoped &&
|
|
12
|
+
_jsxs(_Fragment, { children: [_jsx(Select, { onChange: this._handleScopeChange, class: "sapUiSizeCompact", accessibleName: this._translations.scope, tooltip: this._translations.scope, children: this.scopeOptions.map(scopeOption => {
|
|
13
|
+
return _jsx(Option, { selected: scopeOption.selected, "data-ui5-stable": scopeOption.stableDomRef, ref: this.captureRef.bind(scopeOption), children: scopeOption.text });
|
|
14
|
+
}, this) }), _jsx("div", { class: "ui5-search-field-separator" })] }), _jsx("input", { class: "ui5-search-field-inner-input", role: "searchbox", "aria-label": this.accessibleName, value: this.value, placeholder: this.placeholder, "data-sap-focus-ref": true, onInput: this._handleInput, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyDown: this._onkeydown }), this._effectiveShowClearIcon &&
|
|
15
|
+
_jsx(Icon, { class: "ui5-shell-search-field-icon", name: decline, showTooltip: true, accessibleName: this._translations.clearIcon, onClick: this._handleClear }), _jsx(Icon, { class: {
|
|
16
|
+
"ui5-shell-search-field-icon": true,
|
|
17
|
+
"ui5-shell-search-field-search-icon": this._isSearchIcon,
|
|
18
|
+
}, name: search, showTooltip: true, accessibleName: this._translations.searchIcon, onClick: this._handleSearchIconPress })] }) })) : (_jsx(Button, { class: "ui5-shell-search-field-button", icon: search, design: ButtonDesign.Transparent, "data-sap-focus-ref": true, onClick: this._handleSearchIconPress, tooltip: this._translations.collapsedSearch, accessibleName: this._translations.collapsedSearch, accessibilityAttributes: this._searchButtonAccessibilityAttributes })));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SearchFieldTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchFieldTemplate.js","sourceRoot":"","sources":["../src/SearchFieldTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,YAAY,MAAM,+CAA+C,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACf,cAAK,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,QAAQ,YAC/C,eAAK,KAAK,EAAC,0BAA0B,aACnC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM;oBAC/B,8BACC,KAAC,MAAM,IACN,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,KAAK,EAAC,kBAAkB,EACxB,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EACxC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,YAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oCACpC,OAAO,KAAC,MAAM,IACb,QAAQ,EAAE,WAAW,CAAC,QAAQ,qBACb,WAAW,CAAC,YAAY,EACzC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,YACrC,WAAW,CAAC,IAAI,GAAU,CAAC;gCAC9B,CAAC,EACD,IAAI,CAAC,GACG,EACT,cAAK,KAAK,EAAC,4BAA4B,GAAO,IAC5C,EAGJ,gBACC,KAAK,EAAC,8BAA8B,EACpC,IAAI,EAAC,WAAW,gBACJ,IAAI,CAAC,cAAc,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,8BAE7B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,GAAI,EAE9B,IAAI,CAAC,uBAAuB;oBAC5B,KAAC,IAAI,IACJ,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAC5C,OAAO,EAAE,IAAI,CAAC,YAAY,GACnB,EAGT,KAAC,IAAI,IACJ,KAAK,EAAE;wBACN,6BAA6B,EAAE,IAAI;wBACnC,oCAAoC,EAAE,IAAI,CAAC,aAAa;qBACxD,EACD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAC7C,OAAO,EAAE,IAAI,CAAC,sBAAsB,GAC7B,IACH,GACD,CACN,CAAC,CAAC,CAAC,CACH,KAAC,MAAM,IACN,KAAK,EAAC,+BAA+B,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,WAAW,8BAEhC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EACpC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,EAC3C,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,EAClD,uBAAuB,EAAE,IAAI,CAAC,oCAAoC,GACzD,CACV,CACD,CAAC;AACH,CAAC","sourcesContent":["import Button from \"@ui5/webcomponents/dist/Button.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Option from \"@ui5/webcomponents/dist/Option.js\";\nimport Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type SearchField from \"./SearchField.js\";\nimport SearchMode from \"./types/SearchMode.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport search from \"@ui5/webcomponents-icons/dist/search.js\";\nimport ButtonDesign from \"@ui5/webcomponents/dist/types/ButtonDesign.js\";\n\nexport default function SearchFieldTemplate(this: SearchField) {\n\treturn (\n\t\tthis.expanded ? (\n\t\t\t<div class=\"ui5-search-field-root\" role=\"search\">\n\t\t\t\t<div class=\"ui5-search-field-content\">\n\t\t\t\t\t{this.mode === SearchMode.Scoped &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\tonChange={this._handleScopeChange}\n\t\t\t\t\t\t\t\tclass=\"sapUiSizeCompact\"\n\t\t\t\t\t\t\t\taccessibleName={this._translations.scope}\n\t\t\t\t\t\t\t\ttooltip={this._translations.scope}>\n\t\t\t\t\t\t\t\t{this.scopeOptions.map(scopeOption => {\n\t\t\t\t\t\t\t\t\treturn <Option\n\t\t\t\t\t\t\t\t\t\tselected={scopeOption.selected}\n\t\t\t\t\t\t\t\t\t\tdata-ui5-stable={scopeOption.stableDomRef}\n\t\t\t\t\t\t\t\t\t\tref={this.captureRef.bind(scopeOption)}\n\t\t\t\t\t\t\t\t\t>{scopeOption.text}</Option>;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tthis)}\n\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t\t<div class=\"ui5-search-field-separator\"></div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"ui5-search-field-inner-input\"\n\t\t\t\t\t\trole=\"searchbox\"\n\t\t\t\t\t\taria-label={this.accessibleName}\n\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t\tonInput={this._handleInput}\n\t\t\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\t\t\tonKeyDown={this._onkeydown} />\n\n\t\t\t\t\t{this._effectiveShowClearIcon &&\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclass=\"ui5-shell-search-field-icon\"\n\t\t\t\t\t\t\tname={decline}\n\t\t\t\t\t\t\tshowTooltip={true}\n\t\t\t\t\t\t\taccessibleName={this._translations.clearIcon}\n\t\t\t\t\t\t\tonClick={this._handleClear}\n\t\t\t\t\t\t></Icon>\n\t\t\t\t\t}\n\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\"ui5-shell-search-field-icon\": true,\n\t\t\t\t\t\t\t\"ui5-shell-search-field-search-icon\": this._isSearchIcon,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tname={search}\n\t\t\t\t\t\tshowTooltip={true}\n\t\t\t\t\t\taccessibleName={this._translations.searchIcon}\n\t\t\t\t\t\tonClick={this._handleSearchIconPress}\n\t\t\t\t\t></Icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<Button\n\t\t\t\tclass=\"ui5-shell-search-field-button\"\n\t\t\t\ticon={search}\n\t\t\t\tdesign={ButtonDesign.Transparent}\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\tonClick={this._handleSearchIconPress}\n\t\t\t\ttooltip={this._translations.collapsedSearch}\n\t\t\t\taccessibleName={this._translations.collapsedSearch}\n\t\t\t\taccessibilityAttributes={this._searchButtonAccessibilityAttributes}\n\t\t\t></Button>\n\t\t)\n\t);\n}\n"]}
|
|
@@ -98,7 +98,7 @@ let SideNavigationItem = class SideNavigationItem extends SideNavigationSelectab
|
|
|
98
98
|
}
|
|
99
99
|
get classesArray() {
|
|
100
100
|
const classes = super.classesArray;
|
|
101
|
-
if (!this.disabled && this.
|
|
101
|
+
if (!this.disabled && this.sideNavigation?.collapsed && this.items.length) {
|
|
102
102
|
classes.push("ui5-sn-item-with-expander");
|
|
103
103
|
}
|
|
104
104
|
if (this._fixed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigationItem.js","sourceRoot":"","sources":["../src/SideNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisSpace,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport type SideNavigation from \"./SideNavigation.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\n\n// Templates\nimport SideNavigationItemTemplate from \"./SideNavigationItemTemplate.js\";\n\n// Styles\nimport SideNavigationItemCss from \"./generated/themes/SideNavigationItem.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * Represents a navigation action. It can provide sub items.\n * The `ui5-side-navigation-item` is used within `ui5-side-navigation` or `ui5-side-navigation-group` only.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";`\n *\n * @constructor\n * @extends SideNavigationSelectableItemBase\n * @abstract\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-side-navigation-item\",\n\trenderer: jsxRender,\n\ttemplate: SideNavigationItemTemplate,\n\tstyles: SideNavigationItemCss,\n})\nclass SideNavigationItem extends SideNavigationSelectableItemBase {\n\t/**\n\t * Defines if the item is expanded\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * It is true, for example, for the items inside the Popover of the Side Navigation\n\t * @private\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed = false;\n\n\t/**\n * Defines nested items by passing `ui5-side-navigation-sub-item` to the default slot.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<SideNavigationSubItem>;\n\n\tget overflowItems() : Array<SideNavigationItem> {\n\t\treturn [this];\n\t}\n\n\tget selectableItems() : Array<SideNavigationSelectableItemBase> {\n\t\treturn [this, ...this.items];\n\t}\n\n\tget focusableItems() : Array<SideNavigationItemBase> {\n\t\tif (this.sideNavCollapsed) {\n\t\t\treturn [this];\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\treturn [this, ...this.items];\n\t\t}\n\n\t\treturn [this];\n\t}\n\n\tget allItems() : Array<SideNavigationItemBase> {\n\t\treturn [this, ...this.items];\n\t}\n\n\tget _ariaHasPopup() {\n\t\tif (this.inPopover && this.accessibilityAttributes?.hasPopup) {\n\t\t\treturn this.accessibilityAttributes.hasPopup;\n\t\t}\n\n\t\tif (!this.disabled && this.sideNavCollapsed && this.items.length) {\n\t\t\treturn \"tree\";\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget _ariaChecked() {\n\t\tif (this.isOverflow || this.unselectable) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.selected;\n\t}\n\n\tget _groupId() {\n\t\tif (!this.items.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn `${this._id}-group`;\n\t}\n\n\tget _expanded() {\n\t\tif (!this.items.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.expanded;\n\t}\n\n\tget classesArray() {\n\t\tconst classes = super.classesArray;\n\n\t\tif (!this.disabled && (this.parentNode as SideNavigation).collapsed && this.items.length) {\n\t\t\tclasses.push(\"ui5-sn-item-with-expander\");\n\t\t}\n\n\t\tif (this._fixed) {\n\t\t\tclasses.push(\"ui5-sn-item-fixed\");\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tget _selected() {\n\t\tif (this.sideNavCollapsed) {\n\t\t\treturn this.selected || this.items.some(item => item.selected);\n\t\t}\n\n\t\treturn this.selected;\n\t}\n\n\t_onToggleClick(e: CustomEvent) {\n\t\te.stopPropagation();\n\n\t\tthis._toggle();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isLeft(e)) {\n\t\t\tthis.expanded = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (isRight(e)) {\n\t\t\tthis.expanded = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.unselectable && isSpace(e)) {\n\t\t\tthis._toggle();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.unselectable && isEnter(e)) {\n\t\t\tthis._toggle();\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this.inPopover && this.unselectable) {\n\t\t\tthis._toggle();\n\t\t}\n\n\t\tsuper._onclick(e);\n\t}\n\n\t_onfocusout() {\n\t\tif (!this.sideNavCollapsed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.remove(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\t_onmouseenter() {\n\t\tif (!this.sideNavCollapsed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.remove(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\t_onmouseleave() {\n\t\tif (!this.sideNavCollapsed || !this._selected) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tget isSideNavigationItem() {\n\t\treturn true;\n\t}\n\n\t_toggle() {\n\t\tif (this.items.length) {\n\t\t\tthis.expanded = !this.expanded;\n\t\t}\n\t}\n}\n\nSideNavigationItem.define();\n\nconst isInstanceOfSideNavigationItem = (object: any): object is SideNavigationItem => {\n\treturn \"isSideNavigationItem\" in object;\n};\n\nexport default SideNavigationItem;\nexport { isInstanceOfSideNavigationItem };\n"]}
|
|
1
|
+
{"version":3,"file":"SideNavigationItem.js","sourceRoot":"","sources":["../src/SideNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisSpace,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\n\n// Templates\nimport SideNavigationItemTemplate from \"./SideNavigationItemTemplate.js\";\n\n// Styles\nimport SideNavigationItemCss from \"./generated/themes/SideNavigationItem.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * Represents a navigation action. It can provide sub items.\n * The `ui5-side-navigation-item` is used within `ui5-side-navigation` or `ui5-side-navigation-group` only.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";`\n *\n * @constructor\n * @extends SideNavigationSelectableItemBase\n * @abstract\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-side-navigation-item\",\n\trenderer: jsxRender,\n\ttemplate: SideNavigationItemTemplate,\n\tstyles: SideNavigationItemCss,\n})\nclass SideNavigationItem extends SideNavigationSelectableItemBase {\n\t/**\n\t * Defines if the item is expanded\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * It is true, for example, for the items inside the Popover of the Side Navigation\n\t * @private\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed = false;\n\n\t/**\n * Defines nested items by passing `ui5-side-navigation-sub-item` to the default slot.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<SideNavigationSubItem>;\n\n\tget overflowItems() : Array<SideNavigationItem> {\n\t\treturn [this];\n\t}\n\n\tget selectableItems() : Array<SideNavigationSelectableItemBase> {\n\t\treturn [this, ...this.items];\n\t}\n\n\tget focusableItems() : Array<SideNavigationItemBase> {\n\t\tif (this.sideNavCollapsed) {\n\t\t\treturn [this];\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\treturn [this, ...this.items];\n\t\t}\n\n\t\treturn [this];\n\t}\n\n\tget allItems() : Array<SideNavigationItemBase> {\n\t\treturn [this, ...this.items];\n\t}\n\n\tget _ariaHasPopup() {\n\t\tif (this.inPopover && this.accessibilityAttributes?.hasPopup) {\n\t\t\treturn this.accessibilityAttributes.hasPopup;\n\t\t}\n\n\t\tif (!this.disabled && this.sideNavCollapsed && this.items.length) {\n\t\t\treturn \"tree\";\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget _ariaChecked() {\n\t\tif (this.isOverflow || this.unselectable) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.selected;\n\t}\n\n\tget _groupId() {\n\t\tif (!this.items.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn `${this._id}-group`;\n\t}\n\n\tget _expanded() {\n\t\tif (!this.items.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.expanded;\n\t}\n\n\tget classesArray() {\n\t\tconst classes = super.classesArray;\n\n\t\tif (!this.disabled && this.sideNavigation?.collapsed && this.items.length) {\n\t\t\tclasses.push(\"ui5-sn-item-with-expander\");\n\t\t}\n\n\t\tif (this._fixed) {\n\t\t\tclasses.push(\"ui5-sn-item-fixed\");\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tget _selected() {\n\t\tif (this.sideNavCollapsed) {\n\t\t\treturn this.selected || this.items.some(item => item.selected);\n\t\t}\n\n\t\treturn this.selected;\n\t}\n\n\t_onToggleClick(e: CustomEvent) {\n\t\te.stopPropagation();\n\n\t\tthis._toggle();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isLeft(e)) {\n\t\t\tthis.expanded = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (isRight(e)) {\n\t\t\tthis.expanded = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.unselectable && isSpace(e)) {\n\t\t\tthis._toggle();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.unselectable && isEnter(e)) {\n\t\t\tthis._toggle();\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this.inPopover && this.unselectable) {\n\t\t\tthis._toggle();\n\t\t}\n\n\t\tsuper._onclick(e);\n\t}\n\n\t_onfocusout() {\n\t\tif (!this.sideNavCollapsed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.remove(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\t_onmouseenter() {\n\t\tif (!this.sideNavCollapsed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.remove(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\t_onmouseleave() {\n\t\tif (!this.sideNavCollapsed || !this._selected) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tget isSideNavigationItem() {\n\t\treturn true;\n\t}\n\n\t_toggle() {\n\t\tif (this.items.length) {\n\t\t\tthis.expanded = !this.expanded;\n\t\t}\n\t}\n}\n\nSideNavigationItem.define();\n\nconst isInstanceOfSideNavigationItem = (object: any): object is SideNavigationItem => {\n\treturn \"isSideNavigationItem\" in object;\n};\n\nexport default SideNavigationItem;\nexport { isInstanceOfSideNavigationItem };\n"]}
|