@ui5/webcomponents-fiori 2.10.0-rc.2 → 2.10.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 +24 -0
- package/cypress/specs/FCL.cy.tsx +9 -0
- package/cypress/specs/Search.cy.tsx +0 -1
- package/cypress/specs/SearchField.cy.tsx +19 -0
- package/cypress/specs/ShellBarSearch.cy.tsx +65 -0
- package/cypress/specs/ShellBarSearch.mobile.cy.tsx +98 -0
- package/cypress/specs/SideNavigation.cy.tsx +29 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/FlexibleColumnLayout.d.ts +4 -2
- package/dist/FlexibleColumnLayout.js +25 -11
- package/dist/FlexibleColumnLayout.js.map +1 -1
- package/dist/Search.d.ts +3 -3
- package/dist/Search.js +9 -7
- package/dist/Search.js.map +1 -1
- package/dist/SearchField.d.ts +5 -4
- package/dist/SearchField.js +6 -5
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchFieldTemplate.d.ts +7 -1
- package/dist/SearchFieldTemplate.js +3 -3
- package/dist/SearchFieldTemplate.js.map +1 -1
- package/dist/SearchItem.d.ts +1 -1
- package/dist/SearchItem.js +1 -1
- package/dist/SearchItem.js.map +1 -1
- package/dist/SearchPopoverTemplate.d.ts +2 -1
- package/dist/SearchPopoverTemplate.js +3 -3
- package/dist/SearchPopoverTemplate.js.map +1 -1
- package/dist/ShellBar.d.ts +6 -5
- package/dist/ShellBar.js.map +1 -1
- package/dist/ShellBarItem.d.ts +3 -2
- package/dist/ShellBarItem.js.map +1 -1
- package/dist/ShellBarSearch.d.ts +19 -0
- package/dist/ShellBarSearch.js +72 -0
- package/dist/ShellBarSearch.js.map +1 -0
- package/dist/ShellBarSearchPopoverTemplate.d.ts +2 -0
- package/dist/ShellBarSearchPopoverTemplate.js +12 -0
- package/dist/ShellBarSearchPopoverTemplate.js.map +1 -0
- package/dist/ShellBarSearchTemplate.d.ts +2 -0
- package/dist/ShellBarSearchTemplate.js +7 -0
- package/dist/ShellBarSearchTemplate.js.map +1 -0
- package/dist/SideNavigationGroup.d.ts +0 -1
- package/dist/SideNavigationGroup.js +1 -4
- package/dist/SideNavigationGroup.js.map +1 -1
- package/dist/SideNavigationGroupTemplate.js +1 -1
- package/dist/SideNavigationGroupTemplate.js.map +1 -1
- package/dist/UploadCollectionItem.d.ts +3 -1
- package/dist/UploadCollectionItem.js.map +1 -1
- package/dist/Wizard.d.ts +3 -1
- package/dist/Wizard.js.map +1 -1
- package/dist/bundle.esm.js +1 -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/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/Search.css +1 -1
- package/dist/css/themes/SearchField.css +1 -1
- 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/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/UserMenu.css +1 -1
- package/dist/css/themes/UserSettingsItem.css +1 -1
- 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 +453 -36
- package/dist/custom-elements.json +371 -36
- 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 +4 -2
- package/dist/generated/i18n/i18n-defaults.js +4 -2
- 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/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/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.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/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/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/UserMenu.css.d.ts +1 -1
- package/dist/generated/themes/UserMenu.css.js +1 -1
- package/dist/generated/themes/UserMenu.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
- 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/vscode.html-custom-data.json +52 -10
- package/dist/web-types.json +166 -19
- package/package.json +7 -7
- package/src/SearchFieldTemplate.tsx +11 -3
- package/src/SearchPopoverTemplate.tsx +4 -3
- package/src/ShellBarSearchPopoverTemplate.tsx +24 -0
- package/src/ShellBarSearchTemplate.tsx +12 -0
- package/src/SideNavigationGroupTemplate.tsx +0 -1
- package/src/i18n/messagebundle.properties +9 -3
- package/src/themes/DynamicPage.css +1 -1
- package/src/themes/FlexibleColumnLayout.css +4 -0
- package/src/themes/SearchField.css +11 -3
- package/src/themes/ShellBar.css +2 -0
- package/src/themes/SideNavigationItem.css +4 -0
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.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\tisRight,\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, StartsWithPerTerm } 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\";\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({ type: HTMLElement, \"default\": true })\n\titems!: Array<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!: Array<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!: Array<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!: Array<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 * True if the first matching item is matched by starts with per term, rather than by starts with.\n\t * @private\n\t */\n\t_matchedPerTerm: boolean;\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@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._matchedPerTerm = false;\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\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._deselectItems();\n\t\t\t\titem.selected = true;\n\t\t\t} else {\n\t\t\t\tthis._typedInValue = this.value;\n\t\t\t}\n\t\t} else {\n\t\t\tthis._typedInValue = this.value;\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\t\t\tthis._deselectItems();\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\titem.selected = true;\n\t\t\t}\n\t\t}\n\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\t\t});\n\n\t\tthis._shouldAutocomplete = false;\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);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(e: CustomEvent<InputEventDetail>): boolean {\n\t\tconst eventType = e.detail.inputType;\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(eventType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\t\tlet displayValue = originalValue;\n\n\t\tif (!originalValue.toLowerCase().startsWith(this.value.toLowerCase())) {\n\t\t\tthis._matchedPerTerm = true;\n\t\t\tdisplayValue = `${this.value} - ${originalValue}`;\n\t\t} else {\n\t\t\tthis._matchedPerTerm = false;\n\t\t}\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = displayValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = displayValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item)), \"text\");\n\t}\n\n\t_startsWithPerTermMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWithPerTerm(str, this._flattenItems.filter(item => !this._isGroupItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\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_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 firstListItem = this._getItemsList()?.getSlottedNodes<ISearchSuggestionItem>(\"items\")[0];\n\n\t\tif (this.open) {\n\t\t\tthis._deselectItems();\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\n\t\t\tfirstListItem?.focus();\n\t\t}\n\t}\n\n\t_handleRight(e: KeyboardEvent) {\n\t\tif (this._matchedPerTerm) {\n\t\t\te.preventDefault();\n\t\t\tthis.value = this._typedInValue;\n\t\t\tthis._innerValue = this._typedInValue;\n\t\t\tthis._proposedItem = undefined;\n\t\t}\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\t\tif (this._matchedPerTerm) {\n\t\t\tthis.value = this._proposedItem?.text || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t\tthis._typedInValue = this.value;\n\t\t\tthis._matchedPerTerm = false;\n\t\t}\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\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\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tthis.open = !isPhone() && ((e.currentTarget as HTMLInputElement).value.length > 0) && this._popoupHasAnyContent();\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 isFirstItem = this._flattenItems[0] === e.target;\n\t\tconst isLastItem = this._flattenItems[this._flattenItems.length - 1] === e.target;\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\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\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.open = false;\n\t\tthis.focus();\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 (isRight(e)) {\n\t\t\tthis._handleRight(e);\n\t\t}\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\t}\n\n\t_onfocusout() {\n\t\tsuper._onfocusout();\n\t\tif (this._matchedPerTerm) {\n\t\t\tthis.value = this._typedInValue;\n\t\t\tthis._innerValue = this._typedInValue;\n\t\t}\n\t\tthis._matchedPerTerm = false;\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}\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.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\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._valueBeforeOpen = this.value;\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\t\tconst partialMatches = this._startsWithPerTermMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn partialMatches[0] ?? undefined;\n\t\t}\n\n\t\tif (!partialMatches.length) {\n\t\t\treturn startsWithMatches[0];\n\t\t}\n\n\t\treturn this._flattenItems.indexOf(startsWithMatches[0]) <= this._flattenItems.indexOf(partialMatches[0])\n\t\t\t? startsWithMatches[0]\n\t\t\t: partialMatches[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 ? domRef.querySelector<HTMLInputElement>(`input`) : null;\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.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\tisRight,\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, StartsWithPerTerm } 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\";\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({ type: HTMLElement, \"default\": true })\n\titems!: Array<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!: Array<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!: Array<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!: Array<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 * True if the first matching item is matched by starts with per term, rather than by starts with.\n\t * @private\n\t */\n\t_matchedPerTerm: boolean;\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@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._matchedPerTerm = false;\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\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._deselectItems();\n\t\t\t\titem.selected = true;\n\t\t\t} else {\n\t\t\t\tthis._typedInValue = this.value;\n\t\t\t}\n\t\t} else {\n\t\t\tthis._typedInValue = this.value;\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\t\t\tthis._deselectItems();\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\titem.selected = true;\n\t\t\t}\n\t\t}\n\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\t\t});\n\n\t\tthis._shouldAutocomplete = false;\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\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\t\tlet displayValue = originalValue;\n\n\t\tif (!originalValue.toLowerCase().startsWith(this.value.toLowerCase())) {\n\t\t\tthis._matchedPerTerm = true;\n\t\t\tdisplayValue = `${this.value} - ${originalValue}`;\n\t\t} else {\n\t\t\tthis._matchedPerTerm = false;\n\t\t}\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = displayValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = displayValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item)), \"text\");\n\t}\n\n\t_startsWithPerTermMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWithPerTerm(str, this._flattenItems.filter(item => !this._isGroupItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\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_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 firstListItem = this._getItemsList()?.getSlottedNodes<ISearchSuggestionItem>(\"items\")[0];\n\n\t\tif (this.open) {\n\t\t\tthis._deselectItems();\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\n\t\t\tfirstListItem?.focus();\n\t\t}\n\t}\n\n\t_handleRight(e: KeyboardEvent) {\n\t\tif (this._matchedPerTerm) {\n\t\t\te.preventDefault();\n\t\t\tthis.value = this._typedInValue;\n\t\t\tthis._innerValue = this._typedInValue;\n\t\t\tthis._proposedItem = undefined;\n\t\t}\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\t\tif (this._matchedPerTerm) {\n\t\t\tthis.value = this._proposedItem?.text || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t\tthis._typedInValue = this.value;\n\t\t\tthis._matchedPerTerm = false;\n\t\t}\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\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\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = ((e.currentTarget as HTMLInputElement).value.length > 0) && this._popoupHasAnyContent();\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 isFirstItem = this._flattenItems[0] === e.target;\n\t\tconst isLastItem = this._flattenItems[this._flattenItems.length - 1] === e.target;\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\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\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.open = false;\n\t\tthis.focus();\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 (isRight(e)) {\n\t\t\tthis._handleRight(e);\n\t\t}\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\t}\n\n\t_onfocusout() {\n\t\tsuper._onfocusout();\n\t\tif (this._matchedPerTerm) {\n\t\t\tthis.value = this._typedInValue;\n\t\t\tthis._innerValue = this._typedInValue;\n\t\t}\n\t\tthis._matchedPerTerm = false;\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}\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.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\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._valueBeforeOpen = this.value;\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\t\tconst partialMatches = this._startsWithPerTermMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn partialMatches[0] ?? undefined;\n\t\t}\n\n\t\tif (!partialMatches.length) {\n\t\t\treturn startsWithMatches[0];\n\t\t}\n\n\t\treturn this._flattenItems.indexOf(startsWithMatches[0]) <= this._flattenItems.indexOf(partialMatches[0])\n\t\t\t? startsWithMatches[0]\n\t\t\t: partialMatches[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"]}
|
package/dist/SearchField.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ type SearchFieldScopeSelectionChangeDetails = {
|
|
|
28
28
|
*
|
|
29
29
|
* ### ES6 Module Import
|
|
30
30
|
*
|
|
31
|
-
* `import "@ui5/webcomponents
|
|
31
|
+
* `import "@ui5/webcomponents-fiori/dist/SearchField.js";`
|
|
32
32
|
*
|
|
33
33
|
* @constructor
|
|
34
34
|
* @extends UI5Element
|
|
@@ -50,7 +50,7 @@ declare class SearchField extends UI5Element {
|
|
|
50
50
|
* Defines whether the component is collapsed.
|
|
51
51
|
*
|
|
52
52
|
* @default false
|
|
53
|
-
* @
|
|
53
|
+
* @private
|
|
54
54
|
*/
|
|
55
55
|
collapsed: boolean;
|
|
56
56
|
/**
|
|
@@ -75,11 +75,11 @@ declare class SearchField extends UI5Element {
|
|
|
75
75
|
*/
|
|
76
76
|
accessibleName?: string;
|
|
77
77
|
/**
|
|
78
|
-
* Defines the
|
|
78
|
+
* Defines the accessible ARIA description of the field.
|
|
79
79
|
* @public
|
|
80
80
|
* @default undefined
|
|
81
81
|
*/
|
|
82
|
-
|
|
82
|
+
accessibleDescription?: string;
|
|
83
83
|
/**
|
|
84
84
|
* Defines the component scope options.
|
|
85
85
|
* @public
|
|
@@ -114,6 +114,7 @@ declare class SearchField extends UI5Element {
|
|
|
114
114
|
scope: string;
|
|
115
115
|
searchIcon: string;
|
|
116
116
|
clearIcon: string;
|
|
117
|
+
searchFieldAriaLabel: string;
|
|
117
118
|
};
|
|
118
119
|
get _effectiveIconTooltip(): string;
|
|
119
120
|
captureRef(ref: HTMLElement & {
|
package/dist/SearchField.js
CHANGED
|
@@ -15,7 +15,7 @@ import SearchFieldTemplate from "./SearchFieldTemplate.js";
|
|
|
15
15
|
import SearchFieldCss from "./generated/themes/SearchField.css.js";
|
|
16
16
|
import { isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
17
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, } from "./generated/i18n/i18n-defaults.js";
|
|
18
|
+
import { SEARCH_FIELD_SCOPE_SELECT_LABEL, SEARCH_FIELD_CLEAR_ICON, SEARCH_FIELD_SEARCH_ICON, SEARCH_FIELD_LABEL, } from "./generated/i18n/i18n-defaults.js";
|
|
19
19
|
/**
|
|
20
20
|
* @class
|
|
21
21
|
*
|
|
@@ -31,7 +31,7 @@ import { SEARCH_FIELD_SCOPE_SELECT_LABEL, SEARCH_FIELD_CLEAR_ICON, SEARCH_FIELD_
|
|
|
31
31
|
*
|
|
32
32
|
* ### ES6 Module Import
|
|
33
33
|
*
|
|
34
|
-
* `import "@ui5/webcomponents
|
|
34
|
+
* `import "@ui5/webcomponents-fiori/dist/SearchField.js";`
|
|
35
35
|
*
|
|
36
36
|
* @constructor
|
|
37
37
|
* @extends UI5Element
|
|
@@ -50,7 +50,7 @@ let SearchField = SearchField_1 = class SearchField extends UI5Element {
|
|
|
50
50
|
* Defines whether the component is collapsed.
|
|
51
51
|
*
|
|
52
52
|
* @default false
|
|
53
|
-
* @
|
|
53
|
+
* @private
|
|
54
54
|
*/
|
|
55
55
|
this.collapsed = false;
|
|
56
56
|
/**
|
|
@@ -128,10 +128,11 @@ let SearchField = SearchField_1 = class SearchField extends UI5Element {
|
|
|
128
128
|
scope: SearchField_1.i18nBundle.getText(SEARCH_FIELD_SCOPE_SELECT_LABEL),
|
|
129
129
|
searchIcon: SearchField_1.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON),
|
|
130
130
|
clearIcon: SearchField_1.i18nBundle.getText(SEARCH_FIELD_CLEAR_ICON),
|
|
131
|
+
searchFieldAriaLabel: SearchField_1.i18nBundle.getText(SEARCH_FIELD_LABEL),
|
|
131
132
|
};
|
|
132
133
|
}
|
|
133
134
|
get _effectiveIconTooltip() {
|
|
134
|
-
return this.
|
|
135
|
+
return this._translations.searchIcon;
|
|
135
136
|
}
|
|
136
137
|
captureRef(ref) {
|
|
137
138
|
if (ref) {
|
|
@@ -156,7 +157,7 @@ __decorate([
|
|
|
156
157
|
], SearchField.prototype, "accessibleName", void 0);
|
|
157
158
|
__decorate([
|
|
158
159
|
property()
|
|
159
|
-
], SearchField.prototype, "
|
|
160
|
+
], SearchField.prototype, "accessibleDescription", void 0);
|
|
160
161
|
__decorate([
|
|
161
162
|
slot({ type: HTMLElement, individualSlots: true, invalidateOnChildChange: true })
|
|
162
163
|
], SearchField.prototype, "scopes", void 0);
|
package/dist/SearchField.js.map
CHANGED
|
@@ -1 +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 { 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} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that may be slotted inside a `ui5-search`\n * @public\n */\ninterface ISearchScope extends UI5Element {\n\ttext?: string,\n\tselected: boolean,\n\tstableDomRef: string,\n}\n\ntype SearchFieldScopeSelectionChangeDetails = {\n\tscope: ISearchScope | 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 *\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\tcancelable: true,\n})\n\nclass SearchField extends UI5Element {\n\teventDetails!: {\n\t\tsearch: object,\n\t\tinput: void,\n\t\t\"scope-change\": SearchFieldScopeSelectionChangeDetails,\n\t}\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 collapsed.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = 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 tooltip of the search icon component.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\tsearchIconTooltip?: 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\tscopes!: Array<ISearchScope>;\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_onFocusOutSearch(e: FocusEvent) {} // eslint-disable-line\n\n\t_handleEnter() {\n\t\tif (this.value.length) {\n\t\t\tthis._handleSearchEvent();\n\t\t}\n\t}\n\n\t_handleInnerClick() {} // eslint-disable-line\n\n\t_handleSearchIconPress() {\n\t\tthis._handleSearchEvent();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.focus();\n\t\t}, 0);\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\");\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: ISearchScope };\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.collapsed,\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\tsearchIcon: SearchField.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON),\n\t\t\tclearIcon: SearchField.i18nBundle.getText(SEARCH_FIELD_CLEAR_ICON),\n\t\t};\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\treturn this.searchIconTooltip || this._translations.searchIcon;\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 { ISearchScope, SearchFieldScopeSelectionChangeDetails };\n"]}
|
|
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 { 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_LABEL,\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 ISearchScope extends UI5Element {\n\ttext?: string,\n\tselected: boolean,\n\tstableDomRef: string,\n}\n\ntype SearchFieldScopeSelectionChangeDetails = {\n\tscope: ISearchScope | 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 *\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\tcancelable: true,\n})\n\nclass SearchField extends UI5Element {\n\teventDetails!: {\n\t\tsearch: object,\n\t\tinput: void,\n\t\t\"scope-change\": SearchFieldScopeSelectionChangeDetails,\n\t}\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 collapsed.\n\t *\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = 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 accessible ARIA description of the field.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\taccessibleDescription?: 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\tscopes!: Array<ISearchScope>;\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_onFocusOutSearch(e: FocusEvent) {} // eslint-disable-line\n\n\t_handleEnter() {\n\t\tif (this.value.length) {\n\t\t\tthis._handleSearchEvent();\n\t\t}\n\t}\n\n\t_handleInnerClick() {} // eslint-disable-line\n\n\t_handleSearchIconPress() {\n\t\tthis._handleSearchEvent();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.focus();\n\t\t}, 0);\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\");\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: ISearchScope };\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.collapsed,\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\tsearchIcon: SearchField.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON),\n\t\t\tclearIcon: SearchField.i18nBundle.getText(SEARCH_FIELD_CLEAR_ICON),\n\t\t\tsearchFieldAriaLabel: SearchField.i18nBundle.getText(SEARCH_FIELD_LABEL),\n\t\t};\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\treturn this._translations.searchIcon;\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 { ISearchScope, SearchFieldScopeSelectionChangeDetails };\n"]}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import type SearchField from "./SearchField.js";
|
|
2
|
-
export
|
|
2
|
+
export type SearchFieldTemplateOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* If set to true, the search field will be expanded.
|
|
5
|
+
*/
|
|
6
|
+
forceExpanded?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export default function SearchFieldTemplate(this: SearchField, options?: SearchFieldTemplateOptions): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
|
|
@@ -6,11 +6,11 @@ import Select from "@ui5/webcomponents/dist/Select.js";
|
|
|
6
6
|
import decline from "@ui5/webcomponents-icons/dist/decline.js";
|
|
7
7
|
import search from "@ui5/webcomponents-icons/dist/search.js";
|
|
8
8
|
import ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
|
|
9
|
-
export default function SearchFieldTemplate() {
|
|
10
|
-
return (this.collapsed ? (_jsx(Button, { class: "ui5-shell-search-field-button", icon: search, design: ButtonDesign.Transparent, "data-sap-focus-ref": true, onClick: this._handleSearchIconPress, tooltip: this._effectiveIconTooltip, accessibleName: this._effectiveIconTooltip, accessibilityAttributes: this._searchButtonAccessibilityAttributes })) : (_jsx("div", { class: "ui5-search-field-root", role: "search", onFocusOut: this._onFocusOutSearch, children: _jsxs("div", { class: "ui5-search-field-content", children: [!!this.scopes.length &&
|
|
9
|
+
export default function SearchFieldTemplate(options) {
|
|
10
|
+
return (!options?.forceExpanded && this.collapsed ? (_jsx(Button, { class: "ui5-shell-search-field-button", icon: search, design: ButtonDesign.Transparent, "data-sap-focus-ref": true, onClick: this._handleSearchIconPress, tooltip: this._effectiveIconTooltip, accessibleName: this._effectiveIconTooltip, accessibilityAttributes: this._searchButtonAccessibilityAttributes })) : (_jsx("div", { class: "ui5-search-field-root", role: "search", onFocusOut: this._onFocusOutSearch, children: _jsxs("div", { class: "ui5-search-field-content", children: [!!this.scopes.length &&
|
|
11
11
|
_jsxs(_Fragment, { children: [_jsx(Select, { onChange: this._handleScopeChange, class: "sapUiSizeCompact ui5-search-field-select", accessibleName: this._translations.scope, tooltip: this._translations.scope, children: this.scopes.map(scopeOption => {
|
|
12
12
|
return _jsx(Option, { selected: scopeOption.selected, "data-ui5-stable": scopeOption.stableDomRef, ref: this.captureRef.bind(scopeOption), children: scopeOption.text });
|
|
13
|
-
}, 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, onClick: this._handleInnerClick }), this._effectiveShowClearIcon &&
|
|
13
|
+
}, this) }), _jsx("div", { class: "ui5-search-field-separator" })] }), _jsx("input", { class: "ui5-search-field-inner-input", role: "searchbox", "aria-description": this.accessibleDescription, "aria-label": this.accessibleName || this._translations.searchFieldAriaLabel, value: this.value, placeholder: this.placeholder, "data-sap-focus-ref": true, onInput: this._handleInput, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyDown: this._onkeydown, onClick: this._handleInnerClick }), this._effectiveShowClearIcon &&
|
|
14
14
|
_jsx(Icon, { class: "ui5-shell-search-field-icon", name: decline, showTooltip: true, accessibleName: this._translations.clearIcon, onClick: this._handleClear }), _jsx(Icon, { class: {
|
|
15
15
|
"ui5-shell-search-field-icon": true,
|
|
16
16
|
"ui5-shell-search-field-search-icon": this._isSearchIcon,
|
|
@@ -1 +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,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,YAAY,MAAM,+CAA+C,CAAC;
|
|
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,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,YAAY,MAAM,+CAA+C,CAAC;AASzE,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAoB,OAAoC;IAClG,OAAO,CACN,CAAC,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3C,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,qBAAqB,EACnC,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAC1C,uBAAuB,EAAE,IAAI,CAAC,oCAAoC,GACzD,CACV,CAAC,CAAC,CAAC,CACH,cAAK,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,YAClF,eAAK,KAAK,EAAC,0BAA0B,aACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;oBACpB,8BACC,KAAC,MAAM,IACN,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,KAAK,EAAC,0CAA0C,EAChD,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EACxC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oCAC9B,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,sBACE,IAAI,CAAC,qBAAqB,gBAChC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAC1E,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,EAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB,GAAI,EAEnC,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,qBAAqB,EAC1C,OAAO,EAAE,IAAI,CAAC,sBAAsB,GAC7B,IACH,GACD,CACN,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 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 type SearchFieldTemplateOptions = {\n\t/**\n\t * If set to true, the search field will be expanded.\n\t */\n\tforceExpanded?: boolean;\n};\n\nexport default function SearchFieldTemplate(this: SearchField, options?: SearchFieldTemplateOptions) {\n\treturn (\n\t\t!options?.forceExpanded && this.collapsed ? (\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._effectiveIconTooltip}\n\t\t\t\taccessibleName={this._effectiveIconTooltip}\n\t\t\t\taccessibilityAttributes={this._searchButtonAccessibilityAttributes}\n\t\t\t></Button>\n\t\t) : (\n\t\t\t<div class=\"ui5-search-field-root\" role=\"search\" onFocusOut={this._onFocusOutSearch}>\n\t\t\t\t<div class=\"ui5-search-field-content\">\n\t\t\t\t\t{!!this.scopes.length &&\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 ui5-search-field-select\"\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.scopes.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-description={this.accessibleDescription}\n\t\t\t\t\t\taria-label={this.accessibleName || this._translations.searchFieldAriaLabel}\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\t\t\t\t\t\tonClick={this._handleInnerClick} />\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._effectiveIconTooltip}\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);\n}\n"]}
|
package/dist/SearchItem.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
|
|
|
8
8
|
*
|
|
9
9
|
* ### ES6 Module Import
|
|
10
10
|
*
|
|
11
|
-
* `import "@ui5/webcomponents
|
|
11
|
+
* `import "@ui5/webcomponents-fiori/dist/SearchItem.js";`
|
|
12
12
|
*
|
|
13
13
|
* @constructor
|
|
14
14
|
* @extends ListItemBase
|
package/dist/SearchItem.js
CHANGED
|
@@ -21,7 +21,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
21
21
|
*
|
|
22
22
|
* ### ES6 Module Import
|
|
23
23
|
*
|
|
24
|
-
* `import "@ui5/webcomponents
|
|
24
|
+
* `import "@ui5/webcomponents-fiori/dist/SearchItem.js";`
|
|
25
25
|
*
|
|
26
26
|
* @constructor
|
|
27
27
|
* @extends ListItemBase
|
package/dist/SearchItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchItem.js","sourceRoot":"","sources":["../src/SearchItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,yBAAyB,MAAM,gEAAgE,CAAC;AACvG,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AAmBH,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,YAAY;IAArC;;QAIC;;;WAGG;QAEH,SAAI,GAAG,EAAE,CAAC;QAEV;;;WAGG;QAEH,SAAI,GAAG,EAAE,CAAC;QAEV;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAWjB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;IAsBlB,CAAC;IApBA,UAAU,CAAC,CAAa;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,wBAAwB;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9G,CAAC;CACD,CAAA;AAlDA;IADC,QAAQ,EAAE;wCACD;AAOV;IADC,QAAQ,EAAE;wCACD;AAQV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACX;AAQjB;IADC,QAAQ,EAAE;6CACQ;AAGnB;IADC,QAAQ,EAAE;iDACQ;AAnCd,UAAU;IAlBf,aAAa,CAAC;QACd,GAAG,EAAE,iBAAiB;QACtB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,aAAa;SACb;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,QAAQ,CAAC;GAEV,UAAU,CA2Df;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import { property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport SearchItemTemplate from \"./SearchItemTemplate.js\";\nimport SearchItemCss from \"./generated/themes/SearchItem.css.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search-item` is a list item, used for displaying search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents
|
|
1
|
+
{"version":3,"file":"SearchItem.js","sourceRoot":"","sources":["../src/SearchItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,yBAAyB,MAAM,gEAAgE,CAAC;AACvG,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AAmBH,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,YAAY;IAArC;;QAIC;;;WAGG;QAEH,SAAI,GAAG,EAAE,CAAC;QAEV;;;WAGG;QAEH,SAAI,GAAG,EAAE,CAAC;QAEV;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAWjB,kBAAa,GAAG,EAAE,CAAC;QAEnB,gBAAW,GAAG,EAAE,CAAC;IAsBlB,CAAC;IApBA,UAAU,CAAC,CAAa;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,wBAAwB;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9G,CAAC;CACD,CAAA;AAlDA;IADC,QAAQ,EAAE;wCACD;AAOV;IADC,QAAQ,EAAE;wCACD;AAQV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACX;AAQjB;IADC,QAAQ,EAAE;6CACQ;AAGnB;IADC,QAAQ,EAAE;iDACQ;AAnCd,UAAU;IAlBf,aAAa,CAAC;QACd,GAAG,EAAE,iBAAiB;QACtB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,aAAa;SACb;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,QAAQ,CAAC;GAEV,UAAU,CA2Df;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import { property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport SearchItemTemplate from \"./SearchItemTemplate.js\";\nimport SearchItemCss from \"./generated/themes/SearchItem.css.js\";\nimport generateHighlightedMarkup from \"@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search-item` is a list item, used for displaying search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SearchItem.js\";`\n *\n * @constructor\n * @extends ListItemBase\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search-item\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchItemTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tSearchItemCss,\n\t],\n})\n\n/**\n * Fired when delete button is pressed.\n *\n * @public\n */\n@event(\"delete\")\n\nclass SearchItem extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"delete\": void,\n\t};\n\t/**\n\t * Defines the heading text of the search item.\n\t * @public\n\t */\n\t@property()\n\ttext = \"\";\n\n\t/**\n\t * Defines the icon name of the search item.\n\t * @public\n\t */\n\t@property()\n\ticon = \"\";\n\n\t/**\n\t * Defines whether the search item is selected.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines the scope of the search item\n\t * @default false\n\t * @public\n\t */\n\t@property()\n\tscopeName?: string;\n\n\t@property()\n\thighlightText = \"\";\n\n\t_markupText = \"\";\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\n\t\tthis.selected = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.selected = false;\n\t}\n\n\t_onDeleteButtonClick() {\n\t\tthis.fireDecoratorEvent(\"delete\");\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\t// bold the matched text\n\t\tthis._markupText = this.highlightText ? generateHighlightedMarkup(this.text, this.highlightText) : this.text;\n\t}\n}\n\nSearchItem.define();\n\nexport default SearchItem;\n"]}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type Search from "./Search.js";
|
|
2
|
-
|
|
2
|
+
import type { JsxTemplate } from "@ui5/webcomponents-base/dist/index.js";
|
|
3
|
+
export default function SearchPopoverTemplate(this: Search, headerTemplate?: JsxTemplate): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
|
|
@@ -12,13 +12,13 @@ import InputKeyHint from "@ui5/webcomponents/dist/types/InputKeyHint.js";
|
|
|
12
12
|
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
13
13
|
import ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
|
|
14
14
|
import ListAccessibleRole from "@ui5/webcomponents/dist/types/ListAccessibleRole.js";
|
|
15
|
-
export default function SearchPopoverTemplate() {
|
|
15
|
+
export default function SearchPopoverTemplate(headerTemplate) {
|
|
16
16
|
return (_jsxs(ResponsivePopover, { hideArrow: true, preventFocusRestore: true, preventInitialFocus: !isPhone(), accessibleNameRef: "suggestions-speech-output message-area-text message-area-description", placement: PopoverPlacement.Bottom, horizontalAlign: PopoverHorizontalAlign.Start, open: this.open, opener: this, onOpen: this._handleOpen, onClose: this._handleClose, onBeforeClose: this._handleBeforeClose, onBeforeOpen: this._handleBeforeOpen, class: {
|
|
17
17
|
"ui5-search-popover": true,
|
|
18
18
|
"ui5-search-popover-phone": isPhone(),
|
|
19
|
-
}, children: [isPhone() ? (_jsx(_Fragment, { children: _jsxs("header", { slot: "header", class: "ui5-search-popup-searching-header", children: [_jsx(Input, { class: "ui5-search-popover-search-field", onInput: this._handleMobileInput, showClearIcon: this.showClearIcon, noTypeahead: this.noTypeahead, hint: InputKeyHint.Search, onKeyDown: this._onMobileInputKeydown, children: this._flattenItems.map(item => {
|
|
19
|
+
}, children: [isPhone() ? (headerTemplate ? headerTemplate.call(this) : (_jsx(_Fragment, { children: _jsxs("header", { slot: "header", class: "ui5-search-popup-searching-header", children: [_jsx(Input, { class: "ui5-search-popover-search-field", onInput: this._handleMobileInput, showClearIcon: this.showClearIcon, noTypeahead: this.noTypeahead, hint: InputKeyHint.Search, onKeyDown: this._onMobileInputKeydown, children: this._flattenItems.map(item => {
|
|
20
20
|
return (_jsx(SuggestionItem, { text: item.text }));
|
|
21
|
-
}) }), _jsx(Button, { design: ButtonDesign.Transparent, onClick: this._handleCancel, children: this.cancelButtonText })] }) })) : null, _jsxs("main", { class: "ui5-search-popover-content", children: [_jsx("slot", { name: "messageArea" }), _jsx("div", { class: "search-popover-busy-wrapper", children: _jsx(BusyIndicator, { active: true }) }), this.items.length ?
|
|
21
|
+
}) }), _jsx(Button, { design: ButtonDesign.Transparent, onClick: this._handleCancel, children: this.cancelButtonText })] }) }))) : null, _jsxs("main", { class: "ui5-search-popover-content", children: [_jsx("slot", { name: "messageArea" }), _jsx("div", { class: "search-popover-busy-wrapper", children: _jsx(BusyIndicator, { active: true }) }), this.items.length ?
|
|
22
22
|
_jsx(List, { class: "ui5-search-list", separators: ListSeparator.None, onKeyDown: this._onItemKeydown, accessibleRole: ListAccessibleRole.ListBox, onItemClick: this._onItemClick, children: _jsx("slot", {}) })
|
|
23
23
|
: (_jsx("slot", { name: "illustration" })), _jsx("span", { class: "ui5-hidden-text", id: "suggestions-speech-output", children: this.suggestionsText }), this.messageArea[0]?.text ? (_jsx("span", { class: "ui5-hidden-text", id: "message-area-text", children: this.messageArea[0].text })) : null, this.messageArea[0]?.description ? (_jsx("span", { class: "ui5-hidden-text", id: "message-area-description", children: this.messageArea[0].description })) : null] }), this.action.length ? (_jsx("slot", { onKeyDown: this._handleActionKeydown, name: "action", slot: "footer" })) : null] }));
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPopoverTemplate.js","sourceRoot":"","sources":["../src/SearchPopoverTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,MAAM,8CAA8C,CAAC;AAE7E,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,aAAa,MAAM,gDAAgD,CAAC;AAC3E,OAAO,sBAAsB,MAAM,yDAAyD,CAAC;AAC7F,OAAO,gBAAgB,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,KAAK,MAAM,kCAAkC,CAAC;AACrD,OAAO,cAAc,MAAM,2CAA2C,CAAC;AACvE,OAAO,YAAY,MAAM,+CAA+C,CAAC;AACzE,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,YAAY,MAAM,+CAA+C,CAAC;AACzE,OAAO,kBAAkB,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchPopoverTemplate.js","sourceRoot":"","sources":["../src/SearchPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type Search from \"./Search.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListSeparator from \"@ui5/webcomponents/dist/types/ListSeparator.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Input from \"@ui5/webcomponents/dist/Input.js\";\nimport SuggestionItem from \"@ui5/webcomponents/dist/SuggestionItem.js\";\nimport InputKeyHint from \"@ui5/webcomponents/dist/types/InputKeyHint.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ButtonDesign from \"@ui5/webcomponents/dist/types/ButtonDesign.js\";\nimport ListAccessibleRole from \"@ui5/webcomponents/dist/types/ListAccessibleRole.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\n\nexport default function SearchPopoverTemplate(this: Search, headerTemplate?: JsxTemplate) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\thideArrow={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\tpreventInitialFocus={!isPhone()}\n\t\t\taccessibleNameRef=\"suggestions-speech-output message-area-text message-area-description\"\n\t\t\tplacement={PopoverPlacement.Bottom}\n\t\t\thorizontalAlign={PopoverHorizontalAlign.Start}\n\t\t\topen={this.open}\n\t\t\topener={this}\n\t\t\tonOpen={this._handleOpen}\n\t\t\tonClose={this._handleClose}\n\t\t\tonBeforeClose={this._handleBeforeClose}\n\t\t\tonBeforeOpen={this._handleBeforeOpen}\n\t\t\tclass={{\n\t\t\t\t\"ui5-search-popover\": true,\n\t\t\t\t\"ui5-search-popover-phone\": isPhone(),\n\t\t\t}}\n\t\t>\n\n\t\t\t{isPhone() ? (headerTemplate ? headerTemplate.call(this) : (\n\t\t\t\t<>\n\t\t\t\t\t<header slot=\"header\" class=\"ui5-search-popup-searching-header\">\n\t\t\t\t\t\t<Input class=\"ui5-search-popover-search-field\" onInput={this._handleMobileInput} showClearIcon={this.showClearIcon} noTypeahead={this.noTypeahead} hint={InputKeyHint.Search} onKeyDown={this._onMobileInputKeydown}>\n\t\t\t\t\t\t\t{this._flattenItems.map(item => {\n\t\t\t\t\t\t\t\treturn (<SuggestionItem text={item.text}></SuggestionItem>);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t<Button design={ButtonDesign.Transparent} onClick={this._handleCancel}>{this.cancelButtonText}</Button>\n\t\t\t\t\t</header>\n\t\t\t\t</>\n\t\t\t)) : null }\n\n\t\t\t<main class=\"ui5-search-popover-content\">\n\t\t\t\t<slot name=\"messageArea\"></slot>\n\t\t\t\t<div class=\"search-popover-busy-wrapper\">\n\t\t\t\t\t<BusyIndicator active={true}></BusyIndicator>\n\t\t\t\t</div>\n\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t<List\n\t\t\t\t\t\tclass=\"ui5-search-list\"\n\t\t\t\t\t\tseparators={ListSeparator.None}\n\t\t\t\t\t\tonKeyDown={this._onItemKeydown}\n\t\t\t\t\t\taccessibleRole={ListAccessibleRole.ListBox}\n\t\t\t\t\t\tonItemClick={this._onItemClick}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t\t: (\n\t\t\t\t\t\t<slot name=\"illustration\"></slot>\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t<span class=\"ui5-hidden-text\" id=\"suggestions-speech-output\">{this.suggestionsText}</span>\n\t\t\t\t{this.messageArea[0]?.text ? (<span class=\"ui5-hidden-text\" id=\"message-area-text\">{this.messageArea[0].text}</span>) : null}\n\t\t\t\t{this.messageArea[0]?.description ? (<span class=\"ui5-hidden-text\" id=\"message-area-description\">{this.messageArea[0].description}</span>) : null}\n\t\t\t</main>\n\n\t\t\t{this.action.length ? (<slot onKeyDown={this._handleActionKeydown} name=\"action\" slot=\"footer\"></slot>) : null}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
|
package/dist/ShellBar.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import type { ListItemClickEventDetail } from "@ui5/webcomponents/dist/List.js";
|
|
3
3
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
4
|
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
5
|
+
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
5
6
|
import type Input from "@ui5/webcomponents/dist/Input.js";
|
|
6
7
|
import type { IButton } from "@ui5/webcomponents/dist/Button.js";
|
|
7
8
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
-
import type { ClassMap, AccessibilityAttributes, AriaRole } from "@ui5/webcomponents-base";
|
|
9
|
+
import type { ClassMap, AccessibilityAttributes, AriaRole, UI5CustomEvent } from "@ui5/webcomponents-base";
|
|
9
10
|
import type ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
|
|
10
11
|
import type PopoverHorizontalAlign from "@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js";
|
|
11
12
|
import type ShellBarItem from "./ShellBarItem.js";
|
|
@@ -64,7 +65,7 @@ interface IShelBarItemInfo extends IShellBarHidableItem {
|
|
|
64
65
|
title?: string;
|
|
65
66
|
stableDomRef?: string;
|
|
66
67
|
refItemid?: string;
|
|
67
|
-
press: (e:
|
|
68
|
+
press: (e: UI5CustomEvent<Button, "click">) => void;
|
|
68
69
|
order?: number;
|
|
69
70
|
profile?: boolean;
|
|
70
71
|
tooltip?: string;
|
|
@@ -359,12 +360,12 @@ declare class ShellBar extends UI5Element {
|
|
|
359
360
|
onExitDOM(): void;
|
|
360
361
|
_handleSearchIconPress(): void;
|
|
361
362
|
_handleActionListClick(): Promise<void>;
|
|
362
|
-
_handleCustomActionPress(e:
|
|
363
|
+
_handleCustomActionPress(e: UI5CustomEvent<Button, "click">): void;
|
|
363
364
|
_handleOverflowPress(): void;
|
|
364
|
-
_handleNotificationsPress(e:
|
|
365
|
+
_handleNotificationsPress(e: UI5CustomEvent<Button, "click">): void;
|
|
365
366
|
_handleProfilePress(): void;
|
|
366
367
|
_handleCancelButtonPress(): void;
|
|
367
|
-
_handleProductSwitchPress(e:
|
|
368
|
+
_handleProductSwitchPress(e: UI5CustomEvent<Button, "click">): void;
|
|
368
369
|
/**
|
|
369
370
|
* Returns the `logo` DOM ref.
|
|
370
371
|
* @public
|