// For Library Version: 1.149.0 declare namespace sap { /** * SAP library: sap.ushell * * @since 1.15.0 */ namespace ushell { /** * Initializes the Unified Shell Container. * * This platform-specific method must be called exactly once in the very beginning to resolve all necessary * dependencies and prepare Unified Shell's global infrastructure. As soon as the returned promise has been * resolved, the container will be available as a singleton object in namespace `sap.ushell.Container`. * * **Note:** `sap.ushell.bootstrap` is used internally by the SAP Fiori launchpad. Developers who build * apps or plugins for the SAP Fiori launchpad should use `sap.ushell.bootstrap` in their code. However, * there are special use cases where a customized bootstrap of Unified Shell is helpful, e.g. when Unified * Shell UI services need to be accessed without having loaded the Unified Shell's UI. In such cases, additional * dependencies need to be required to allow proper usage of the Unified Shell's functionality. * * **Example:** * ```javascript * * * * * * * ``` * * * @since 1.15.0 * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves once the container is available. */ function bootstrap( /** * the target platform, such as "abap" or "cdm". */ sPlatform: string, /** * the map with platform specific package names for the service adapters. You only need to specify these * package names if they differ from the standard name `"sap.ushell.adapters." + sPlatform`. */ mAdapterPackagesByPlatform?: Record ): jQuery.Promise; /** * Default namespace for Unified Shell services. * See: * sap.ushell.Container.getServiceAsync * * @since 1.15.0 */ namespace services { namespace AppConfiguration { /** * Type for the metadata object for AppConfiguration * * @since 1.120.0 */ type Metadata = { /** * The title of the application */ title: string; /** * The library of the application */ library: string; /** * The version of the application */ version: string; /** * A Boolean value indicating if the application fills the full width of the screen */ fullWidth: boolean; }; } namespace AppLifeCycle { /** * Defines the current application. This object is only valid until the next application navigation. Fetch * it again from the AppLifeCycle service in the appLoaded event. * * @since 1.120.0 */ class CurrentApplication { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * The type of the current application. * * @since 1.120.0 */ applicationType: sap.ushell.services.AppLifeCycle.ApplicationType; /** * Reference to component. Only available for applicationType "UI5" * * @since 1.120.0 */ componentInstance: sap.ui.core.Component | null; /** * `true` when root intent (normally #Shell-home) or Appfinder (#Shell-appfinder) is currently displayed. * * @since 1.120.0 */ homePage: boolean; /** * A function to collect the values of the given parameters * * @since 1.120.0 * * @returns Resolves to an object keeping the application info parameters with values */ getInfo( /** * Array of requested parameters */ aParameterNames: sap.ushell.services.AppLifeCycle.AppInfoParameterName[] ): Promise; /** * See {@link sap.ushell.services.URLParsing#parseShellHash} for details. This method is for SAP-internal * use only! * * @since 1.120.0 * * @returns A promise that resolves with the intent of the current application */ getIntent( /** * If set to true, the intent is extracted from the real application URL in case of a remote app */ bRealAppIntent: boolean ): Promise; /** * function that returns the value of a technical parameter for the given application. This method is for * SAP internal usage only. * * @since 1.120.0 * * @returns A promise that resolves with the value of the technical parameter */ getTechnicalParameter( /** * The name of the technical parameter */ sParameterName: string ): Promise; } /** * Enumeration of application info parameter names. * * @since 1.120.0 */ enum AppInfoParameterName { /** * ID of the framework */ appFrameworkId = "appFrameworkId", /** * Version of the framework */ appFrameworkVersion = "appFrameworkVersion", /** * Universal stable logical identifier of the application across the whole content. */ appId = "appId", /** * Intent that was used to launch the application (including parameters) */ appIntent = "appIntent", /** * The name of an organizational component that handles support incidents. */ appSupportInfo = "appSupportInfo", /** * Version of the app */ appVersion = "appVersion", /** * Current Language (BCP47 format) */ languageTag = "languageTag", /** * A human readable free form text maintained on the platform where FLP runs, and identifying the current * product. */ productName = "productName", /** * Identifier of the component that implements the base application. */ technicalAppComponentId = "technicalAppComponentId", /** * Current FLP theme. Includes the path to the theme resources if the theme is not an sap theme (does not * start with sap_) */ theme = "theme", /** * The transaction code which not always available and therefore can be undefined. */ transaction = "transaction", } /** * Enumeration of application types. * * @since 1.120.0 */ enum ApplicationType { /** * The application is starting using the SAP Business Client. */ NWBC = "NWBC", /** * The application is started using a transaction */ TR = "TR", /** * The application is a UI5 application. */ UI5 = "UI5", /** * The application is started using a URL */ URL = "URL", /** * The application is a Webdynpro application. */ WDA = "WDA", } /** * Defines the application info. Key-value pairs of application info parameters and their values. * * @since 1.120.0 */ type AppInfo = Record; } namespace Bookmark { /** * A content node may be: - a classic home page group - an unselectable node (space) or a selectable node * (page) in spaces mode - or any other containers in the future * * @deprecated As of version 1.119. because it is part of the deprecated package sap.ushell.services.Bookmark */ type ContentNode = { /** * ID of the content node */ id: string; /** * Human-readable representation of a content node which can be displayed in a control */ label: string; /** * Specifies the content node type. E.g: space, page, group, etc. See {@link sap.ushell.sap.ushell.services.Bookmark.ContentNodeType} */ type: sap.ushell.ContentNodeType; /** * Specifies if a bookmark can be added */ isContainer: boolean; /** * Specifies sub-nodes */ children?: sap.ushell.services.Bookmark.ContentNode[]; }; } namespace BookmarkV2 { /** * Type for data source object. Metadata for parameter serviceUrl. Mandatory to specify if parameter serviceURL * contains semantic date ranges. This does not influence the data source of the app itself. * * Specify the data source as follows: * ```javascript * * { * type: "OData", * settings: { * odataVersion: "4.0" * } * } * ``` * * * * type: The type of the serviceURL's service. Only "OData" is supported. odataVersion: The OData version * of parameter serviceURL. Valid values are "2.0" and "4.0". * * @since 1.121.0 */ type BookmarkParameters = { /** * The type of the serviceURL's service. Only "OData" is supported. */ type: string; /** * The settings for the data source. */ settings: { x: any; }; /** * The title of the bookmark. */ title: string; /** * The URL of the bookmark. The target intent or URL of the bookmark. If the target app runs in the current * shell, the URL has to be a valid intent, i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. */ url: /* was: sap.ushell.services.navigation.TargetIntent */ | any | sap.ui.core.URI; /** * The optional icon URL of the bookmark (e.g. `"sap-icon://home"`). */ icon?: string; /** * The optional information text of the bookmark. */ info?: string; /** * The optional subtitle of the bookmark. */ subtitle?: string; /** * The URL to a REST or OData service that provides some dynamic information for the bookmark. The URL to * a REST or OData service that provides some dynamic information for the bookmark. * * **Semantic Date Ranges:** * * You can use placeholders for dynamic dates in the query parameters of the service URL. This can be used * to create KPI tiles based on user entries in control {@link sap.m.DynamicDateRange}, where it is possible * to specify dynamic dates like YESTERDAY or THISYEAR. * * The placeholder format looks like this: {Edm.%%DynamicDate....%%} * * * - : The Edm Type of the parameter. Supported types are String, DateTime and DateTimeOffset * for OData V2 and Date and DateTimeOffset for OData V4. * - , , : Possible values are the ones that can be used in * {@link sap.m.DynamicDateRange#toDates} to create a date range. * - : Possible values are 'start' and 'end' which mark the start or end of the interval * specified by the operator. * * Examples: * - /a/url/$count?$filter=(testDate ge {Edm.DateTimeOffset%DynamicDate.YESTERDAY.start%} and testDate * le {Edm.DateTimeOffset%DynamicDate.YESTERDAY.end%}) * - /a/url/$count?$filter=(testDate ge {Edm.DateTime%DynamicDate.THISYEAR.start%} and testDate le {Edm.DateTime%DynamicDate.THISYEAR.end%}) * * - /a/url/$count?$filter=(testDate ge {Edm.Date%DynamicDate.TODAYFROMTO.1.5.start%} and testDate le * {Edm.Date%DynamicDate.TODAYFROMTO.1.5.end%}) * * Hint: Check the debug log when displaying the resulting KPI tiles to get more information about the resolution * of the placeholders. */ serviceUrl?: sap.ui.core.URI; /** * Metadata for parameter serviceUrl. Mandatory to specify if parameter serviceURL contains semantic date * ranges. */ dataSource?: /* was: sap.ushell.services.BookmarkV2.DataSource */ any; /** * The refresh interval for the `serviceUrl` in seconds. */ serviceRefreshInterval?: string; /** * The unit for the number retrieved from `serviceUrl`. */ numberUnit?: string; }; /** * A tree of content nodes. * * @since 1.121.0 */ type ContentNode = { /** * ID of the content node */ id: string; /** * Human-readable representation of a content node which can be displayed in a control */ label: string; /** * Specifies the content node type. E.g: space, page, etc. */ type: sap.ushell.ContentNodeType; /** * Specifies if a bookmark can be added */ isContainer: boolean; /** * Specifies sub-nodes */ children?: sap.ushell.services.BookmarkV2.ContentNode[]; }; } namespace Extension { /** * Item wrapping an item positioned in an extension point. To be instantiated by {@link sap.ushell.services.Extension}. * * The item will be automatically destroyed when the user navigates away from the current application. * After calling {@link sap.ushell.services.Extension.Item#showOnHome} or {@link sap.ushell.services.Extension.Item#showForAllApps } * the item is not destroyed automatically and has to be destroyed manually via {@link sap.ushell.services.Extension.Item#destroy}. * * @since 1.120.0 */ class Item { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Destroys the item and it's related content. * * @since 1.120.0 * * @returns Resolves once the item was destroyed. */ destroy(): Promise; /** * Hides the item for all applications. Does not change the visibility of the item for the launchpad "home". * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ hideForAllApps(): this; /** * Hides the item for the current application. * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ hideForCurrentApp(): this; /** * Hides the item for launchpad "home". Does not change the visibility of the item within applications. * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ hideOnHome(): this; /** * Shows the item for all applications. Does not change the visibility of the item for the launchpad "home". * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ showForAllApps(): this; /** * Shows the item for the current application. The item will be hidden after the user navigates away from * this application. The item will not be added again if the user navigates back to the application. * Exception: Apps which are using the keep alive feature. There the visibility is restored together with * the app. * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ showForCurrentApp(): this; /** * Shows the item for launchpad "home". Does not change the visibility of the item within applications. * * @since 1.120.0 * * @returns Reference to `this` for method chaining. */ showOnHome(): this; } } namespace FrameBoundExtension { /** * The footer extension point is positioned below the launchpad content. To be instantiated by {@link sap.ushell.services.FrameBoundExtension}. * * **Restriction:** Does not work when called from within a iframe. The calling function has to be in * the 'same frame' as the launchpad itself. * * @since 1.124.0 */ class Footer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Destroys the footer. * * @since 1.124.0 * * @returns Resolves once the footer was destroyed. */ destroy(): Promise; /** * Returns the related control instance. * * @since 1.124.0 * * @returns The control. */ getControl(): Promise; } /** * Item wrapping an item positioned in an extension point. To be instantiated by {@link sap.ushell.services.FrameBoundExtension}. * * The item will be automatically destroyed when the user navigates away from the current application. * After calling {@link sap.ushell.services.Extension.Item#showOnHome} or {@link sap.ushell.services.Extension.Item#showForAllApps } * the item is not destroyed automatically and has to be destroyed manually via {@link sap.ushell.services.Extension.Item#destroy}. * * **Restriction:** Does not work when called from within a iframe. The calling function has to be in * the 'same frame' as the launchpad itself. * * @since 1.124.0 */ class Item { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Destroys the item and it's related content. * * @since 1.124.0 * * @returns Resolves once the item was destroyed. */ destroy(): Promise; /** * Returns the related control instance. * * @since 1.124.0 * * @returns The control. */ getControl(): Promise; /** * Hides the item for all applications. Does not change the visibility of the item for the launchpad "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideForAllApps(): this; /** * Hides the item for the current application. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideForCurrentApp(): this; /** * Hides the item for launchpad "home". Does not change the visibility of the item within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideOnHome(): this; /** * Shows the item for all applications. Does not change the visibility of the item for the launchpad "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showForAllApps(): this; /** * Shows the item for the current application. The item will be hidden after the user navigates away from * this application. The item will not be added again if the user navigates back to the application. * Exception: Apps which are using the keep alive feature. There the visibility is restored together with * the app. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showForCurrentApp(): this; /** * Shows the item for launchpad "home". Does not change the visibility of the item within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showOnHome(): this; } /** * The side pane extension point is positioned next the launchpad content. To be instantiated by {@link sap.ushell.services.FrameBoundExtension}. * * **Restriction:** Does not work when called from within a iframe. The calling function has to be in * the 'same frame' as the launchpad itself. * * @since 1.124.0 */ class SidePane { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates an item in the side pane. * * The `controlType` can be any control and is by default a {@link sap.m.Button}. The `controlProperties` * are passed to the constructor of the control. * * @since 1.124.0 * * @returns The newly created item. */ createItem( /** * The properties that will be passed to the created control. */ controlProperties: object, /** * Additional parameters. */ parameters?: { /** * Defines the `controlType` of the item. */ controlType?: string; } ): Promise; /** * Hides the side pane for all applications. Does not change the visibility of the side pane for the launchpad * "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideForAllApps(): this; /** * Hides the side pane for launchpad "home". Does not change the visibility of the side pane within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideOnHome(): this; /** * Shows the side pane for all applications. Does not change the visibility of the side pane for the launchpad * "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showForAllApps(): this; /** * Shows the side pane for launchpad "home". Does not change the visibility of the side pane within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showOnHome(): this; } /** * The tool area extension point is positioned next the launchpad content. To be instantiated by {@link sap.ushell.services.FrameBoundExtension}. * * **Restriction:** Does not work when called from within a iframe. The calling function has to be in * the 'same frame' as the launchpad itself. * * @since 1.124.0 */ class ToolArea { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates an item in the tool area. * See: * sap.ushell.ui.shell.ToolAreaItem * * @since 1.124.0 * * @returns The newly created item. */ createItem( /** * The properties that will be passed to the {@link sap.ushell.ui.shell.ToolAreaItem}. */ controlProperties: object ): Promise; /** * Hides the tool area for all applications. Does not change the visibility of the tool area for the launchpad * "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideForAllApps(): this; /** * Hides the tool area for launchpad "home". Does not change the visibility of the tool area within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ hideOnHome(): this; /** * Shows the tool area for all applications. Does not change the visibility of the tool area for the launchpad * "home". * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showForAllApps(): this; /** * Shows the tool area for launchpad "home". Does not change the visibility of the tool area within applications. * * @since 1.124.0 * * @returns Reference to `this` for method chaining. */ showOnHome(): this; } /** * The UserSettingsEntry defines an entry in the user settings dialog. To be instantiated by {@link sap.ushell.services.FrameBoundExtension}. * * **Restriction:** Does not work when called from within an iframe. The calling function has to be in * the 'same frame' as the launchpad itself. * * @since 1.134.0 */ class UserSettingsEntry { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Opens the user settings entry. * * The dialog is opened and then navigated to the new entry. If a group is available, the function navigates * to the group and entry (tab). * * @since 1.134.0 */ open(): void; } } namespace Navigation { /** * Optional properties may not be present in the link. */ type Link = { /** * The intent: for example "#AnObject-Action?A=B&C=e&C=j" * **Note:** The intent is in a **internal** format and cannot be directly put into a link tag. */ intent: string; /** * The title of the link. */ text: string; /** * A URI to the icon: for example "sap-icon://Fiori2/F0018". */ icon?: sap.ui.core.URI; /** * The short title of the link. */ subTitle?: string; /** * The short title of the link. */ shortTitle?: string; /** * The list of tags. */ tags?: string[]; }; type LinkFilter = { /** * Matches the semantic object of a link. */ semanticObject?: string; /** * Matches the action object of a link. */ action?: string; /** * Matches the parameters of a link. * **Simple format:** * * * ```javascript * * { * P1: "B", * P2: ["e", "j"] * } * ``` * * * **Extended format:** * * * ```javascript * * { * P1: { value: "v1" }, * P2: { value: ["v2", "v3"] }, * P3: { value: "v4", required: true } * } * ``` * * * `required`: Whether the parameter is be required (`true`) or not (`false`) in the signature of the matching * target. Note that this option is only effective on platforms using the `sap.ushell.services.ClientSideTargetResolution` */ params?: object; /** * If `true`, matches only links that use at least one (non sap-) parameter from 'params'. */ withAtLeastOneUsedParam?: boolean; /** * How the matching links should be sorted. Possible Values: * - `"intent"` lexicographical sort on returned 'intent' field * - `"text"` lexicographical sort on returned 'text' field * - `"priority"` top intents are returned first */ sortResultsBy?: string; /** * If true, only apps that match exactly the supplied technology (for example sap-ui-tech-hint=WDA) will * be considered. */ treatTechHintAsFilter?: boolean; /** * The UI5 component invoking the service, shall be a root component. */ ui5Component: sap.ui.core.Component; /** * **SAP internal usage only** Application state key to add to the generated links. */ appStateKey?: string; /** * Whether intents should be returned in compact format. */ compactIntents?: boolean; /** * Matches only links which match an inbound with certain tags. */ tags?: string[]; }; /** * A target describing the intent: #-~?&/ * **Note:** The intent shall not exceed 512 bytes when serialized as UTF-8. */ type Target = { /** * Defaults to current hash. Note that the only the `appSpecificRoute` will be considered when target is * omitted. */ target?: { /** * The semanticObject part of the intent. */ semanticObject?: string; /** * The action part of the intent. */ action?: string; /** * The contextRaw part of the intent without the '~' prefix. */ contextRaw?: string; /** * The entire intent including parameters and appSpecificRoute. * **Note:** If set all other parameters are ignored. * **Note:** While parameters need to be url-encoded once when used in the `shellHash` the app specific * route must not be encoded. */ shellHash?: string; }; /** * The parameters of the target * **Simple format:** * * * ```javascript * * { * P1: "B", * P2: ["e", "j"] * } * ``` * * * **Extended format:** * * * ```javascript * * { * P1: { value: "v1" }, * P2: { value: ["v2", "v3"] } * } * ``` * * * * * * **Note:** Parameter values can contain special characters and must be provided unencoded. The APIs takes * care of the necessary encodings. */ params?: object; /** * The appSpecificRoute without the '&/' prefix. */ appSpecificRoute?: string; /** * Wether the parameter provided in `params` should be applied or ignored. Parameters already set by the * shellHash are ignored. */ processParams?: boolean; }; /** * The target intent. * * Navigation is encoded in the fragment identifier of the URL within FLPthe URL has to be a valid intent, * i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. The generic syntax consists of the semantic * object, the action and an optional part: * ```javascript * Intent = "#" semanticObject "-" action ["?" intentParameters "&/" innerAppRoute + "?" + innerAppRouteParameters]``` * The intent comprises of the following parts: * semanticObject: Semantic object as defined in an app launcher tile. The following characters are allowed: * uppercase letters [A-Z], lowercase letters [a-z], numbers [0-9]. The first character must be an uppercase * or lowercase letter. The length of the semantic object is limited to 30 characters. * * * - action: Action as defined in an app launcher tile. For the action name, choose a verb or a short * phrase starting with lower case and without blanks. Examples are display, create, or release. The following * characters are allowed: uppercase letters [A-Z], lowercase letters [a-z], numbers [0-9] and underscores * [_]. The first character must be an uppercase or lowercase letter or an underscore. The length of the * action is limited to 50 characters. * - intentParameters: Intent parameters are optional parameters. The parameters are separated by the * ampersand character (&). The parameter name and value are separated by the equal sign (=). The parameter * value must be URL-encoded. When navigating via Intent Based Navigation (IBN) the intent parameters are * used to determine the target application. * - innerAppRoute: The inner app route is an optional parameter that is used to navigate within the target * application. The inner app route is separated from the intent parameters by the "&/". * - innerAppRouteParameters: The inner app route parameters are optional parameters that are passed to * the target application. The parameters are separated by the ampersand character (&). The parameter name * and value are separated by the equal sign (=). The parameter value must be URL-encoded. * * @since 1.121.0 */ type TargetIntent = string; /** * The target intent in strict format. same as {@link sap.ushell.services.Navigation.TargetIntent} but with * the following restriction: The intent must not start with a hash character (#). * * @since 1.124.0 */ type TargetIntentStrict = string; } namespace NotificationsV2 { /** * Enumeration for The nature of the notification * * This enum is part of the 'sap/ushell/services/NotificationsV2' module export and must be accessed by * the property 'Nature'. * * @since 1.120.0 */ enum Nature { /** * The Negative nature. */ NEGATIVE = "NEGATIVE", /** * The Neutral nature. */ NEUTRAL = "NEUTRAL", /** * The Positive nature. */ POSITIVE = "POSITIVE", } /** * Enumeration for the priority of a notification * * This enum is part of the 'sap/ushell/services/NotificationsV2' module export and must be accessed by * the property 'Priority'. * * @since 1.120.0 */ enum Priority { /** * High priority. */ HIGH = "HIGH", /** * Low priority. */ LOW = "LOW", /** * Medium priority. */ MEDIUM = "MEDIUM", } /** * Type for Action * * @since 1.120.0 */ type Action = { /** * The ID of the action */ ActionId: string; /** * The text of the action */ ActionText: string; /** * The group action text */ GroupActionText: string; /** * The nature of the action */ Nature: sap.ushell.services.NotificationsV2.Nature; }; /** * Type for Actor * * @since 1.120.0 */ type Actor = { /** * The ID of the actor */ Id: string; /** * The display text of the actor */ DisplayText: string; /** * The image source of the actor */ ImageSource: string; }; /** * Type for executeBulkAction * * @since 1.120.0 */ type BulkAction = { /** * Indicates whether the notification should be deleted after the action is executed */ DeleteOnReturn: boolean; /** * Indicates whether the action was executed successfully */ Success: boolean; /** * The ID of the notification */ NotificationId: string; }; /** * Type for the notification item * * @since 1.120.0 */ type NotificationItem = { /** * The ID of the notification. */ Id: string; /** * The ID of the origin, can be a combination of system and client or the value `LOCAL`. */ OriginId: string; /** * The date and time the notification was created. */ CreatedAt: string; /** * Indicates whether the notification is actionable. */ IsActionable: boolean; /** * Indicates whether the notification has been read. */ IsRead: boolean; /** * Indicates whether the notification can be grouped. */ IsGroupable: boolean; /** * Indicates whether the notification is a group header. */ IsGroupHeader: boolean; /** * The action to be executed when the notification is clicked. */ NavigationTargetAction: string; /** * The object to be navigated to when the notification is clicked. */ NavigationTargetObject: string; /** * The intent for navigation when the notification is clicked. */ NavigationIntent: string; /** * The ID for the notification type specified in `NotificationTypeKey`. */ NotificationTypeId: string; /** * The key of the notification type. */ NotificationTypeKey: string; /** * The ID of the parent notification. */ ParentId: string; /** * The priority of the notification. */ Priority: sap.ushell.services.NotificationsV2.Priority; /** * The sensitive text of the notification. */ SensitiveText: string; /** * The text of the notification. */ Text: string; /** * The header text of the notification group. */ GroupHeaderText: string; /** * The number of notifications. */ NotificationCount: number; /** * The subtitle of the notification. */ SubTitle: string; /** * The description of the notification type. */ NotificationTypeDesc: string; /** * The actor of the notification. */ Actor: sap.ushell.services.NotificationsV2.Actor; /** * The navigation target parameters of the notification. */ NavigationTargetParams: sap.ushell.services.NotificationsV2.NotificationTargetParameter[]; /** * The actions of the notification. */ Actions: sap.ushell.services.NotificationsV2.Action[]; }; /** * Type for notification target parameters. * * @since 1.120.0 */ type NotificationTargetParameter = { /** * The ID of the notification. */ NotificationId: string; /** * The key of the notification target parameter. */ Key: string; /** * The value of the notification target parameter. */ Value: string; }; } namespace Personalization { /** * The container is the anchor object of the unified shell personalization in container mode. * * To be called by the personalization service getContainer method. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer } * instead. */ class ContextContainer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Returns an array with all internal keys of direct items in the container. * * @since 1.22.0 * @deprecated As of version 1.120. Deprecated without successor. This internal method should not be used. * * @returns item keys */ _getInternalKeys(): string[]; /** * clears the local copy data of this container * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#clearData } * instead. */ clear(): void; /** * Checks if a specific direct item is contained in the container. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#containsItem } * instead. * * @returns true if the container contains a direct item with the key */ containsItem( /** * item key */ sItemKey: string ): boolean; /** * Deletes a direct item from the container. In case the item does not exist, nothing happens. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#deleteItem } * instead. */ delItem( /** * item key */ sItemKey: string ): void; /** * flush all pending request; The result of the promise may reflect the last pending operation in the queue * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#flushPendingRequests } * instead. * * @returns Resolves once the requests were flushed. */ flush(): jQuery.Promise; /** * Returns an array with the keys of direct items in the container. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#getItemKeys } * instead. * * @returns item keys */ getItemKeys(): string[]; /** * Returns the value for a direct item from the container. (Value semantics, new copy is returned) * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#getItemValue } * instead. * * @returns item value (JSON object). In case the container does not contain a direct item with this key * `undefined` is returned. */ getItemValue( /** * item key */ sItemKey: string ): object; /** * return the container key as a string variable * * @since 1.28.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#getKey } * instead. * * @returns the container key */ getKey(): string; /** * Return an instance unmodifiable container instance. There is one instance of this wrapper per container. * It will permit all read accesses to the container, but block all modifying accesses. * * @since 1.28.0 * @deprecated As of version 1.120. Deprecated without successor. * * @returns unmodifiable wrapper instance */ getUnmodifiableContainer(): object; /** * return the validity of this container only for testing! * * @since 1.22.0 * @deprecated As of version 1.31. Support for this function has been discontinued. * * @returns the scope validity. */ getValidity(): int; /** * (Re)loads the current container data from the underlying storage asynchronously. The current local data * is discarded. * * Returns a promise for the load operation. If another save/load/delete operation is not completed, the * operation may fail! (wait for the other promise). * * Synchronous read and write operations before the load is done have undefined effects. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#load } * instead. * * @returns Resolves once the context container is loaded. */ load(): jQuery.Promise; /** * Attempts to save the current container data at the underlying storage asynchronously. The current state * is serialized. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#save } * instead. * * @returns Resolves once the container is saved. * * If another save/load/delete operation is not completed, the operation may fail! (wait for the other promise). */ save(): jQuery.Promise; /** * Save the current container data at the underlying storage asynchronously at the earliest nDelayInMilliseconds * seconds before. The current state is serialized. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#save } * instead. * * @returns Resolves once the container is saved. * * The operation may wait for completion of another pending operation. */ saveDeferred( /** * the delay in milliseconds. */ nDelayInMilliseconds: int ): jQuery.Promise; /** * Sets the value of a direct item in the container. In case the item is already existing its value is overwritten. * In case it is not existing a new item with this key and value is created. The value is serialized during * set * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.ContextContainer#setItemValue } * instead. */ setItemValue( /** * item key The string length is restricted to 40 characters */ sItemKey: string, /** * item value (JSON object) */ oItemValue: object ): void; } /** * The personalization container is the anchor object of the unified shell personalization in container * mode. * * To be called by the personalization service getPersonalizationContainer method. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Personalization#getContainer } * instead. */ class PersonalizationContainer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); } /** * The personalization variant contains personalization data. It is used in the personalization container * mode. * * To be called by the personalization variant set. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Personalization#getContainer } * instead. */ class PersonalizationContainerVariant { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Checks if a specific item is contained in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#containsItem } * instead. * * @returns true if the variant contains an item with the key */ containsItem( /** * item key */ sItemKey: string ): boolean; /** * Deletes an item from this variant. In case the item does not exist, nothing happens. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#deleteItem } * instead. * * @returns whether the key was removed. */ delItem( /** * item key */ sItemKey: string ): boolean; /** * Returns an array with the keys of all items in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getItemKeys } * instead. * * @returns item keys */ getItemKeys(): string[]; /** * Returns the value for an item in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getItemValue } * instead. * * @returns item value (JSON object). In case the variant does not contain an item with this key `undefined` * is returned. */ getItemValue( /** * item key */ sItemKey: string ): object; /** * Returns the key of this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getVariantKey } * instead. * * @returns variant key. */ getVariantKey(): string; /** * Returns the name of this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getVariantName } * instead. * * @returns variant name. */ getVariantName(): string; /** * Sets the value for an item in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#setItemValue } * instead. * * @returns the old value. */ setItemValue( /** * item key */ sItemKey: string, /** * item value (JSON object) */ oItemValue: object ): any; } /** * The personalization variant set contains variants of personalization data. It is used in the personalization * container mode. * * To be called by the personalization container. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Personalization#getContainer } * instead. */ class PersonalizationContainerVariantSet { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates a new variant in the variant set. sap.ushell.services.Personalization.PersonalizationContainerVariantSet#addVariant * In case a variant with this name is already existing an exception is thrown. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#addVariant } * instead. * * @returns {@link sap.ushell.services.Personalization.PersonalizationContainerVariant} */ addVariant( /** * variant set name */ sVariantName: string ): object; /** * Checks if a specific variant is contained in the variant set. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#containsVariant } * instead. * * @returns true if the variant set contains a variant with the key */ containsVariant( /** * variant key */ sVariantKey: string ): boolean; /** * Deletes a variant from the variant set. In case the variant does not exist nothing happens. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#deleteVariant } * instead. */ delVariant( /** * variant key */ sVariantKey: string ): void; /** * Returns the current variant key. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getCurrentVariantKey } * instead. * * @returns current variant key. In case the current variant was never set `null` is returned. */ getCurrentVariantKey(): string; /** * Returns a variant object. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariant } * instead. * * @returns {@link sap.ushell.services.Personalization.PersonalizationContainerVariant} In case the variant * set does not contain a variant with this key `undefined` is returned. */ getVariant( /** * variant key */ sVariantKey: string ): object; /** * Returns the variant key corresponding to a variant name. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariantKeyByName } * instead. * * @returns variant key. In case the variant set does not contain a variant with this name `undefined` is * returned. */ getVariantKeyByName( /** * variant name */ sVariantName: string ): object; /** * Returns an array with the keys of the variants in the variant set. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariantKeys } * instead. * * @returns variant keys */ getVariantKeys(): string[]; /** * Sets the current variant key. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#setCurrentVariantKey } * instead. */ setCurrentVariantKey( /** * There is no validity check for the variant key. */ sVariantKey: string ): void; } /** * The Unified Shell personalizer providing set get delete methods to access the persisted personalization * data in direct mode. * * To be called by the personalization service getPersonalizer method. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Personalizer } * instead. */ class Personalizer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Deletes a personalization data value. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Personalizer#deletePersData } * instead. * * @returns Resolves once the pers data was deleted or rejects with an error message. */ delPersData(): jQuery.Promise; /** * Gets a personalization data value. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Personalizer#getPersData } * instead. * * @returns Resolves the personalization value. If there is no personalization data for the item, undefined * is returned. Promise object fail function: param {string} sMessage Error message. */ getPersData(): jQuery.Promise; /** * Sets a personalization data value. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Personalizer#setPersData } * instead. * * @returns Resolves once the pers data was stored or rejects with an error message. */ setPersData( /** * JSON object containing the personalization value. */ oValue: object ): jQuery.Promise; } /** * The transient personalizer shall be used in container mode for table personalization. To be called by * the personalization service getTransientPersonalizer method. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.TransientPersonalizer } * instead. */ class TransientPersonalizer { constructor(); } /** * The personalization variant contains personalization data. It is used in the personalization container * mode. * * To be instantiated via Personalization.VariantSet add / get Variant only * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant} instead. */ class Variant { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Checks if a specific item is contained in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#containsItem } * instead. * * @returns true if the variant contains an item with the key */ containsItem( /** * item key */ sItemKey: string ): boolean; /** * Deletes an item from this variant. In case the item does not exist, nothing happens. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#deleteItem } * instead. */ delItem( /** * item key */ sItemKey: string ): void; /** * Returns an array with the keys of all items in this variant. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getItemKeys } * instead. * * @returns item keys */ getItemKeys(): string[]; /** * Returns the value for an item in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getItemValue } * instead. * * @returns item value (JSON object). In case the variant does not contain an item with this key `undefined` * is returned. */ getItemValue( /** * item key */ sItemKey: string ): object; /** * Returns the key of this variant. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getVariantKey } * instead. * * @returns variant key. */ getVariantKey(): string; /** * Returns the name of this variant. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#getVariantName } * instead. * * @returns variant name. */ getVariantName(): string; /** * Sets the value for an item in this variant. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#setItemValue } * instead. */ setItemValue( /** * item key */ sItemKey: string, /** * item value (JSON object) */ oItemValue: object ): void; /** * Sets the name of the variant. * * In case a variant with `sVariantName` is already existing in the corresponding variant set an exception * is thrown. * * @since 1.24.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.Variant#setVariantName } * instead. */ setVariantName( /** * variant name */ sVariantName: string ): void; } /** * The personalization variant set contains variants of personalization data. It is used in the personalization * container mode. A VariantSet is a class representing a collection of Variants (identified by a key and * name) and a member variable indicating the "current variable" * * When manipulating the underlying data, additional constraints are enforced. * * To be called by the personalization container. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet } * instead. */ class VariantSet { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates a new variant in the variant set. In case a variant with this name is already existing an exception * is thrown. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#addVariant } * instead. * * @returns {@link sap.ushell.services.PersonalizationContainerVariant} */ addVariant( /** * variant set name. */ sVariantName: string ): object; /** * Checks if a specific variant is contained in the variant set. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#containsVariant } * instead. * * @returns true if the variant set contains a variant with the key */ containsVariant( /** * variant key */ sVariantKey: string ): boolean; /** * Deletes a variant from the variant set. In case the variant does not exist nothing happens. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#deleteVariant } * instead. */ delVariant( /** * variant key */ sVariantKey: string ): void; /** * Returns the current variant key. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getCurrentVariantKey } * instead. * * @returns current variant key. In case the current variant was never set `null` is returned. */ getCurrentVariantKey(): string; /** * Returns a variant object. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariant } * instead. * * @returns {@link sap.ushell.services.PersonalizationContainerVariant}. In case the variant set does not * contain a variant with this key `undefined` is returned. */ getVariant( /** * variant key */ sVariantKey: string ): object; /** * Returns the variant key corresponding to a variant name. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariantKeyByName } * instead. * * @returns variant key. In case the variant set does not contain a variant with this name `undefined` is * returned. */ getVariantKeyByName( /** * variant name */ sVariantName: string ): string; /** * Returns an array with the keys of the variants in the variant set. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#getVariantKeys } * instead. * * @returns variant keys */ getVariantKeys(): string[]; /** * Sets the current variant key. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSet#setCurrentVariantKey } * instead. */ setCurrentVariantKey( /** * There is no validity check for the variant key. */ sVariantKey: string ): void; } /** * Wrapper object to expose a variant interface on a ContextContainer object obtained from the Personalization * service: * ```javascript * * getContainer(...).done( function(oContainer) { * that.oVariantSetContainer = new VariantSetAdapter(oContainer); * }); * ``` * * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter } * instead. */ class VariantSetAdapter { /** * VariantSetAdapter amends ContextContainer with functionality to * * Example: An application has two types of variants. Variant type 1 contains filter values for a query, * which are stored in item 1 of the variant, and personalization data for a table, which are stored in * item 2 of the variant. Variant type 2 contains a setting (item 3) that is independent of the filtering * and the table settings. It might be used for a different screen than the variants of type 1. In this * example you would have 2 variant sets, one for each variant type. */ constructor( /** * Context */ oContextContainer: object ); /** * Creates a new variant set in the container. In case a variant set with this key is already existing an * exception is thrown. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter#addVariantSet } * instead. * * @returns {@link ontainerVariantSet} */ addVariantSet( /** * variant set key */ sVariantSetKey: string ): object; /** * Checks if a specific variant set is contained in the container. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter#containsVariantSet } * instead. * * @returns true if the container contains a variant set with the key */ containsVariantSet( /** * variant set key */ sVariantSetKey: string ): boolean; /** * Deletes a variant set from the container. In case the variant set does not exist nothing happens. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter#deleteVariantSet } * instead. */ delVariantSet( /** * variant set key */ sVariantSetKey: string ): void; /** * Returns the variant set object from the container. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter#getVariantSet } * instead. * * @returns {@link ontainerVariantSet}. In case the container does not contain a variant set with this key * `undefined` is returned. */ getVariantSet( /** * variant set key The string length is restricted to 40 characters */ sVariantSetKey: string ): object; /** * Returns an array with the keys of the variant sets in the container. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2.VariantSetAdapter#getVariantSetKeys } * instead. * * @returns variant set keys */ getVariantSetKeys(): string[]; } } namespace PersonalizationV2 { /** * The container is the anchor object of the unified shell personalization in container mode. * * To be called by the personalization service getContainer method. * * @since 1.120.0 */ class ContextContainer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * clears the local copy data of this container * * @since 1.120.0 */ clearData(): void; /** * Checks if a specific direct item is contained in the container. * * @since 1.120.0 * * @returns `true` if the container contains a direct item with the key */ containsItem( /** * item key */ sItemKey: string ): boolean; /** * Deletes a direct item from the container. In case the item does not exist, nothing happens. * * @since 1.120.0 */ deleteItem( /** * item key */ sItemKey: string ): void; /** * flush all pending request; The result of the promise may reflect the last pending operation in the queue * * @since 1.120.0 * * @returns Resolves once the pending requests were flushed. */ flushPendingRequests(): Promise; /** * Returns an array with the keys of direct items in the container. * * @since 1.120.0 * * @returns item keys */ getItemKeys(): string[]; /** * Returns the value for a direct item from the container. (Value semantics, new copy is returned) * * @since 1.120.0 * * @returns item value (JSON object). In case the container does not contain a direct item with this key * `undefined` is returned. */ getItemValue( /** * item key */ sItemKey: string ): object; /** * return the container key as a string variable * * @since 1.120.0 * * @returns the container key */ getKey(): string; /** * (Re)loads the current container data from the underlying storage asynchronously. The current local data * is discarded. * * Returns a promise for the load operation. If another save/load/delete operation is not completed, the * operation may fail! (wait for the other promise). * * Synchronous read and write operations before the load is done have undefined effects. * * @since 1.120.0 * * @returns Resolves with undefined on success or rejects on failure */ load(): Promise; /** * Save the current container data at the underlying storage asynchronously at the earliest nDelayInMilliseconds * seconds before. The current state is serialized. * * @since 1.120.0 * * @returns Promise object * * The operation may wait for completion of another pending operation. */ save( /** * the delay. */ nDelayInMilliseconds: int ): Promise; /** * Sets the value of a direct item in the container. In case the item is already existing its value is overwritten. * In case it is not existing a new item with this key and value is created. The value is serialized during * set * * @since 1.120.0 */ setItemValue( /** * item key. The string length is restricted to 40 characters */ sItemKey: string, /** * item value (JSON object) */ oItemValue: object ): void; } /** * The Unified Shell personalizer providing set get delete methods to access the persisted personalization * data in direct mode. * * To be called by the personalization service getPersonalizer method. * * @since 1.120.0 */ class Personalizer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Deletes a personalization data value. * * @since 1.120.0 * * @returns Resolves if delete was successful */ deletePersData(): Promise; /** * Gets a personalization data value. * * @since 1.120.0 * * @returns Resolves with the personalization data or rejects on failure */ getPersData(): Promise; /** * Sets a personalization data value. * * @since 1.120.0 * * @returns Resolves if save was successful */ setPersData( /** * JSON object containing the personalization value. */ oValue: object ): Promise; } /** * The transient personalizer shall be used in container mode for table personalization. To be called by * the personalization service getTransientPersonalizer method. * * @since 1.120.0 */ class TransientPersonalizer { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Deletes a personalization data value. * * @since 1.120.0 * * @returns Resolves if delete was successful. */ deletePersData(): Promise; /** * Gets a personalization data value. * * @since 1.120.0 * * @returns Resolves the data. */ getPersData(): Promise; /** * Sets a personalization data value. * * @since 1.120.0 * * @returns Resolves if save was successful. */ setPersData( /** * JSON object containing the personalization value. */ oValue: object ): Promise; } /** * The personalization variant contains personalization data. It is used in the personalization container * mode. * * To be instantiated via Personalization.VariantSet add / get Variant only * * @since 1.120.0 */ class Variant { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Checks if a specific item is contained in this variant. * * @since 1.120.0 * * @returns `true` if the variant contains an item with the key */ containsItem( /** * item key */ sItemKey: string ): boolean; /** * Deletes an item from this variant. In case the item does not exist, nothing happens. * * @since 1.120.0 */ deleteItem( /** * item key */ sItemKey: string ): void; /** * Returns an array with the keys of all items in this variant. * * @since 1.120.0 * * @returns item keys */ getItemKeys(): string[]; /** * Returns the value for an item in this variant. * * @since 1.120.0 * * @returns item value (JSON object). In case the variant does not contain an item with this key `undefined` * is returned. */ getItemValue( /** * item key */ sItemKey: string ): object; /** * Returns the key of this variant. * * @since 1.120.0 * * @returns variant key. */ getVariantKey(): string; /** * Returns the name of this variant. * * @since 1.120.0 * * @returns variant name. */ getVariantName(): string; /** * Sets the value for an item in this variant. * * @since 1.120.0 */ setItemValue( /** * item key */ sItemKey: string, /** * value (JSON object) */ oItemValue: object ): void; /** * Sets the name of the variant. * * In case a variant with `sVariantName` is already existing in the corresponding variant set an exception * is thrown. * * @since 1.120.0 */ setVariantName( /** * variant name */ sVariantName: string ): void; } /** * A VariantSet is a class representing a collection of Variants (identified by a key and name) and a member * variable indicating the "current variable" * * When manipulating the underlying data, additional constraints are enforced. * * The personalization variant set contains variants of personalization data. It is used in the personalization * container mode. * * To be called by the personalization container * * @since 1.120.0 */ class VariantSet { constructor(); /** * Creates a new variant in the variant set. In case a variant with this name is already existing an exception * is thrown. * * @since 1.120.0 * * @returns the variant. */ addVariant( /** * variant set name */ sVariantName: string ): sap.ushell.services.PersonalizationV2.Variant; /** * Checks if a specific variant is contained in the variant set. * * @since 1.120.0 * * @returns `true` if the variant set contains a variant with the key */ containsVariant( /** * variant key */ sVariantKey: string ): boolean; /** * Deletes a variant from the variant set. In case the variant does not exist nothing happens. * * @since 1.120.0 */ deleteVariant( /** * variant key */ sVariantKey: string ): void; /** * Returns the current variant key. * * @since 1.120.0 * * @returns current variant key. In case the current variant was never set `null` is returned. */ getCurrentVariantKey(): string; /** * Returns a variant object. * * @since 1.120.0 * * @returns In case the variant set does not contain a variant with this key `undefined` is returned. */ getVariant( /** * variant key */ sVariantKey: string ): sap.ushell.services.PersonalizationV2.Variant; /** * Returns the variant key corresponding to a variant name. * * @since 1.120.0 * * @returns variant key. In case the variant set does not contain a variant with this name `undefined` is * returned. */ getVariantKeyByName( /** * variant name */ sVariantName: string ): string; /** * Returns an array with the keys of the variants in the variant set. * * @since 1.120.0 * * @returns variant keys */ getVariantKeys(): string[]; /** * Sets the current variant key. * * @since 1.120.0 */ setCurrentVariantKey( /** * There is no validity check for the variant key. */ sVariantKey: string ): void; } /** * Wrapper object to expose a variant interface on a ContextContainer object obtained from the PersonalizationV2 * service: * ```javascript * * oPersonalizationV2Service.getContainer(...).then(function(oContainer) { * that.oVariantSetContainer = new VariantSetAdapter(oContainer); * }); * ``` * * * VariantSetAdapter amends ContextContainer with functionality to * * Example: An application has two types of variants. Variant type 1 contains filter values for a query, * which are stored in item 1 of the variant, and personalization data for a table, which are stored in * item 2 of the variant. Variant type 2 contains a setting (item 3) that is independent of the filtering * and the table settings. It might be used for a different screen than the variants of type 1. In this * example you would have 2 variant sets, one for each variant type. * * @since 1.120.0 */ class VariantSetAdapter { constructor( /** * Context */ oContextContainer: sap.ushell.services.PersonalizationV2.ContextContainer ); /** * Creates a new variant set in the container. In case a variant set with this key is already existing an * exception is thrown. * * @since 1.120.0 * * @returns The new VariantSet */ addVariantSet( /** * variant set key */ sVariantSetKey: string ): sap.ushell.services.PersonalizationV2.VariantSet; /** * Checks if a specific variant set is contained in the container. * * @since 1.120.0 * * @returns `true` if the container contains a variant set with the key */ containsVariantSet( /** * variant set key */ sVariantSetKey: string ): boolean; /** * Deletes a variant set from the container. In case the variant set does not exist nothing happens. * * @since 1.120.0 */ deleteVariantSet( /** * variant set key */ sVariantSetKey: string ): void; /** * Returns the variant set object from the container. * * @since 1.120.0 * * @returns In case the container does not contain a variant set with this key `undefined` is returned. */ getVariantSet( /** * variant set key. The string length is restricted to 40 characters. */ sVariantSetKey: string ): sap.ushell.services.PersonalizationV2.VariantSet; /** * Returns an array with the keys of the variant sets in the container. * * @since 1.120.0 * * @returns variant set keys */ getVariantSetKeys(): string[]; } /** * @since 1.124.0 */ enum KeyCategory { /** * A static hard-coded key which does not change. This value is required for caching to take place. */ FIXED_KEY = "FIXED_KEY", /** * For all other cases. */ GENERATED_KEY = "GENERATED_KEY", } /** * @since 1.124.0 */ enum WriteFrequency { HIGH = "HIGH", /** * The key is typically rarely updated, for example in explicit table personalization by end users. */ LOW = "LOW", } /** * The persId identifies the stored personalization container. */ type PersId = { /** * Identifies the set of personalization data that is loaded/saved as one bundle from the front-end server. */ container: string; /** * The name of the object the personalization is applied to. */ item: string; }; /** * The scope controls the behavior of the container used by the personalization service. */ type Scope = { /** * validity of the container persistence in minutes. Available values: * · 0 - The data is persisted in the launchpad window, and is lost when the window is closed or when the * launchpad is reloaded. * · Infinity - The data is persisted on the front-end server without any time restrictions. * · x Minutes - Number of minutes the data is to be persisted on the front-end server, for example 30. * * * For validity > 0 (including infinity) a copy of the container is stored in the volatile memory of the * launchpad window in the browser. Therefore, no roundtrip is necessary for reloading a container at a * later point in time. Only if the launchpad itself is reloaded, the copy is lost and a roundtrip is necessary. */ validity?: int; /** * Type or category of key */ keyCategory?: sap.ushell.services.PersonalizationV2.KeyCategory; /** * Expected frequency how often users will use this container to store data inside */ writeFrequency?: sap.ushell.services.PersonalizationV2.WriteFrequency; /** * Defines if storage on client side should be allowed or not. Security-relevant data must not be stored * on client side, for instance in local storage or in the HTTP browser cache. Applications should set this * parameter to `true` only if the data is not critical from a security point of view. */ clientStorageAllowed?: boolean; /** * Indicates the container is intended to be shared across multiple applications. */ shared?: boolean; }; } namespace SpaceContent { /** * Type for the value of a UserDefault parameter. It contains either a value, an extendedValue, or both. * * Example: * ```javascript * * { * "value": "ZMAT1", * "extendedValue": { * "Ranges": [ * { * "Sign": "I", * "Option": "BT", * "Low": "A*", * "High": "F*" * } * ] * } * } * ``` * * * @since 1.120.0 */ type ParameterValue = { /** * The value of a single-parameter. */ value?: string; /** * Object containing the ranges for a range-parameter. */ extendedValue?: { Ranges: sap.ushell.services.SpaceContent.Range[]; }; }; /** * Type for describing a parameter value range. * * @since 1.120.0 */ type Range = { /** * The sign value of the range. */ Sign: string; /** * The option value of the range. */ Option: string; /** * The low value of the range. */ Low: string; /** * The high value of the range. */ High: string; }; } namespace URLParsing { /** * Describes the result of {@link #parseShellHash}. * * @since 1.120.0 */ type DecomposedHash = { /** * the semantic object */ semanticObject: string; /** * the action */ action: string; /** * the raw context string */ contextRaw: string; /** * the parameters */ params: Record; /** * the app state key */ appStateKey?: string; /** * the app specific route */ appSpecificRoute: string; }; /** * Commonly used by services like {@link sap.ushell.services.Navigation}. Use this type for edge cases only. * Use {@link sap.ushell.services.URLParsing.DecomposedHash} instead. This type ignores all other properties * * @since 1.124.0 */ type SimpleTarget = { /** * The target object */ target: { /** * The shell hash */ shellHash: sap.ushell.services.Navigation.TargetIntent; }; }; /** * Type for SplitHash * * @since 1.120.0 */ type SplitHash = { /** * the shell part of the hash */ shellPart: sap.ui.core.URI; /** * the app specific route part of the hash */ appSpecificRoute: sap.ui.core.URI; }; /** * Commonly used by services like {@link sap.ushell.services.Navigation} * * @since 1.142.0 */ type Target = { /** * The target object */ target: { /** * the semantic object */ semanticObject: string; /** * the action */ action: string; /** * the raw context string */ contextRaw: string; }; /** * the parameters */ params: Record; /** * the app specific route */ appSpecificRoute: string; /** * the app state key */ appStateKey?: string; }; /** * Type for Url value * * @since 1.120.0 */ type URLValue = string | int; } namespace UserInfo { /** * Type for an object representing data about the user: ID, first name, last name, full name, e-mail address. * * @since 1.120.0 */ type ShellUserInfo = { /** * The user id. */ id: string; /** * The user's email address. */ email: string; /** * The user's first name. */ firstName: string; /** * The user's last name. */ lastName: string; /** * The user's full name. */ fullName: string; }; } /** * The unified shell's AppConfiguration service as a singleton object. * * @since 1.15.0 */ interface AppConfiguration { /** * Adds an entry to user recent activity list. The list of recent activities will be displayed in the UserActionsMenu * of FLP application (fiori 2.0) This method should be used by applications of special types. like "Search", * "OVP", "Co-Pilot" and "FactSheet" This method should be only called in the "exit" method of applications * Component.js in order to assure that it will be added to recent activities. For these applications the * unique identifier of the entry is url and not appId, so in order to add different entry, different url * should be specified, otherwise the entry will be updated with a new timestamp Only applications of type * Search and Co-Pilot can set their icon. * * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves the updated list of user recents. */ addActivity( /** * oRecentActivity */ oRecentActivity: object ): jQuery.Promise; /** * Adds buttons to the action sheet in the shell header. This function always overrides the already existing * application settings buttons with the new buttons. It is meant to be used by applications that want to * add their own settings button to the shell header. * * @deprecated As of version 1.120. Use {@link sap.ushell.services.Extension#createUserAction} instead. */ addApplicationSettingsButtons( /** * List of sap.m.Button controls */ aButtons: sap.m.Button[] ): void; /** * Sets the application screen size to full width * * @deprecated As of version 1.120. Use {@link sap.ushell.ui5service.ShellUIService#setApplicationFullWidth } * instead. */ setApplicationFullWidth( /** * A Boolean value indicating if the application fills the full width of the screen */ bValue: boolean ): void; /** * Sets the icons of the browser. * * @deprecated As of version 1.120. Use {@link sap.ui.util.Mobile#setIcons} instead. */ setIcons( /** * Icon properties, an object holding icon URLs */ oIconsProperties: object ): void; } /** * @since 1.62.0 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ interface ContentExtensionAdapterFactory { /** * Constructs a new instance of the Content Extension Adapter Factory. An array of adapter configurations * needs to be passed to it (one specific adapter for each extended content). The configuration can be passed * explicitly as an array vConfig or coded in ContentExtensionAdapterConfig. * * Once instantiated, it generates a map of all the needed adapters and returns them (as a promise) with * the method #getAdapterMap. Once the Promises resolve, the adapters are available in the map. * * IMPORTANT: aConfig.contentProviderName is the string any content would use to indicate the LaunchPage * service which adapter needs to be used through a field "contentProvider" e.g. oGroup.contentProvider * * Currently, the configuration mocks the content through FeatureGroupConfig and uses the local adapter. * This should be changed once a dedicated adapter for the extended content exists. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns A promise that resolves to a map of content provider names to adapter instances Note that the * map might contain undefined entries if the adapters are disabled. */ getAdapters( /** * A configuration array for the different adapters of ContentExtensionAdapterFactory. */ vConfigs: Array<{ /** * The name of the adapter to find it in the service */ contentProviderName: string; /** * The path to the adapter */ adapter: string; /** * The path to the configuration flag for this adapter */ config: string; /** * A system object for creating the system when instantiating the adapter */ system: object; /** * A function that returns any needed configuration for the adapter */ configHandler: Function; }> ): Promise; } /** * The Unified Shell's AppLifeCycle service. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const AppLifeCycle = await Container.getServiceAsync("AppLifeCycle"); * // do something with the AppLifeCycle service * }); * ``` * * * @since 1.38 */ class AppLifeCycle extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Attaches an event handler for the appLoaded event. This event handler will be triggered each time an * application has been loaded. * * @since 1.38 */ attachAppLoaded( /** * An object that will be passed to the handler along with the event object when the event is fired. */ oData: ObjectToBePassedToHandler, /** * The handler function to call when the event occurs. */ fnFunction: ( p1: sap.ui.base.Event, p2: ObjectToBePassedToHandler ) => void, /** * The object that wants to be notified when the event occurs (this context within the handler function). */ oListener: object ): void; /** * Detaches an event handler from the EventProvider. * * @since 1.38 */ detachAppLoaded( /** * The handler function that has to be detached from the EventProvider. */ fnFunction: Function, /** * The object that wanted to be notified when the event occurred */ oListener: object ): void; /** * Returns information about the currently running application or `undefined` if no application is running. * * @since 1.38 * * @returns Information object about currently running application or `undefined` if no application is running. * **Note:** Return value is only valid after app is loaded. See {@link #attachAppLoaded} for details. Before * an app is loaded, `undefined` is returned. */ getCurrentApplication(): | sap.ushell.services.AppLifeCycle.CurrentApplication | undefined; } /** * The Unified Shell's bookmark service. Allows creating shortcuts on the user's home page. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Bookmark = await Container.getServiceAsync("Bookmark"); * // do something with the Bookmark service * }); * ``` * * * @since 1.15.0 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2} instead. */ class Bookmark extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Adds a bookmark tile to one of the user's classic home page groups or to multiple provided content nodes. * See: * sap.ushell.services.URLParsing#getShellHash * * @since 1.15.0 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2#addBookmark} instead. * * @returns Resolves on success, but rejects with a reason-message on failure to add the bookmark to the * specified or implied group. The promise gets resolved if personalization is disabled. */ addBookmark( /** * Bookmark parameters. In addition to title and URL, a bookmark might allow further settings, such as an * icon or a subtitle. Which settings are supported depends on the environment in which the application * is running. Unsupported parameters will be ignored. */ oParameters: { /** * The title of the bookmark. */ title: string; /** * The target intent or URL of the bookmark. If the target app runs in the current shell, the URL has to * be a valid intent, i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. */ url: string; /** * The optional icon URL of the bookmark (e.g. `"sap-icon://home"`). */ icon?: string; /** * The information text of the bookmark. */ info?: string; /** * The subtitle of the bookmark. */ subtitle?: string; /** * The URL to a REST or OData service that provides some dynamic information for the bookmark. * * **Semantic Date Ranges:** * * You can use placeholders for dynamic dates in the query parameters of the service URL. This can be used * to create KPI tiles based on user entries in control {@link sap.m.DynamicDateRange}, where it is possible * to specify dynamic dates like YESTERDAY or THISYEAR. * * The placeholder format looks like this: {Edm.%%DynamicDate....%%} * * * - : The Edm Type of the parameter. Supported types are String, DateTime and DateTimeOffset * for OData V2 and Date and DateTimeOffset for OData V4. * - , , : Possible values are the ones that can be used in * {@link sap.m.DynamicDateRange#toDates} to create a date range. * - : Possible values are 'start' and 'end' which mark the start or end of the interval * specified by the operator. * * Examples: * - /a/url/$count?$filter=(testDate ge {Edm.DateTimeOffset%DynamicDate.YESTERDAY.start%} and testDate * le {Edm.DateTimeOffset%DynamicDate.YESTERDAY.end%}) * - /a/url/$count?$filter=(testDate ge {Edm.DateTime%DynamicDate.THISYEAR.start%} and testDate le {Edm.DateTime%DynamicDate.THISYEAR.end%}) * * - /a/url/$count?$filter=(testDate ge {Edm.Date%DynamicDate.TODAYFROMTO.1.5.start%} and testDate le * {Edm.Date%DynamicDate.TODAYFROMTO.1.5.end%}) * * Hint: Check the debug log when displaying the resulting KPI tiles to get more information about the resolution * of the placeholders. */ serviceUrl?: string; /** * Metadata for parameter serviceUrl. Mandatory to specify if parameter serviceURL contains semantic date * ranges. This does not influence the data source of the app itself. * * Specify the data source as follows: * ```javascript * * { * type: "OData", * settings: { * odataVersion: "4.0" * } * } * ``` * * * * type: The type of the serviceURL's service. Only "OData" is supported. odataVersion: The OData version * of parameter serviceURL. Valid values are "2.0" and "4.0". */ dataSource?: object; /** * The refresh interval for the `serviceUrl` in seconds. */ serviceRefreshInterval?: string; /** * The unit for the number retrieved from `serviceUrl`. */ numberUnit?: string; }, /** * Either a legacy launchpad home page group, one content node or an array of content nodes (see {@link #getContentNodes}). * If not provided, the bookmark will be added to the default group if spaces mode is not active or to the * default page if spaces mode is active. */ vContainer?: | object | sap.ushell.services.Bookmark.ContentNode | sap.ushell.services.Bookmark.ContentNode[], /** * The contentProviderId or undefined outside the cFLP */ sContentProviderId?: string ): jQuery.Promise; /** * Adds the catalog tile with the given ID to given group. The catalog tile is looked up in the legacy SAP * HANA catalog unless data to look up a remote catalog is provided. * * @since 1.21.2 * @deprecated As of version 1.112. Please use {@link sap.ushell.services.BookmarkV2#addBookmark} instead. * * @returns Resolves if successful. In case of failure, an error message is passed. In launchpad spaces * mode the promise gets rejected. */ addCatalogTileToGroup( /** * The ID of the tile within the catalog */ sCatalogTileId: string, /** * The id of the group. If not given, the tile is added to the default group */ sGroupId?: string, /** * The data to identify the catalog containing the tile with the given ID */ oCatalogData?: { /** * The remote catalog's base URL such as "/sap/hba/apps/kpi/s/odata/hana_chip_catalog.xsodata/" */ baseUrl: string; /** * The remote catalog's id on the remote system such as "HANA_CATALOG" */ remoteId: string; } ): jQuery.Promise; /** * Counts **all** bookmarks pointing to the given URL from all of the user's pages. You can use this method * to check if a bookmark already exists. This is a potentially asynchronous operation in case the user's * pages have not yet been loaded completely! * See: * #addBookmark * * @since 1.17.1 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2#countBookmarks} instead. * * @returns Resolves the count of existing bookmarks is provided (which might be zero). In case of failure, * an error message is passed. */ countBookmarks( /** * The URL of the bookmarks to be counted, exactly as specified to {@link #addBookmark}. */ sUrl: string, /** * The Content Provider ID. */ sContentProviderId: string ): jQuery.Promise; /** * Deletes **all** bookmarks pointing to the given URL from all of the user's pages. * See: * #addBookmark * #countBookmarks * * @since 1.17.1 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2#deleteBookmarks} instead. * * @returns Resolves the number of deleted bookmarks is provided (which might be zero). In case of failure, * an error message is passed. */ deleteBookmarks( /** * The URL of the bookmarks to be deleted, exactly as specified to {@link #addBookmark}. */ sUrl: string, /** * The contentProviderId or undefined outside the cFLP */ sContentProviderId?: string ): jQuery.Promise; /** * Returns available content nodes based on the current launchpad context. (Classic home page, spaces mode) * * A content node may be: * - a classic home page group * - an unselectable node (space) or a selectable node (page) in spaces mode * - or any other containers in the future * * It has the following properties: * - id: ID of the content node * - label: Human-readable representation of a content node which can be displayed in a control * - type: Specifies the content node type. E.g: space, page, group, etc. See {@link sap.ushell.ContentNodeType } * * - isContainer: Specifies if a bookmark can be added * - children: Specifies sub-nodes * * @since 1.81 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2#getContentNodes} instead. * * @returns Promise resolving the currently available content nodes. */ getContentNodes(): Promise; /** * Updates **all** bookmarks pointing to the given URL on all of the user's pages with the given new parameters. * Parameters which are omitted are not changed in the existing bookmarks. * See: * #addBookmark * #countBookmarks * #deleteBookmarks * * @since 1.17.1 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.BookmarkV2#updateBookmarks} instead. * * @returns Resolves the number of updated bookmarks is provided (which might be zero). In case of failure, * an error message is passed. */ updateBookmarks( /** * The URL of the bookmarks to be updated, exactly as specified to {@link #addBookmark}. In case you need * to update the URL itself, pass the old one here and the new one as `oParameters.url`! */ sUrl: string, /** * Bookmark parameters. In addition to title and URL, a bookmark might allow additional settings, such as * an icon or a subtitle. Which settings are supported depends on the environment in which the application * is running. Unsupported parameters will be ignored. */ oParameters: { /** * The title of the bookmark. */ title: string; /** * The target URL or intent of the bookmark. If the target application shall run in the current shell, the * URL has to be a valid intent, i.e. in the format like `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. */ url: string; /** * The optional icon URL of the bookmark (e.g. `"sap-icon://home"`). */ icon?: string; /** * The information text of the bookmark. */ info?: string; /** * The subtitle of the bookmark. */ subtitle?: string; /** * The URL to a REST or OData service that provides some dynamic information for the bookmark. */ serviceUrl?: string; /** * Metadata for parameter serviceUrl. Mandatory to specify if parameter serviceURL contains semantic date * ranges. This does not influence the data source of the app itself. */ dataSource?: { /** * The type of the serviceURL's service. Only "OData" is supported. */ type?: string; /** * Additional settings for the data source. */ settings?: { /** * The OData version of parameter serviceURL. Valid values are "2.0" and "4.0". */ odataVersion?: object; }; }; /** * The refresh interval for the `serviceUrl` in seconds. */ serviceRefreshInterval?: string; /** * The unit for the number retrieved from `serviceUrl`. */ numberUnit?: string; }, /** * The contentProviderId or undefined outside the cFLP */ sContentProviderId?: string ): jQuery.Promise; } /** * The Unified Shell's bookmark service. Allows creating shortcuts on the user's home page. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const BookmarkV2 = await Container.getServiceAsync("BookmarkV2"); * // do something with the BookmarkV2 service * }); * ``` * * * @since 1.119.0 */ class BookmarkV2 extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Adds a bookmark tile to the provided content nodes. * See: * sap.ushell.services.URLParsing#getShellHash * * @since 1.119.0 * * @returns A promise which resolves on success */ addBookmark( /** * Bookmark parameters. In addition to title and URL, a bookmark might allow further settings, such as an * icon or a subtitle. Which settings are supported depends on the environment in which the application * is running. Unsupported parameters will be ignored. */ oParameters: sap.ushell.services.BookmarkV2.BookmarkParameters, /** * Either a content node or an array of content nodes (see {@link #getContentNodes}). If not provided, the * bookmark will be added to the default page. */ vContainer?: | sap.ushell.services.BookmarkV2.ContentNode | sap.ushell.services.BookmarkV2.ContentNode[], /** * **SAP internal usage only** The contentProviderId or undefined outside the cFLP. */ sContentProviderId?: string ): Promise; /** * Counts **all** bookmarks pointing to the given URL from all of the user's pages. You can use this method * to check if a bookmark already exists. This is a potentially asynchronous operation in case the user's * pages have not yet been loaded completely! * See: * #addBookmark * * @since 1.119.0 * * @returns A `Promise` which informs about success or failure of this asynchronous operation. In case of * success, the count of existing bookmarks is provided (which might be zero). In case of failure, an error * message is passed. */ countBookmarks( /** * The URL of the bookmarks to be counted, exactly as specified to {@link #addBookmark}. */ sUrl: /* was: sap.ushell.services.navigation.TargetIntent */ | any | sap.ui.core.URI, /** * **SAP internal usage only** The contentProviderId or undefined outside the cFLP. The Content Provider * ID. */ sContentProviderId?: string ): Promise; /** * Deletes **all** bookmarks pointing to the given URL from all of the user's pages. * See: * #addBookmark * #countBookmarks * * @since 1.119.0 * * @returns A `Promise` which informs about success or failure of this asynchronous operation. In case of * success, the number of deleted bookmarks is provided (which might be zero). In case of failure, an error * message is passed. */ deleteBookmarks( /** * The URL of the bookmarks to be deleted, exactly as specified to {@link #addBookmark}. */ sUrl: /* was: sap.ushell.services.navigation.TargetIntent */ | any | sap.ui.core.URI, /** * **SAP internal usage only** The contentProviderId or undefined outside the cFLP. */ sContentProviderId?: string ): Promise; /** * Returns available content nodes. * * @since 1.119.0 * * @returns Promise resolving the currently available content nodes. */ getContentNodes(): Promise< sap.ushell.services.BookmarkV2.ContentNode[] >; /** * Updates **all** bookmarks pointing to the given URL on all of the user's pages with the given new parameters. * Parameters which are omitted are not changed in the existing bookmarks. * See: * #addBookmark * #countBookmarks * #deleteBookmarks * * @since 1.119.0 * * @returns A `Promise` which informs about success or failure of this asynchronous operation. In case of * success, the number of updated bookmarks is provided (which might be zero). In case of failure, an error * message is passed. */ updateBookmarks( /** * The URL of the bookmarks to be updated, exactly as specified to {@link #addBookmark}. In case you need * to update the URL itself, pass the old one here and the new one as `oParameters.url`! */ sUrl: string, /** * Bookmark parameters. In addition to title and URL, a bookmark might allow additional settings, such as * an icon or a subtitle. Which settings are supported depends on the environment in which the application * is running. Unsupported parameters will be ignored. */ oParameters: sap.ushell.services.BookmarkV2.BookmarkParameters, /** * **SAP internal usage only** The contentProviderId or undefined outside the cFLP. */ sContentProviderId?: string ): Promise; } /** * The unified shell's Configuration service. Allows attaching to **selected** launchpad configuration settings * and their value changes. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Configuration = await Container.getServiceAsync("Configuration"); * // do something with the Configuration service * }); * ``` * * * @since 1.64.0 */ class Configuration extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Allows to attach to any value change of the sizeBehavior configuration for homepage parts (smaller tile * size) which is needed to implement custom tiles reacting on this setting. The returned value can directly * be used in {@link sap.m.GenericTile#sizeBehavior}. * * Once attached, `fnCallback` will be called once initially for the **current value** and afterwards every * time the value changed. * * Please ensure to detach from the registry by calling `.detach` on the returned object e.g. in the destroy * function of your component or controller! Make sure that you do not attach twice with the same function * as otherwise a detach cannot be performed later! * * Example usage: * ```javascript * * var oEventRegistry; * * // the callback that is called whenever the property changes * var fnCallback = function (sSizeBehavior) { * // do something with sSizeBehavior like setting it on a * // sap.m.GenericTile via model and data binding! * }; * * * // retrieve service via getServiceAsync API * sap.ushell.Container.getServiceAsync("Configuration").then( function (oService) { * // keep the returned event registry in order to detach upon destroy of your context * oEventRegistry = oService.attachSizeBehaviorUpdate(fnCallback); * }); * * // detach later when your context is destroyed (e.g. destroy of the controller) * oEventRegistry.detach(); * ``` * * * * @returns detach handler - call detach() to detach from further updates */ attachSizeBehaviorUpdate( /** * The function to be called once the property changes. It receives a parameter of type {@link sap.m.TileSizeBehavior}. */ fnCallback: Function ): { detach: Function; }; } /** * The Unified Shell's CrossApplicationNavigation service. Allows navigating to "external" targets outside * of the currently running app (but still in scope of the current Fiori launchpad) or to create links to * such external targets. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const CrossApplicationNavigation = await Container.getServiceAsync("CrossApplicationNavigation"); * // do something with the CrossApplicationNavigation service * }); * ``` * * * The CrossApplicationNavigation service currently provides platform independent functionality. * * The service is meant to be used by applications, plugins and shell components. * * Usage: * ```javascript * * CrossApplicationNavigation.hrefForExternalAsync({ * target : { * semanticObject: "Product", * action: "display" * }, * params: { * "ProductID": "102343333" * } * }).then( function(sHref) { * // Place sHref somewhere in the DOM * }); * ``` * * * Parameter names and values are case sensitive. * * Note that the usage of multi-valued parameters (specifying an array with more than one member as parameter * value, e.g. `params : { A : ["a1", "a2"] }`) is possible with this API but **strongly discouraged**. * Depending on the used platform / back-end implementation the target matching might not supported multi-value * parameters. Furthermore, it is not guaranteed that additional parameter values specified in the back-end * configuration are merged with parameter values passed in this method. * * Note that the application parameter length (including SemanticObject/Action) shall not exceed 512 bytes * when serialized as UTF-8. * * Note that when receiving the values as startup parameters (as part of the component data object) single * values are represented as an array of size 1. Above example is returned as ` deepEqual(getComponentData().startupParameters * , { "ProductID" : [ "102343333" ] } ) ` * * Make sure not to store security critical data within an URL. URLs may appear in a server log, be persisted * inside and outside the system. * * Note: When constructing large URLs, the URLs may be shortened and persisted on a database server for * prolonged time, the actual data is persisted under a key accessible to any User (guessing the key). * * The same restrictions apply for the Application state. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation} instead. */ class CrossApplicationNavigation extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Attempts to use the browser history to navigate to the previous app. * * A navigation to the Fiori launchpad Home is performed when this method is called on a first navigation. * In all other cases, this function simply performs a browser back navigation. * * Note that the behavior of this method is subject to change and therefore it may not yield to the expected * results especially on mobile devices where "back" is the previous inner-app state if these are put into * the history! * * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#backToPreviousApp } * instead. * * @returns A promise which resolves once the back navigation was triggered */ backToPreviousApp(): Promise; /** * if sHashFragment is a compacted hash (sap-intent-param is present), in a hash, this function replaces * it into a long url with all parameters expanded * * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves the expanded shell hash as first argument. */ expandCompactHash( /** * an (internal format) shell hash */ sHashFragment: string ): jQuery.Promise; /** * Returns a list of semantic objects of the intents the current user can navigate to. * * @since 1.38.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#getSemanticObjects } * instead. * * @returns Resolves with an array of strings representing the semantic objects of the intents the current * user can navigate to, or rejects with an error message. The returned array will not contain duplicates. * NOTE: the caller should not rely on the specific order the semantic objects appear in the returned * array. */ getDistinctSemanticObjects(): jQuery.Promise; /** * Resolves the given semantic object (and action) and business parameters to a list of links available * to the user. * * @since 1.38.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#getLinks} instead. * * @returns Resolves with an array of link objects containing (at least) the following properties: * ```javascript * * { * intent: "#AnObject-Action?A=B&C=e&C=j", * text: "Perform action", * icon: "sap-icon://Fiori2/F0018", // optional * subTitle: "Action", //optional * shortTitle: "Perform" // optional * tags: ["tag-1", "tag-2"] // optional * } * ``` * * * Properties marked as 'optional' in the example above may not be present in the returned result. * * **NOTE:** the intents returned are in **internal** format and cannot be directly put into a link * tag. Example: Let the string `"C&A != H&M"` be a parameter value. * * Intent will be encoded as#AnObject-action?text=C%26A%20!%3D%20H%26M. Note that the intent * is in **internal** format, before putting it into a link tag, you must invoke: * ```javascript * * externalHash = oCrossApplicationNavigationService.hrefForExternal({ target : { shellHash : oLink.intent } }, that.oComponent); * ``` * NOTE: in case the mass invocation interface is used (see `vArgs` parameter explanation above), * the promise will resolve to an array of arrays of arrays. For example, if the mass interface specified * two arguments, the promise would resolve as follows: * ```javascript * * [ // mass interface was used, so return multiple values * [ // values returned from the first call (functions may return multiple values) * // value returned from first getLinks call (as returned by single getLinks call) * [ * {intent: "#SO-something1", text: "Perform navigation"}, * {intent: "#SO-something2", text: "Perform action"} ], * ] * ], * [ * // value returned from second getLinks call (as returned by single getLinks call) * [ * {intent: "#Object-someAction", text: "Some action1"} * ] * ] * // ... and so on * ] * ``` */ getLinks( /** * An object containing nominal arguments for the method, having the following structure: * * * ```javascript * * { * semanticObject: "Object", // optional, matches any semantic objects if undefined * action: "action", // optional, matches any actions if undefined * params: { // optional business parameters * A: "B", * C: ["e", "j"] * }, * withAtLeastOneUsedParam: true, // optional, defaults to false. * // If true, returns only the links that use at least one (non sap-) parameter from 'params'. * * sortResultsBy: "intent", // optional parameter that decides on how the returned results will be sorted. * // Possible values are: * // - "intent" (default) lexicographical sort on returned 'intent' field * // - "text" lexicographical sort on returned 'text' field * // - "priority" top intents are returned first * * treatTechHintAsFilter : true, // optional, defaults to false. * // if true, only apps that match exactly the supplied technology (e.g. sap-ui-tech-hint=WDA) will be considered. * * ui5Component: UI5Component, // mandatory, the UI5 component invoking the service, shall be a root component! * * appStateKey: "abc123...", // optional, application state key to add to the generated links, SAP internal usage only. * * compactIntents: true // optional, whether intents should be returned in compact format. Defaults to false. * * ignoreFormFactor: true, // optional, defaults to false, deprecated, do not use, may have no effect in the future. * * tags: ["tag-1", "tag-2"] // optional, if specified, only returns links that match inbound with certain tags. * } * ``` * * * Starting from UI5 version 1.52.0 the `params` argument can be specified in the extended format: * * * ```javascript * * ... * params: { * P1: { value: "v1" }, * P2: { value: ["v2", "v3"] } * } * ``` * * * When the parameter is expressed in this format, the caller can specify additional search options. * * Besides 'value', supported search options for the extended format are: * **required**: whether the parameter must be required (true) or not required (false) in the signature * of the matching target (once the navigation occurs to the returned link). Note that this option will * be effective if the Fiori Launchpad is configured to resolve navigation targets via `sap.ushell.services.ClientSideTargetResolution` * and therefore may not be supported in all platforms. * * Example: * ```javascript * * ... * params: { * P1: { value: "v1", required: true }, * P2: { value: ["v2", "v3"] } * } * ... * ``` * * * This method supports a mass invocation interface to obtain multiple results with a single call, as * shown in the following example: * * * ```javascript * * oCrossApplicationService.getLinks([ // array, because multiple invocations are to be made * [ // arguments for the first invocation * { semanticObject: "SO" } // this method supports one parameter only in each call * ], * [ // arguments for the second invocation * { action: "someAction" } * ] * // ... and so on * ]).done(…); * ``` * * * Calling this method with no arguments will produce the same result as if the method was called with * an empty object. */ vArgs?: | { /** * Optional, matches any semantic objects if undefined */ semanticObject?: string; /** * Optional, matches any actions if undefined */ action?: string; /** * Optional business parameters */ params?: object; /** * Optional, defaults to false. If true, returns only the links that use at least one (non sap-) parameter * from 'params'. */ withAtLeastOneUsedParam?: boolean; /** * Optional parameter that decides on how the returned results will be sorted. */ sortResultsBy?: string; /** * Optional, defaults to false. If true, only apps that match exactly the supplied technology (e.g. sap-ui-tech-hint=WDA) * will be considered. */ treatTechHintAsFilter?: boolean; /** * Mandatory, the UI5 component invoking the service, shall be a root component. */ ui5Component: sap.ui.core.Component; /** * Optional, application state key to add to the generated links, SAP internal usage only. */ appStateKey?: string; /** * Optional, whether intents should be returned in compact format. Defaults to false. */ compactIntents?: boolean; /** * Optional, if specified, only returns links that match inbound with certain tags. */ tags?: string[]; } | Array<{ /** * Optional, matches any semantic objects if undefined */ semanticObject?: string; /** * Optional, matches any actions if undefined */ action?: string; /** * Optional business parameters */ params?: object; /** * Optional, defaults to false. If true, returns only the links that use at least one (non sap-) parameter * from 'params'. */ withAtLeastOneUsedParam?: boolean; /** * Optional parameter that decides on how the returned results will be sorted. */ sortResultsBy?: string; /** * Optional, defaults to false. If true, only apps that match exactly the supplied technology (e.g. sap-ui-tech-hint=WDA) * will be considered. */ treatTechHintAsFilter?: boolean; /** * Mandatory, the UI5 component invoking the service, shall be a root component. */ ui5Component: sap.ui.core.Component; /** * Optional, application state key to add to the generated links, SAP internal usage only. */ appStateKey?: string; /** * Optional, whether intents should be returned in compact format. Defaults to false. */ compactIntents?: boolean; /** * Optional, if specified, only returns links that match inbound with certain tags. */ tags?: string[]; }> ): jQuery.Promise; /** * For a given semantic object, this method considers all actions associated with the semantic object and * returns the one tagged as a "primaryAction". If no inbound tagged as "primaryAction" exists, then the * intent of the first inbound (after sorting has been applied) matching the action "displayFactSheet". * * The primary intent is determined by querying {@link sap.ushell.services.CrossApplicationNavigation#getLinks } * with the given semantic object and optional parameter. Then the resulting list is filtered to the outcome * that a single item remains. * * @since 1.48 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#getPrimaryIntent} instead. * * @returns Resolves to an object of the following form when a relevant link object exists: * ```javascript * * { * intent: "#AnObject-Action?A=B&C=e&C=j", * text: "Perform action", * icon: "sap-icon://Fiori2/F0018", // optional * shortTitle: "Perform" // optional * tags: ["tag-1", "tag-2"] // optional * } * ``` * Otherwise, the returned promise will resolve to null when no relevant link object exists. */ getPrimaryIntent( /** * Semantic object. */ sSemanticObject: string, /** * @see sap.ushell.services.CrossApplicationNavigation#getSemanticObjectLinks for description. */ mParameters?: object ): jQuery.Promise; /** * Resolves a given semantic object and business parameters to a list of links, taking into account the * form factor of the current device. * * @since 1.19.0 * @deprecated As of version 1.38. Please use {@link #getLinks} instead. * * @returns Resolves with an array of link objects containing (at least) the following properties: * ```javascript * * { * intent: "#AnObject-action?A=B&C=e", * text: "Perform action", * icon: "sap-icon://Fiori2/F0018", //optional * subTitle: "Action", //optional * shortTitle: "Perform" //optional * } * ``` * * * **NOTE:** the intents returned are in **internal** format and cannot be directly put into a link tag. * Example: Let the string `"C&A != H&M"` be a parameter value. Intent will be encoded as#AnObject-action?text=C%26A%20!%3D%20H%26M. * Note that the intent is in **internal** format, before putting it into a link tag, you must invoke: * ```javascript * * externalHash = oCrossApplicationNavigationService.hrefForExternal({ target : { shellHash : oLink.intent } }, that.oComponent); * ``` */ getSemanticObjectLinks( /** * the semantic object such as `"AnObject"` */ sSemanticObject: string, /** * the map of business parameters with values, for instance * ```javascript * * { * A: "B", * c: "e" * } * ``` */ mParameters?: object, /** * when set to `true` the form factor of the current device is ignored */ bIgnoreFormFactor?: boolean, /** * SAP UI5 Component invoking the service */ oComponent?: object, /** * application state key to add to the generated links, SAP internal usage only */ sAppStateKey?: string, /** * whether the returned intents should be returned in compact format. Defaults to false. */ bCompactIntents?: boolean ): jQuery.Promise; /** * Navigates back in history the number of given steps if this is supported by the underlying platform. * If no argument is provided it will navigate back 1 step. * * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#historyBack} instead. */ historyBack( /** * positive integer representing the steps to go back in the history */ iSteps: int ): void; /** * Returns a string which can be put into the DOM (e.g. in a link tag) given an application specific hash * suffix * * Example: `hrefForAppSpecificHash("View1/details/0/")` returns `#SemanticObject-action&/View1/details/0/` * if the current application runs in the shell and was started using "SemanticObject-action" as shell navigation * hash * * @since 1.15.0 * @deprecated As of version 1.94. Please use {@link #hrefForAppSpecificHashAsync} instead. * * @returns A string which can be put into the link tag, containing the current shell navigation target * and the specified application specific hash suffix */ hrefForAppSpecificHash( /** * the app specific router, obtained e.g. via router.getURL(...). Note that sAppHash shall not exceed 512 * bytes when serialized as UTF-8. */ sAppHash: string ): string; /** * Returns a Promise which resolves a string that can be put into the DOM (e.g. in a link tag) given an * application specific hash suffix * * Example: `hrefForAppSpecificHashAsync("View1/details/0/")` returns a Promise that resolves: `#SemanticObject-action&/View1/details/0/` * if the current application runs in the shell and was started using "SemanticObject-action" as shell navigation * hash * * @since 1.94.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#getHref} instead. * * @returns A promise which resolves a string which can be put into the link tag, containing the current * shell navigation target and the specified application specific hash suffix */ hrefForAppSpecificHashAsync( /** * the app specific router, obtained e.g. via router.getURL(...). Note that sAppHash shall not exceed 512 * bytes when serialized as UTF-8. */ sAppHash: string ): Promise; /** * Returns a string which can be put into the DOM (e.g. in a link tag). **Note:** The generated url / url * segment must not be used as `shellHash` in the target definition of {@link sap.ushell.services.CrossApplicationNavigation#toExternal} * * @since 1.15.0 * @deprecated As of version 1.98. Please use {@link sap.ushell.services.Navigation#getHref} instead. * * @returns the href for the specified parameters as an external shell hash; always starting with a hash * character; all parameters and parameter names are URL-encoded (via encodeURIComponent) and the complete * string is encoded via encodeURI (!). The generated string can not be used in the majority of interfaces * which expect a internal shell hash. * * A proper way for an application to generate a link to return to the home page of the Fiori launchpad * is: `hrefForExternal( { target : { shellHash : "#" }})` * * Do not use "#Shell-home" to navigate to a specific homepage! * * Note: if object is undefined, the current shell hash is returned. * * Note that the application parameter length (including SemanticObject/Action) shall not exceed 512 bytes * when serialized as UTF-8. * * The function can be used to convert an shell hash internal format commonly encountered into the URL format * to use in link tags: * ```javascript * * externalHash = oCrossApplicationNavigationService.hrefForExternal({ * target: { shellHash: oLink.intent } * }, that.oComponent); * ``` * * * Since version 1.56 this API accepts a sap-xapp-state-data parameter that can be used generate a url that * can be used to launch and application with certain data, for example: * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { "sap-xapp-state-data" : JSON.stringify({ a: "b", c: "d" }) } * } * ``` * * * Using the arguments as in the example above, a link with a sap-xapp-state parameter that encodes the * provided data is returned. The sap-xapp-state-data parameter does not appear in the generated link. */ hrefForExternal( /** * object encoding a semantic object and action, e.g. * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { A : "B" } * } * ``` * or e.g. * ```javascript * * { * target : { * semanticObject : "AnObject", * action: "action", context : "AB7F3C" * }, * params : { * A : "B", * c : "e" * } * } * ``` * or * ```javascript * { target : { shellHash : "SO-36?jumper=postman" } }``` */ oArgs: object, /** * the root component of the application */ oComponent: object, /** * if set to `true`, a promise will be returned instead of the direct argument. The promise will only succeed * after all compaction requests have been sent. `bAsync=false` is deprecated since 1.94. */ bAsync: boolean ): string | Promise; /** * Returns a string which can be put into the DOM (e.g. in a link tag). **Note:** The generated url / url * segment must not be used as `shellHash` in the target definition of {@link sap.ushell.services.CrossApplicationNavigation#toExternal} * * @since 1.15.0 * @deprecated As of version 1.98. Please use {@link sap.ushell.services.Navigation#getHref} instead. * * @returns the href for the specified parameters as an external shell hash; always starting with a hash * character; all parameters and parameter names are URL-encoded (via encodeURIComponent) and the complete * string is encoded via encodeURI (!). The generated string can not be used in the majority of interfaces * which expect a internal shell hash. * * A proper way for an application to generate a link to return to the home page of the Fiori launchpad * is: `hrefForExternal( { target : { shellHash : "#" }})` * * Do not use "#Shell-home" to navigate to a specific homepage! * * Note: if object is undefined, the current shell hash is returned. * * Note that the application parameter length (including SemanticObject/Action) shall not exceed 512 bytes * when serialized as UTF-8. * * The function can be used to convert an shell hash internal format commonly encountered into the URL format * to use in link tags: * ```javascript * * externalHash = oCrossApplicationNavigationService.hrefForExternal({ * target: { shellHash: oLink.intent } * }, that.oComponent); * ``` * * * Since version 1.56 this API accepts a sap-xapp-state-data parameter that can be used generate a url that * can be used to launch and application with certain data, for example: * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { "sap-xapp-state-data" : JSON.stringify({ a: "b", c: "d" }) } * } * ``` * * * Using the arguments as in the example above, a link with a sap-xapp-state parameter that encodes the * provided data is returned. The sap-xapp-state-data parameter does not appear in the generated link. */ hrefForExternal( /** * object encoding a semantic object and action, e.g. * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { A : "B" } * } * ``` * or e.g. * ```javascript * * { * target : { * semanticObject : "AnObject", * action: "action", context : "AB7F3C" * }, * params : { * A : "B", * c : "e" * } * } * ``` * or * ```javascript * { target : { shellHash : "SO-36?jumper=postman" } }``` */ oArgs: object, /** * if set to `true`, a promise will be returned instead of the direct argument. The promise will only succeed * after all compaction requests have been sent. `bAsync=false` is deprecated since 1.94. */ bAsync: boolean ): string | Promise; /** * Returns a promise resolving to a URL that launches an app with certain parameters. The URL can be used * to define a link to a Fiori application, for example. * * @since 1.94.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#getHref} instead. * * @returns A Promise which resolves href for the specified parameters as an *external* shell hash; always * starting with a hash character; all parameters and parameter names are URL-encoded (via encodeURIComponent) * and the complete string is encoded via encodeURI (!). The generated string can not be used in the majority * of interfaces which expect a internal shell hash. * * A proper way for an application to generate a link to return to the home page of the Fiori launchpad * is: `hrefForExternalAsync( { target : { shellHash : "#" }})` * * Do *not* use "#Shell-home" to navigate to a specific homepage! * * Note: if object is undefined, the current shell hash is returned. * * Note that the application parameter length (including SemanticObject/Action) shall not exceed 512 bytes * when serialized as UTF-8. * * The function can be used to convert an shell hash internal format commonly encountered into the URL format * to use in link tags: * ```javascript * * CrossApplicationNavigation.hrefForExternalAsync({ * target: { shellHash: oLink.intent } * }, that.oComponent).then( function (sExternalHref) { * // do something with the resolved sExternalHref. * }); * ``` * * * This API accepts a sap-xapp-state-data parameter that can be used generate a url that can be used to * launch and application with certain data, for example: * * * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { "sap-xapp-state-data" : JSON.stringify({ a: "b", c: "d" }) } * } * ``` * * * Using the arguments as in the example above, a link with a sap-xapp-state parameter that encodes the * provided data is returned. The sap-xapp-state-data parameter does not appear in the generated link. */ hrefForExternalAsync( /** * object encoding a semantic object and action, e.g. * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { A : "B" } * } * ``` * or e.g. * ```javascript * * { * target : { * semanticObject : "AnObject", * action: "action", context : "AB7F3C" * }, * params : { * A : "B", * c : "e" * } * } * ``` * or * ```javascript * * { * target : { * shellHash : "SO-36?jumper=postman" * } * } * ``` */ oArgs: object, /** * the root component of the application */ oComponent?: object ): Promise; /** * Checks wether the FLP currently shows the initially loaded navigation target (i.e. the intent it was * started with). This method can be used to e.g. detect whether the current app was started directly, that * is, without a navigation from another app or FLP home. * * @since 1.36.0 * @deprecated As of version 1.94. Please use {@link #isInitialNavigationAsync} instead. * * @returns Whether the initial navigation occurred. */ isInitialNavigation(): boolean; /** * Checks whether the FLP has performed the first navigation. This method can be used to detect whether * the current app was started directly, that is, without a previous navigation to another app, to the FLP * home, or another target that adds an entry in the browser history. * * @since 1.94.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#isInitialNavigation } * instead. * * @returns This promise resolves with a boolean indicating if the current navigation is considered initial */ isInitialNavigationAsync(): Promise; /** * Tells whether the given intent(s) are supported, taking into account the form factor of the current device. * "Supported" means that navigation to the intent is possible. Note that the intents are assumed to be * in internal format and expanded. * * @since 1.19.1 * @deprecated As of version 1.31. Please use {@link #isNavigationSupported} instead. Note that this has * a slightly different response format. * * @returns Resolves with a map containing the intents from `aIntents` as keys. The map values are objects * with a property `supported` of type `boolean`. * Example: * ```javascript * * { * "#AnObject-action?A=B&c=e": { supported: false }, * "#AnotherObject-action2": { supported: true } * } * ``` * * * Example usage: * ```javascript * * this.oCrossAppNav.isIntentSupported(["SalesOrder-approve?SOId=1234"]) * .done(function(aResponses) { * if (oResponse["SalesOrder-approve?SOId=1234"].supported===true){ * // enable link * } * else { * // disable link * } * }) * .fail(function() { * // disable link * // request failed or other error * }); * ``` */ isIntentSupported( /** * the intents (such as `["#AnObject-action?A=B&c=e"]`) to be checked */ aIntents: string[], /** * the root component of the application */ oComponent?: object ): jQuery.Promise; /** * Tells whether the given navigation intents are supported for the given parameters, form factor etc. . * "Supported" means that a valid navigation target is configured for the user and for the given device. * * `isNavigationSupported` is effectively a test function for {@link sap.ushell.services.CrossApplicationNavigation#toExternal } * and {@link sap.ushell.services.CrossApplicationNavigation#hrefForExternal}. * * It is functionally equivalent to {@link sap.ushell.services.CrossApplicationNavigation#isIntentSupported } * but accepts the same interface as {@link sap.ushell.services.CrossApplicationNavigation#toExternal} and * {@link sap.ushell.services.CrossApplicationNavigation#hrefForExternal}. * * @since 1.32 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#isNavigationSupported } * instead. * * @returns Resolves to an array of objects indicating whether the intent is supported or not. Each object * has a property `supported` of type `boolean`. * * Example: * * `aIntents`: * ```javascript * * [ * { * target : { * semanticObject : "AnObject", * action: "action" * }, * params : { P1 : "B", P2 : [ "V2a", "V2b"] } * }, * { * target : { * semanticObject : "SalesOrder", * action: "display" * }, * params : { P3 : "B", SalesOrderIds : [ "4711", "472"] } * } * ] * ``` * * * `response`: * ```javascript * * [ * { supported: false }, * { supported: true } * ] * ``` * * * Example usage: * ```javascript * * this.oCrossAppNav.isNavigationSupported([ * target: { shellHash: "SalesOrder-approve?SOId=1234" } * ]) * .done(function(aResponses) { * if (aResponses[0].supported===true){ * // enable link * } * else { * // disable link * } * }) * .fail(function() { * // disable link * // request failed or other fatal error * }); * ``` */ isNavigationSupported( /** * The intents to be checked, with `object[]` being instances of the `oArgs` argument of the `toExternal` * or `hrefForExternal` methods, e.g. * ```javascript * * { * target: { * semanticObject: "AnObject", * action: "action" * }, * params: { A: "B" } * } * ``` * or e.g. * ```javascript * * { * target: { * semanticObject: "AnObject", * action: "action" * }, * params: { * A: "B", * c: "e" * } * } * ``` * or * ```javascript * * { * target: { * shellHash: "SalesOrder-approve?SOId=1234" * } * } * ``` */ aIntents: object[], /** * The root component of the application */ oComponent?: object ): jQuery.Promise; /** * Resolves the URL hash fragment. * * This function gets the hash part of the URL and returns the URL of the target application. * * This is an asynchronous operation. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Resolves the intent. */ resolveIntent( /** * The formatted URL hash fragment in internal format (as obtained by the SAPUI5 hasher service) not as * given in `location.hash`)! Example: `#SemanticObject-action?P1=V1&P2=A%20B%20C` */ sHashFragment: string ): jQuery.Promise; /** * Triggers a navigation to a specified target outside of the currently running application (e.g. different * launchpad application). Invocation will trigger a hash change and subsequent invocation of the target. * * If the navigation target opens in a new window the running application may be retained. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#navigate} instead. * * @returns A `Promise` which resolves once the navigation was triggered. The `Promise` might never reject * or resolve when an error occurs during the navigation. */ toExternal( /** * A configuration object describing the navigation target. The navigation target can be provided as its * separate aspects like semantic object, action, parameters etc. in separate members of the configuration * object. * * **Note:** Parameter values can contain special characters and must be provided unencoded; the function * takes care for necessary encodings itself. * * Simple Example: * ```javascript * * { * target: { * semanticObject: "Customer", * action: "display" * }, * params: { * customerId: "0815-4711" * } * } * ``` * * * Example with text: * ```javascript * * { * target: { * semanticObject: "Note", * action: "create" * }, * params: { * noteText: "Thanks for reading the documentation!" * } * } * ``` * * * Example with a given context: * ```javascript * * { * target: { * semanticObject: "AnObject", * action: "action", * context: "AB7F3C" * }, * params: { * param1: "Value One" * } * } * ``` * * * Alternatively a `shellHash` can be provided that includes already all aspects of the navigation target: * semantic object, action, intent parameters, app-specific route (including app parameters) * * **Note:** While parameters need to be url-encoded once when used in the `shellHash` the app specific * route must not be encoded. * * Example with shellHash as target: * ```javascript * * { * target: { * shellHash: "Note-update?noteText=You%20got%20quite%20far&/Notes/My First Note" * } * } * ``` * * * To navigate to the homepage of the Fiori launchpad, navigate to `{target: {shellHash: "#"}}`. Do not * use "#Shell-home" or "Shell-home" to navigate to! * * To provide a complex parameter structure to a target app the pseudo parameter `sap-xapp-state-data` can * be used. * * Example: * ```javascript * * { * ... * params : { * "sap-xapp-state-data": JSON.stringify({ a: "b", c: "d" }) * } * } * ``` * * * The data specified via `sap-xapp-state-data` is passed to the target application in the `sap-xapp-state` * parameter. The `sap-xapp-state-data` parameter itself is not passed to the target application. * * **Note:** The parameter length (including semantic object and action) shall not exceed 512 bytes when * serialized as UTF-8. */ oArgs: object, /** * an optional UI5 component, used to logically attach a possibly generated app state. */ oComponent?: object ): Promise; } /** * The Unified Shell's end user feedback service. This service is deprecated and does nothing. End user * feedback functionality is not part of the ushell library. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const EndUserFeedback = await Container.getServiceAsync("EndUserFeedback"); * // do something with the EndUserFeedback service * }); * ``` * * * @since 1.25.1 * @deprecated As of version 1.93. Deprecated without successor. */ class EndUserFeedback extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * @since 1.25.1 * @deprecated As of version 1.93. Deprecated without successor. * * @returns Empty string */ getLegalText(): string; /** * The service is deprecated. The function always returns a negative answer. * * @since 1.25.1 * @deprecated As of version 1.93. Deprecated without successor. * * @returns Rejected promise. */ isEnabled(): Promise; /** * Sends a feedback. * * @since 1.25.1 * @deprecated As of version 1.93. Deprecated without successor. * * @returns Empty promise */ sendFeedback(): Promise; } /** * The Unified Shell's Extension service. Allows adding extensions on the user's home page. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Extension = await Container.getServiceAsync("Extension"); * // do something with the Extension service * }); * ``` * * * This service is available in any FLP context (native, iframe, ...). * * * All extension items and extension areas are instantiated as invisible. You have to call .show<...> to * make them visible. * * @since 1.120.0 */ class Extension extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates a header item in the shell header. **Restrictions:** * - The control properties are only allowed to contain primitive properties and event handlers. Bindings, * aggregations, controls and objects with prototypes are not allowed! * - The created controls cannot have stable ids! Instead you can provide a help id. * - The event handlers are not bound to the actual control and do not receive the event arguments. * * @since 1.120.0 * * @returns The newly created header item. */ createHeaderItem( /** * The properties that will be passed to the created control. */ controlProperties: sap.ushell.ui.shell.ShellHeadItem.Properties, /** * Additional parameters. */ parameters?: { /** * Possible values are `begin` and `end`. */ position?: string; /** * The help id of the user action. This allows to assign help content to the user action. */ helpId?: string; } ): Promise; /** * Creates a user action in the user action menu. * The `controlType` can be any control and is by default a {@link sap.ushell.ui.launchpad.ActionItem}. * The `controlProperties` are passed to the constructor of the control. * **Restrictions:** * - The control properties are only allowed to contain primitive properties and event handlers. Bindings, * aggregations, controls and objects with prototypes are not allowed! * - The created controls cannot have stable ids! Instead you can provide a help id. * - The event handlers are not bound to the actual control and do not receive the event arguments. * * @since 1.120.0 * * @returns The newly created user action. */ createUserAction( /** * The properties that will be passed to the created control. */ controlProperties: object, /** * Additional parameters. */ parameters?: { /** * Defines the `controlType` of the item. */ controlType?: string; /** * The help id of the user action. This allows to assign help content to the user action. */ helpId?: string; } ): Promise; } /** * The Unified Shell's Extension service. Allows adding extensions on the user's home page. * * **Note:** To retrieve a valid instance of this service, it is necessary to call `sap.ushell.Container.getServiceAsync("FrameBoundExtension")`. * For details, see {@link sap.ushell.Container#getServiceAsync}. * * **Restriction:** This Service does not work when called from within a iframe. The calling function * has to be in the 'same frame' as the launchpad itself. * * * All extension items and extension areas are instantiated as invisible. You have to call .show<...> to * make them visible. * * @since 1.124.0 */ class FrameBoundExtension extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Adds an entry to the user settings dialog box including the UI control that appears when the user clicks * the new entry, and handling of user settings actions such as SAVE and CANCEL. **Restriction:** NOT * available for apps running in an iframe * * @since 1.124.0 * * @returns Resolves with the new entry once the settings entry was added. */ addUserSettingsEntry( /** * The data of the new added user settings entry. */ properties: { /** * The ID of the object. */ entryHelpID?: string; /** * The title of the entry to be presented in the list in the user settings dialog box. We recommend using * a string from the translation bundle. */ title: string; /** * A string to be presented as the subtitle of the entry OR a function which resolves the sub title. */ value: string | (() => Promise); /** * A function that resolves the content which has to be a {@link sap.ui.core.Control}. A SAPUI5 view instance * can also be returned. The result will be displayed in the settings as content for this entry. */ content: () => Promise; /** * A callback which is called when the user clicks "save" in the user settings dialog. The function has * to return a native promise. If an error occurs, pass the error message via rejected promise. Errors are * displayed in the common log. */ onSave: () => Promise; /** * A callback which is called when the user closes the user settings dialog without saving any changes. */ onCancel: Function; /** * Set this value to `true` if you want that your content is displayed without the standard header. */ provideEmptyWrapper?: boolean; } ): Promise; /** * Creates a new footer which is positioned below the launchpad content. * * The `controlType` can be any control and is by default a {@link sap.m.Bar}. The `controlProperties` are * passed to the constructor of the control. * * **Note:** Only one footer is displayed at once. Any new footer will replace the previous one **Note:** * As several application views can provide own footer's, usage can result in a non aria complained HTML * structure. Two 'footer' tags will be present in the HTML structure which ends in an invalid accessibility * state. **Restriction:** NOT available for apps running in an iframe * * @since 1.124.0 * * @returns The newly created footer. */ createFooter( /** * The properties that will be passed to the created control. */ controlProperties: object, /** * Additional parameters. */ parameters?: { /** * Defines the `controlType`. */ controlType?: string; } ): Promise; /** * Creates a header item in the shell header. * * @since 1.124.0 * * @returns The newly created header item. */ createHeaderItem( /** * The properties that will be passed to the created control. */ controlProperties: sap.ushell.ui.shell.ShellHeadItem.Properties, /** * Additional parameters. */ parameters?: { /** * Possible values are `begin` and `end`. */ position?: string; } ): Promise; /** * Creates a new sub header which is positioned below the header. * * The `controlType` can be any control and is by default a {@link sap.m.Bar}. The `controlProperties` are * passed to the constructor of the control. * * **Note:** Only one sub header is displayed at once **Restriction:** NOT available for apps * running in an iframe * * @since 1.124.0 * * @returns The newly created sub header. */ createSubHeader( /** * The properties that will be passed to the created control. */ controlProperties: object, /** * Additional parameters. */ parameters?: { /** * Defines the `controlType`. */ controlType?: string; } ): Promise; /** * Creates a user action in the user action menu. * * The `controlType` can be any control and is by default a {@link sap.ushell.ui.launchpad.ActionItem}. * The `controlProperties` are passed to the constructor of the control. * * @since 1.124.0 * * @returns The newly created user action. */ createUserAction( /** * The properties that will be passed to the created control. */ controlProperties: object, /** * Additional parameters. */ parameters?: { /** * Defines the `controlType` of the item. */ controlType?: string; } ): Promise; /** * Returns the API for the SidePane which is located next to the launchpad content. **Restriction:** * NOT available for apps running in an iframe * * @since 1.124.0 * * @returns The SidePane. */ getSidePane(): Promise; /** * Returns the API for the ToolArea which is located next to the launchpad content. **Restriction:** * NOT available for apps running in an iframe * * @since 1.124.0 * * @returns The ToolArea. */ getToolArea(): Promise; } /** * A service for handling groups, tiles and catalogs. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const LaunchPage = await Container.getServiceAsync("LaunchPage"); * // do something with the LaunchPage service * }); * ``` * * * The functions that return the main objects are getGroups, getGroupTitle, getCatalogs and getCatalogTiles. * Since the implementation (i.e. adapter) is platform specific, do not call or access properties and functions * of returned objects. Instead, use other functions of the LaunchPage service with the relevant object * as the input parameter. * * When using the content extension factory, any extended content needs to refer to the correct adapter * with the field "contentProvider". * * @since 1.15.0 * @deprecated As of version 1.99. Deprecated without successor together with the classic homepage. */ class LaunchPage extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Adds a new group. * * Intention: the page builder adds this group to the end of the home screen. * * In case of failure it gets the consistent (i.e. persisted) backend state of all groups. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the group was added. */ addGroup( /** * The title of the new group */ sTitle: string ): jQuery.Promise; /** * Adds a new group at a specific location. * * Intention: the page builder adds this group to the specific location on the home screen. * * In case of error it gets the consistent (i.e. persisted) backend state of all groups. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves the group. */ addGroupAt( /** * The title of the new group */ sTitle: string, /** * the location of the new group */ iIndex: int ): jQuery.Promise; /** * Adds a tile to a group. * * If no group is provided then the tile is added to the default group. * * Intention: the page builder by default puts this tile at the end of the default group. In case of failure * it gets the consistent (i.e. persisted) backend state of the default group. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the tile was added. */ addTile( /** * An 'anonymous' tile from the tile catalog */ oCatalogTile: object, /** * The target group */ oGroup?: object ): jQuery.Promise; /** * Returns the press handler for clicking on a tile. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns handler for clicking on the tile. */ getAppBoxPressHandler( /** * The tile */ oTile: object ): Function; /** * Returns catalog's technical data. * * @since 1.21.2 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns An object that includes the following properties (the list may include additional properties): * * `id`: the catalog ID `systemId`: [remote catalogs] the ID of the remote system `remoteId`: [remote * catalogs] the ID of the catalog in the remote system `baseUrl`: [remote catalogs] the base URL of * the catalog in the remote system */ getCatalogData( /** * the catalog */ oCatalog: object ): object; /** * Returns the catalog's technical error message in case it could not be loaded from the backend. **Beware:** * The technical error message is not translated! * * @since 1.17.1 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The technical error message or `undefined` if the catalog was loaded properly */ getCatalogError( /** * the catalog */ oCatalog: object ): string; /** * Returns the catalog's unique identifier * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Catalog id */ getCatalogId( /** * The catalog */ oCatalog: object ): string; /** * Returns the catalogs of the user. Only severe failures make the overall operation fail. If loading * of a remote catalog fails, this is handled gracefully by providing a "dummy" empty catalog (with ID instead * of title). Use {@link getCatalogError} to check if a (remote) catalog could not be loaded from the backend. * Progress notifications are sent for each single catalog, i.e. attaching a `progress` handler gives * you the same possibilities as attaching a `done` handler, but with the advantage of improved responsiveness. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves an array of black-box catalog objects is provided (which might be empty). In case of * failure, an error message is passed. Progress notifications are sent for each single catalog, providing * a single black-box catalog object each time. */ getCatalogs(): jQuery.Promise; /** * Returns catalog tile's content provider ID. * * * @returns Tile content provider ID */ getCatalogTileContentProviderId( /** * The tile or the catalog tile */ oTile: object ): string; /** * Returns catalog tile's unique identifier. This function may be called for a catalog tile or (since 1.21.0) * for a group tile. In the latter case, the function returns the unique identifier of the catalog tile * on which the group tile is based. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Tile id */ getCatalogTileId( /** * The tile or the catalog tile */ oTile: object ): string; /** * Returns the keywords associated with a catalog tile which can be used to find the catalog tile in a search. * Note: getCatalogTileViewControl **must** be called **before** this method. Otherwise the keywords may * be incomplete. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The keywords associated with this catalog tile */ getCatalogTileKeywords( /** * The catalog tile */ oCatalogTile: object ): string[]; /** * Returns preview icon for a catalog tile. * * @since 1.16.3 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Preview icon as URL/URI for the catalog tile's underlying application as provided via the "preview" * contract */ getCatalogTilePreviewIcon( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns the catalog tile info * * @since 1.67.0 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The catalog tile info */ getCatalogTilePreviewInfo( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns preview subtitle for a catalog tile. * * @since 1.40 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Preview subtitle for the catalog tile's underlying application as provided via the "preview" * contract */ getCatalogTilePreviewSubtitle( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns preview title for a catalog tile. * * @since 1.16.3 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Preview title for the catalog tile's underlying application as provided via the "preview" contract */ getCatalogTilePreviewTitle( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns the tiles of a catalog. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolve the catalog tiles. */ getCatalogTiles( /** * The catalog */ oCatalog: object ): jQuery.Promise; /** * Returns the size of a catalog tile as a string. For example: "1x1", "1x2" * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Tile size in units in 1x1 or 1x2 format */ getCatalogTileSize( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns the tags associated with a catalog tile which can be used to find the catalog tile in a tag filter. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The tags associated with this catalog tile */ getCatalogTileTags( /** * The catalog tile */ oCatalogTile: object ): string[]; /** * Returns the navigation target URL of a catalog tile. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The target URL for the catalog tile's underlying application as provided via the "preview" contract */ getCatalogTileTargetURL( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns the technical attributes associated with a catalog tile which can be used define additional tags * for apps. Note: getCatalogTileViewControl **must** be called **before** this method. Otherwise the technical * attributes may be incomplete. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The technical attributes associated with this catalog tile if this is supported by the adapter * implementation */ getCatalogTileTechnicalAttributes( /** * The catalog tile */ oCatalogTile: object ): string[]; /** * Returns the catalog tile's title * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Tile title */ getCatalogTileTitle( /** * The catalog tile */ oCatalogTile: object ): string; /** * Returns the UI5 view or control of a catalog tile * * @deprecated As of version 1.48. Please use {@link #getCatalogTileViewControl} instead. * * @returns UI5 view or control */ getCatalogTileView( /** * The catalog tile */ oCatalogTile: object, /** * SAP-internal: Whether the tile should be displayed in preview mode */ bPreview?: boolean ): object; /** * Returns the UI5 view or control of a catalog tile * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves the Catalog Tile View */ getCatalogTileViewControl( /** * The catalog tile */ oCatalogTile: object, /** * SAP-internal: Whether the tile should be displayed in preview mode */ bPreview?: boolean ): jQuery.Promise; /** * Returns the catalog's title * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Catalog title */ getCatalogTitle( /** * The catalog */ oCatalog: object ): string; /** * Returns the default group of the user. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves the default group. */ getDefaultGroup(): jQuery.Promise; /** * Returns the unique identifier of the given group * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Group id */ getGroupId( /** * The group whose id is returned */ oGroup: object ): string; /** * Returns the groups of the user. The order of the array is the order in which the groups will be displayed * to the user. * * @deprecated As of version 1.99. Alternative for use with {@link sap.ushell.services.Bookmark} is {@link sap.ushell.services.Bookmark#getContentNodes}. * * @returns A promise that resolves to the list of groups */ getGroups(): jQuery.Promise; /** * Returns an array of 'anonymous' tiles of a group. The order of the array is the order of tiles that will * be displayed to the user. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The group tiles array */ getGroupTiles( /** * The group whose tiles are returned */ oGroup: object ): object[]; /** * Returns the title of the given group. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns group title */ getGroupTitle( /** * The group whose title is returned */ oGroup: object ): string; /** * Returns an array of link tiles for a group. The order of the array is the order in which the links will * be displayed to the user. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The array of link tiles */ getLinkTiles( /** * The group whose link tiles are returned */ oGroup: object ): object[]; /** * Returns the tile's unique identifier * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Tile id */ getTileId( /** * The tile */ oTile: object ): string; /** * Returns the tile size in the format of 1x1 or 1x2 string * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns tile size in units in 1x1 format */ getTileSize( /** * The tile */ oTile: object ): string; /** * Returns the tile's navigation target. * * The navigation target string is used (when assigned to `location.hash`) for performing a navigation action * that eventually opens the application represented by the tile. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns the tile target */ getTileTarget( /** * the tile */ oTile: object ): string; /** * Returns the tile's title. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The title */ getTileTitle( /** * The tile */ oTile: object ): string; /** * Returns the tile's type. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns The type */ getTileType( /** * The tile */ oTile: object ): string; /** * Returns UI5 view or control of the tile. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves the UI5 view or control of the tile. */ getTileView( /** * The tile */ oTile: object ): jQuery.Promise; /** * Returns whether the catalogs collection previously returned by `getCatalogs()` is still valid. * * Initially the result is `false` until `getCatalogs()` has been called. Later, the result might be `false` * again in case one of the catalogs has been invalidated, e.g. due to adding a tile to a catalog ("Add * to catalog" scenario). * See: * #getCatalogs * * @since 1.16.4 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns `true` in case the catalogs are still valid; `false` if not */ isCatalogsValid(): boolean; /** * Checks if a group was marked as featured (meaning the group is a Fiori 3 featured group). * * Returns `true` if the group is featured and `false` if not. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns `true` if featured; `false` if not (or as default in case the function was not implemented in * the proper adapter). */ isGroupFeatured( /** * The group to be checked */ oGroup: object ): boolean; /** * Checks if a group was marked as locked (meaning the group and its tiles will lack several capabilities * such as Rename, Drag&Drop...). * * Returns `true` if the group is locked and `false` if not. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns `true` if locked; `false` if not (or as default in case the function was not implemented in * the proper adapter). */ isGroupLocked( /** * The group to be checked */ oGroup: object ): boolean; /** * Checks if a group can be removed. * * Returns `true` if the group can be removed (i.e. if the given group was created by the user) and `false` * if the group can only be reset. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns `true` if removable; `false` if resettable */ isGroupRemovable( /** * The group to be checked */ oGroup: object ): boolean; /** * Moves a group to a new index (i.e. location). * * Intention: the page builder already moved the page (visible to the user) and if successful - nothing * needs to be done. In case of failure it gets the consistent (i.e. persisted) backend state of all groups. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the group was moved. */ moveGroup( /** * The group to be moved */ oGroup: object, /** * The new index for the group */ iNewIndex: int ): jQuery.Promise; /** * Moves a tile within a group or between different groups. * * Intention: the page builder already moved the tile. * * In case of failure it gets the consistent (i.e. persisted) backend state of the source group and the * target group. The result is in the following format {source:[{},{}], target:[{},{}]}. * * The source and the target groups tiles are in the form of the @see sap.ushell.services.LaunchPage.getGroupTiles * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the tile was moved. */ moveTile( /** * a tile instance to be moved. The same object type as the one returned by `sap.ushell.services.LaunchPage.getGroupTiles` */ oTile: object, /** * the index in the source group */ iSourceIndex: int, /** * the target group index, in case this parameter is not supplied we assume the move tile is within the * source group using iSourceIndex */ iTargetIndex: int, /** * the source group the tile came from */ oSourceGroup: object, /** * The same object type as the one returned by `sap.ushell.services.LaunchPage.getGroups` the target group * the tile will be placed in, in case this parameter is not supplied we assume the move tile is within * the source group */ oTargetGroup?: object, /** * (added with 1.46) The new type of the tile */ sNewTileType?: string ): jQuery.Promise; /** * Triggers a refresh action of a tile. Typically this action is related to the value presented in dynamic * tiles * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ refreshTile( /** * The tile */ oTile: object ): void; /** * Register an external tile actions provider callback function. * * The callback has to return an array of actions of the given tile. The callback is triggered when @see * sap.ushell.services.LaunchPage.getTileActions is called. * * Tile actions are additional operations that can be executed on a tile, and can be provided by external * providers. * * A tile action is an object with the following properties: text, icon and targetURL or a press handler. * * Tile actions should be returned immediately without any additional server access in order to avoid delays * in rendering the action list in the browser. * * @deprecated As of version 1.99. Deprecated together with the classic homepage. */ registerTileActionsProvider( /** * A callback which returns an array of action objects. */ fnProvider: object ): void; /** * Removes a group. * * Intention: the page builder already removed the page (or hid it from the user) and if successful - nothing * needs to be done. * * In case of failure it gets the consistent (i.e. persisted) backend state of all groups. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the group was removed. */ removeGroup( /** * The group to be removed */ oGroup: object, /** * The index of the group to be removed */ iIndex: int ): jQuery.Promise; /** * Removes a tile from a group. * * Intention: the page builder has already 'hidden' (or removed) the tile. * * In case of failure it gets the consistent (i.e. persisted) backend state of the group. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the tile was removed. */ removeTile( /** * The group from which to remove the tile instance */ oGroup: object, /** * The tile instance to remove */ oTile: object, /** * The tile index */ iIndex: int ): jQuery.Promise; /** * Resets a group. * * The reset action is relevant for a group that was assigned to the user by an administrator. The reset * action means that the group is set back to the state defined by the administrator, and changes made by * the end user (e.g. adding tiles) are removed. A group can be reset multiple times. * * In case of failure, or when the given group was created by the user (i.e. can't be reset)- it gets, the * consistent (i.e. persisted) backend state of all groups. The returned group object is the same as the * one returned by @see sap.ushell.services.LaunchPage.getGroups * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the group was reset. */ resetGroup( /** * The group to be reset */ oGroup: object, /** * The index of the group to be reset */ iIndex: int ): jQuery.Promise; /** * Sets the title of an existing group. * * Intention: the page builder knows the new title, and if successful nothing needs to be done, as the title * is already visible to the user. In case of failure it gets the consistent (i.e. persisted) backend state * of the group title, in most cases the old title. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. * * @returns Resolves once the group title was set. */ setGroupTitle( /** * The group whose title is set */ oGroup: object, /** * The new title of the group */ sTitle: string ): jQuery.Promise; /** * Sets the tile's visibility state and notifies the tile about the change. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ setTileVisible( /** * The tile */ oTile: object, /** * The tile's required visibility state. */ bNewVisible: boolean ): void; } /** * Message service. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Message = await Container.getServiceAsync("Message"); * // do something with the Message service * }); * ``` * * * @since 1.16.0 * @deprecated As of version 1.120. Please use {@link sap.m.MessageToast}, {@link sap.m.MessageBox}, or * {@link sap.m.Dialog} instead. */ class Message extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); } /** * The Unified Shell's Navigation service. Allows navigating to "external" targets outside of the currently * running app (but still in scope of the current Fiori launchpad) or to create links to such external targets. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Navigation = await Container.getServiceAsync("Navigation"); * // do something with the Navigation service * }); * ``` * * * The Navigation service currently provides platform independent functionality. * * The service is meant to be used by applications, plugins and shell components. * * Usage: * ```javascript * * const sHref = await Navigation.getHref({ * target : { * semanticObject: "Product", * action: "display" * }, * params: { * "ProductID": "102343333" * } * }, oComponent); * // do something with the resolved sHref. * ``` * * * Parameter names and values are case sensitive. * * Note that the usage of multi-valued parameters (specifying an array with more than one member as parameter * value, e.g. `params : { A : ["a1", "a2"] }`) is possible with this API but **strongly discouraged**. * Depending on the used platform / back-end implementation the target matching might not support multi-value * parameters. Furthermore, it is not guaranteed that additional parameter values specified in the back-end * configuration are merged with parameter values passed via the Navigation service. * * Note that the application parameter length (including SemanticObject/Action) shall not exceed 512 bytes * when serialized as UTF-8. * * Note that when receiving the values as startup parameters (as part of the component data object) single * values are represented as an array of size 1. Above example is returned as ` deepEqual(getComponentData().startupParameters * , { "ProductID" : [ "102343333" ] } ) ` * * Make sure not to store sensitive data within an URL. URLs may appear in a server log, be persisted inside * and outside the system. * * Note: When constructing large URLs, the URLs may be shortened and persisted on a database server for * prolonged time, the actual data is persisted under a key accessible to any User (guessing the key). * * The same restrictions apply for the Application state. * * @since 1.120.0 */ class Navigation extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Attempts to use the browser history to navigate to the previous app. * * A navigation to the Fiori launchpad Home is performed when this method is called on a first navigation. * In all other cases, this function simply performs a browser back navigation. * * Note that the behavior of this method is subject to change and therefore it may not yield to the expected * results especially on mobile devices where "back" is the previous inner-app state if these are put into * the history! * * @since 1.120.0 * * @returns A promise which resolves once the back navigation was triggered */ backToPreviousApp(): Promise; /** * Returns a promise resolving to a URL that launches an app with certain parameters. This API can be used * to convert the internal shell hash format into the URL format for use in link tags. The resulting href * is fully encoded and cannot be used in other APIs expecting the internal decoded hash. * * * ```javascript * * const sHref = await Navigation.getHref({ * target: { shellHash: oLink.intent } * }, oComponent); * // do something with the resolved sHref. * ``` * * * This API accepts a sap-xapp-state-data parameter that can be used generate a url that can be used to * launch an app with certain data, for example: * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { "sap-xapp-state-data" : JSON.stringify({ a: "b", c: "d" }) } * } * ``` * Using the arguments as in the example above, a link with a sap-xapp-state parameter that encodes the * provided data is returned. The sap-xapp-state-data parameter does not appear in the generated link. * * Do **not** use "#Shell-home" to navigate to a specific homepage! * A proper way for an application to generate a link to return to the home page of the Fiori launchpad * is: * `getHref( { target : { shellHash : "#" }})` * * @since 1.120.0 * * @returns A Promise resolving the encoded href. */ getHref( /** * The navigation target to transform. When omitted the current hash is used as basis for the calculation. */ oTarget?: sap.ushell.services.Navigation.Target, /** * A UI5 component, used to logically attach any related app state. */ oComponent?: sap.ui.core.Component ): Promise; /** * Resolves the given filters to a list of links available to the user. * * @since 1.120.0 * * @returns A promise that resolves an array with a list for each filter containing the matched links. * **Note:** The intent is in a **internal** format and cannot be directly put into a link tag. If you want * to use it directly you have to transform it first into a href. * ```javascript * * const sHref = await NavigationService.getHref({ target: { shellHash: oLink.intent} }, oComponent); * ``` */ getLinks( /** * A list of target filters. */ aLinkFilter?: sap.ushell.services.Navigation.LinkFilter[] ): Promise; /** * For a given semantic object, this method considers all actions associated with the semantic object and * returns the one tagged as a "primaryAction". * If no inbound tagged as "primaryAction" exists, then the intent of the first inbound (after sorting has * been applied) matching the action "displayFactSheet". * * The primary intent is determined by querying {@link sap.ushell.services.Navigation#getLinks} with the * given semantic object and optional parameter. * Then the resulting list is filtered to the outcome that a single item remains. * * @since 1.120.0 * * @returns A promise resolving a link matching the 'primaryAction' tag. */ getPrimaryIntent( /** * The semantic object. */ sSemanticObject: string, /** * A target filter. */ oLinkFilter?: sap.ushell.services.Navigation.LinkFilter ): Promise; /** * Returns a list of semantic objects of the intents the current user can navigate to. * * @since 1.120.0 * * @returns A promise that resolves with an array of strings representing the semantic objects of the intents * the current user can navigate to, or rejects with an error message. The returned array will not contain * duplicates. * **Note:** the caller should not rely on the specific order the semantic objects appear in the returned * array. */ getSemanticObjects(): Promise; /** * Navigates back in history the number of given steps if this is supported by the underlying platform. * If no argument is provided it will navigate back 1 step. * * @since 1.120.0 */ historyBack( /** * positive integer representing the steps to go back in the history */ iSteps?: int ): void; /** * Checks whether the FLP has performed the first navigation. This method can be used to detect whether * the current app was started directly, that is, without a previous navigation to another app, to the FLP * home, or another target that adds an entry in the browser history. * * @since 1.120.0 * * @returns This promise resolves with a boolean indicating if the current navigation is considered initial */ isInitialNavigation(): Promise; /** * Calculates whether the given navigation targets are supported for the given parameters, form factor etc. * . "Supported" means that a valid navigation target is configured for the user and for the given device. * * `isNavigationSupported` is a test function for {@link sap.ushell.services.Navigation#navigate} and {@link sap.ushell.services.Navigation#getHref}. * * Example usage: * ```javascript * * const aResult = await oNavigationService.isNavigationSupported([{ * target: { shellHash: "SalesOrder-approve?SOId=1234" } * }]) * if (aResult[0].supported===true){ * // enable link * } * else { * // disable link * } * ``` * * * @since 1.120.0 * * @returns A promise that resolves to an array of objects indicating whether the intent is supported or * not. Each object has a property `supported` of type `boolean`. */ isNavigationSupported( /** * A list of navigation targets to be checked. */ aTargets: sap.ushell.services.Navigation.Target[], /** * The root component of the application. */ oComponent?: sap.ui.core.Component ): Promise< Array<{ supported: boolean; }> >; /** * Triggers a navigation to a specified target outside of the currently running application (e.g. different * launchpad application). Invocation will trigger a hash change and subsequent invocation of the target. * * If the navigation target opens in a new window the running application may be retained. * * This API accepts a sap-xapp-state-data parameter that can be used generate a url that can be used to * launch an app with certain data, for example: * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { "sap-xapp-state-data" : JSON.stringify({ a: "b", c: "d" }) } * } * ``` * Using the arguments as in the example above, a link with a sap-xapp-state parameter that encodes the * provided data is returned. The sap-xapp-state-data parameter does not appear in the generated link. * * Do **not** use "#Shell-home" to navigate to a specific homepage! * A proper way for an application to generate a link to return to the home page of the Fiori launchpad * is: * `navigate( { target : { shellHash : "#" }})` * * @since 1.120.0 * * @returns A Promise resolving once the navigation was triggered. The Promise might never reject or resolve * when an error occurs during the navigation. */ navigate( /** * The navigation target. */ oTarget: sap.ushell.services.Navigation.Target, /** * A UI5 component, used to logically attach any related app state. */ oComponent?: sap.ui.core.Component ): Promise; /** * Resolves the URL hash fragment. This function gets the hash part of the URL and returns the URL of the * target application. * * @since 1.120.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns A Promise resolving the intent. */ resolveIntent( /** * The formatted URL hash fragment in internal format (as obtained by the SAPUI5 hasher service) not as * given in `location.hash`)! Example: `#SemanticObject-action?P1=V1&P2=A%20B%20C` */ sHashFragment: string ): Promise<{ url: string; }>; } /** * The Unified Shell's internal navigation target resolution service. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const NavTargetResolution = await Container.getServiceAsync("NavTargetResolution"); * // do something with the NavTargetResolution service * }); * ``` * * * Methods in this class deal with *internal* representations of the shell hash. * * configurations: `config : { allowTestUrlComponentConfig : true }` allow to redefine the Test-url, Test-local1, * Test-local2 applications via url parameters (sap-ushell-test-local1-url= / sap-ushell-test-local1-additionalInformation= * ... ) * * @since 1.15.0 * @deprecated As of version 1.120. Use {@link sap.ushell.services.Navigation} for Navigation instead. */ class NavTargetResolution extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * expands a URL hash fragment * * This function gets the hash part of the URL and expands a sap-intent-param if present and retrievable * * This is an asynchronous operation. * * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves expanded shell hash (in internal format). */ expandCompactHash( /** * The formatted URL hash fragment in internal format (as obtained by the SAPUI5 hasher service, not as * given in `location.hash`) */ sHashFragment: string ): jQuery.Promise; /** * Tells whether the given navigation intent(s) are supported for the given parameters Supported" means * that a valid navigation target is configured for the user for the given device form factor. * * This is effectively a test function for {@link toExternal}/ {@link hrefForExternal}. It function accepts * the same input as {@link toExternal}/ {@link hrefForExternal}. * * @since 1.32 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Navigation#isNavigationSupported } * instead. * * @returns Resolves an array of objects representing whether the intent is supported or not objects with * a property `supported` of type `boolean`. * Example: * * aIntents: an array of parameterized (parsed) Intent objects, in the corresponding structure to arguments * to {@link sap.ushell.services.CrossApplicationNavigation.toExternal}, {@link sap.ushell.services.CrossApplicationNavigation.hrefForExternal } * * ```javascript * * [ * { * target : { * semanticObject : "AnObject", * action: "action" * }, * params : { P1 : "B", P2 : [ "V2a", "V2b"] } * }, * { * target : { * semanticObject : "SalesOrder", * action: "display" * }, * params : { P3 : "B", SalesOrderIds : [ "4711", "472"] } * } * ] * ``` * * * The following formats are also supported as input to ease migration of existing code: `[ "#AnObject-action?P1=B&SalesOrderIds=4711&SalesOrderIds=472" * ]` * * response: * ```javascript * * [ * { supported: false }, * { supported: true } * ] * ``` * * * Example usage: * ```javascript * * this.oCrossAppNav.isNavigationSupported([ ]) * .done(function(aResponses) { * if (oResponse[0].supported===true){ * // enable link * } * else { * // disable link * } * }) * .fail(function() { * // disable link * // request failed or other fatal error * }); * ``` */ isNavigationSupported( /** * the intents (such as `["#AnObject-action?A=B&c=e"]`) to be checked with object being instances the oArgs * object of toExternal, hrefForExternal etc. e.g. * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { A : "B" } * } * ``` * or e.g. * ```javascript * * { * target : { semanticObject : "AnObject", action: "action" }, * params : { A : "B", c : "e" } * } * ``` * or `{ target : { shellHash : "AnObject-action?A=B&c=e" } }` */ aIntents: object[] ): jQuery.Promise; /** * Resolves the URL hash fragment. * * This function should be used by a custom renderer in order to implement custom navigation. Do not use * this function for developing Fiori applications. * * This function gets the hash part of the URL and returns data of the target application. * * Example of the returned data: * ```javascript * * { * "additionalInformation": "SAPUI5.Component=sap.ushell.renderer.search.container", * "applicationType": "URL", * "url": "/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell/renderer/search/container", * "navigationMode": "embedded" * } * ``` * * * This is an asynchronous operation. * * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves an object that you can use to create a {@link sap.ushell.components.container.ApplicationContainer } * or `undefined` in case the hash fragment was empty. Typically it contains the following information: * * ```javascript * * { * "applicationType": "URL", * "url": "/sap/bc/", * "additionalInformation": "SAPUI5.Component=com.sap.AComponent", * "text": "My targetmapping description", * "navigationMode": "embedded" * } * ``` * The `navigationMode` indicates how the target application should be navigated. It is added to the * result using the logic in {@link navigationMode#getNavigationMode} if none of the resolvers in the chain * added it. No navigation should occur when the promise is resolved to `undefined`. */ resolveHashFragment( /** * The formatted URL hash fragment in internal format (as obtained by the SAPUI5 hasher service) not as * given in `location.hash`)! Example: `#SemanticObject-action?P1=V1&P2=A%20B%20C` */ sHashFragment: string ): jQuery.Promise; /** * Resolves a navigation target taking into account the sap-system * * This function should be used by the NWBC browser in order to get a resolved target corresponding to a * certain configuration object describing the target. Do not use this function for developing Fiori applications. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Resolves an object. Typically it contains the following information: * ```javascript * * { * "url": "/sap/bc/", * "text": "My targetmapping description", * "externalNavigationMode": boolean * } * ``` */ resolveTarget( /** * * ```javascript * * { * target : { * semanticObject : "semantic object", * action : "action", * }, * params : { * "sap-system-src": "e.g. sid(UR5.120)", * "sap-system": { * ... data related to the sap-system * } * } * } * ``` */ oArgs: object ): jQuery.Promise; } /** * UShell service for fetching user notification data from the Notification center/service * and exposing them to the Unified Shell and Fiori applications UI controls. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Notifications = await Container.getServiceAsync("Notifications"); * // do something with the Notifications service * }); * ``` * * * In order to get user notifications, Unified Shell notification service issues OData requests * to the service defined by the configuration property `serviceUrl`, * for example: "/sap/opu/odata4/iwngw/notification/default/iwngw/notification_srv/0001" * . * * Unified Shell Notification service has several working modes, depending on the environment and the available * resources: * PackagedApp mode: Fiori launchpad runs in the context of PackagedApp * FioriClient mode: Fiori launchpad runs in the context of FioriLaunchpad * WebSocket mode: Fiori launchpad runs in a browser, and WebSocket connection to the notifications provider * is available * Polling mode: Fiori launchpad in runs in a browser, and WebSocket connection to the notifications provider * is not available * * * The notification service exposes an API that includes: - Service enabling and initialization * - Registration of callback functions (by Shell/FLP controls) that will be called for every data update * . - Retrieval of notification data (e.g. notifications, number of unseen notifications) - Execution of * a notification actions - Marking user notifications as seen * * @since 1.32.0 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2} instead. */ class Notifications extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Launches dismiss notification call. * * * @since 1.34 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#dismissNotification } * instead. * * @returns Resolves to undefined or it is rejected with a message object */ dismissNotification( /** * The ID of the notification whose action is being executed */ sNotificationId: string ): jQuery.Promise; /** * Launches a notification action oData call. * After launching the action, the function gets updated notification data in order to push the updated * data to the consumers. * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#executeBulkAction } * instead. * * @returns Promise object that on success resolves to undefined or it is rejected with failed notifications */ executeBulkAction( /** * The ID of the notification header/group whose action is being executed */ sNotificationGroupId: string, /** * The ID of the action that is being executed */ sActionId: string ): Promise; /** * Returns the notifications of the user sorted by type include the group headers and the notifications * * @since 1.38 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#getNotificationsByTypeWithGroupHeaders } * instead. * * @returns Resolves all notification items */ getNotificationsByTypeWithGroupHeaders(): jQuery.Promise; /** * Returns the number of notifications * e.g. Notifications for user. * * @since 1.44 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#getNotificationsCount } * instead. * * @returns Returns the number of notifications of the user */ getNotificationsCount(): int; /** * Returns the group headers of the user notifications * * @since 1.44 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#getNotificationsGroupHeaders } * instead. * * @returns Resolves all group headers */ getNotificationsGroupHeaders(): jQuery.Promise; /** * Returns the number of unseen notifications * e.g. Notifications that the user hasn't seen yet. * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#getUnseenNotificationsCount } * instead. * * @returns Resolves the number of unread notifications of the user */ getUnseenNotificationsCount(): jQuery.Promise; /** * Initializes the notification service * * Initialization is performed only if the following two conditions are fulfilled: * 1. Notification service is enabled * 2. Notification service hasn't been initialized yet * * * The main initialization functionality is determining and setting the mode in which notifications are * consumed. * The possible modes are: * PACKAGED_APP - Notifications are fetched when a callback is called by PackagedApp environment * FIORI_CLIENT - Notifications are fetched when a callback is called by FioriClient environment * WEB_SOCKET - Notifications are fetched on WebSocket "ping" * POLLING - Notifications are fetched using periodic polling mechanism * * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#init} instead. */ init(): void; /** * Indicates whether notification service is enabled. * Enabling is based on the `enable` service configuration flag. * The service configuration must also include serviceUrl attribute. * * * @since 1.32.0 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#isEnabled} instead. * * @returns A boolean value indicating whether the notifications service is enabled */ isEnabled(): boolean; /** * @since 1.38 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#isFirstDataLoaded } * instead. * * @returns boolean value whether first request was already performed and data was returned. */ isFirstDataLoaded(): boolean; /** * Launches mark as read notification call. * After launching the action, the function gets updated notification data in order to push the updated * data to the consumers. * * @since 1.34 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#markRead} instead. * * @returns Resolves to undefined or it is rejected with a message object */ markRead( /** * The ID of the notification whose action is being executed */ sNotificationId: string ): jQuery.Promise; /** * Mark all notifications as seen. * the main use-case is when the user navigated to the notification center and sees all the pending notifications. * * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#notificationsSeen } * instead. */ notificationsSeen(): void; /** * Gets a callback function that will be called when updated unseen notifications count is available. * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#registerNotificationCountUpdateCallback } * instead. */ registerNotificationCountUpdateCallback( /** * The callback function that is registered and called on data update. */ callback: Function ): void; /** * Gets a callback function that will be called when updated notifications data is available. * * @since 1.32 * @deprecated As of version 1.119. Please use {@link sap.ushell.services.NotificationsV2#registerNotificationsUpdateCallback } * instead. */ registerNotificationsUpdateCallback( /** * The callback function that is registered and called on data update. */ callback: Function ): void; } /** * UShell service for fetching user notification data from the Notification center/service * and exposing them to the Unified Shell and Fiori applications UI controls. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const NotificationsV2 = await Container.getServiceAsync("NotificationsV2"); * // do something with the NotificationsV2 service * }); * ``` * * * In order to get user notifications, Unified Shell notification service issues OData requests * to the service defined by the configuration property `serviceUrl`, * for example: "/sap/opu/odata4/iwngw/notification/default/iwngw/notification_srv/0001" * . * * Unified Shell Notification service has several working modes, depending on the environment and the available * resources: * PackagedApp mode: Fiori launchpad runs in the context of PackagedApp * FioriClient mode: Fiori launchpad runs in the context of FioriLaunchpad * WebSocket mode: Fiori launchpad runs in a browser, and WebSocket connection to the notifications provider * is available * Polling mode: Fiori launchpad in runs in a browser, and WebSocket connection to the notifications provider * is not available * * * The notification service exposes an API that includes: - Service enabling and initialization * - Registration of callback functions (by Shell/FLP controls) that will be called for every data update * . - Retrieval of notification data (e.g. notifications, number of unseen notifications) - Execution of * a notification actions - Marking user notifications as seen * * @since 1.119 */ class NotificationsV2 extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Launches dismiss notification call. * * * * @returns Promise object that on success resolves to undefined or it is rejected with a message object */ dismissNotification( /** * The ID of the notification whose action is being executed */ sNotificationId: string ): Promise; /** * Launches a notification action oData call. * After launching the action, the function gets updated notification data in order to push the updated * data to the consumers. * * * @returns Promise object that on success resolves to undefined or it is rejected with failed notifications */ executeBulkAction( /** * The ID of the notification header/group whose action is being executed */ sNotificationGroupId: string, /** * The ID of the action that is being executed */ sActionId: string ): Promise; /** * Returns the notifications of the user sorted by type include the group headers and the notifications * * * @returns Promise for all notification items The notifications items have value true for attribute group * header if they are group headers. */ getNotificationsByTypeWithGroupHeaders(): Promise< sap.ushell.services.NotificationsV2.NotificationItem[] >; /** * Returns the number of notifications * e.g. Notifications for user. * * * @returns Returns the number of notifications of the user */ getNotificationsCount(): int; /** * Returns the group headers of the user notifications * * * @returns Promise for all group headers The notifications items have value true for attribute group header */ getNotificationsGroupHeaders(): Promise< sap.ushell.services.NotificationsV2.NotificationItem[] >; /** * Returns the number of unseen notifications * e.g. Notifications that the user hasn't seen yet. * * * @returns Promise resolves with the number of unread notifications of the user */ getUnseenNotificationsCount(): Promise; /** * Initializes the notification service * * Initialization is performed only if the following two conditions are fulfilled: * 1. Notification service is enabled * 2. Notification service hasn't been initialized yet * * * The main initialization functionality is determining and setting the mode in which notifications are * consumed. * The possible modes are: * PACKAGED_APP - Notifications are fetched when a callback is called by PackagedApp environment * FIORI_CLIENT - Notifications are fetched when a callback is called by FioriClient environment * WEB_SOCKET - Notifications are fetched on WebSocket "ping" * POLLING - Notifications are fetched using periodic polling mechanism */ init(): void; /** * Indicates whether notification service is enabled. * Enabling is based on the `enable` service configuration flag. * The service configuration must also include serviceUrl attribute. * * * * @returns A boolean value indicating whether the notifications service is enabled */ isEnabled(): boolean; /** * * @returns boolean value whether first request was already performed and data was returned. */ isFirstDataLoaded(): boolean; /** * Launches mark as read notification call. * After launching the action, the function gets updated notification data in order to push the updated * data to the consumers. * * * @returns Promise object that on success resolves to undefined or it is rejected with a message object */ markRead( /** * The ID of the notification whose action is being executed */ sNotificationId: string ): Promise; /** * Mark all notifications as seen. * the main use-case is when the user navigated to the notification center and sees all the pending notifications. * * * @returns Promise that resolves when operation is finished */ notificationsSeen(): Promise; /** * Gets a callback function that will be called when updated unseen notifications count is available. */ registerNotificationCountUpdateCallback( /** * The callback function that is registered and called on data update. */ callback: Function ): void; /** * Gets a callback function that will be called when updated notifications data is available. */ registerNotificationsUpdateCallback( /** * The callback function that is registered and called on data update. */ callback: Function ): void; /** * Set the number of unseen notifications * e.g. Notifications that the user hasn't seen yet. * * * @returns Promise resolves when the unseen notifications count is set */ setUnseenNotificationsCount( /** * The number of unseen notifications to set */ number: int ): Promise; } /** * The Unified Shell's personalization service, which provides a personalizer object that handles all personalization * operations. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const Personalization = await Container.getServiceAsync("Personalization"); * // do something with the Personalization service * }); * ``` * * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2} instead. */ class Personalization extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Factory method to obtain an empty Data Context object. When data present in a prior context is not relevant * (e.g. when using a "uniquely" generated key and planning to overwrite any colliding front-end server * data). * * The call always returns an cleared container(). * * Note that an existing container at the front-end server is not actually deleted or overwritten unless * a save operation is executed. * * An initial object is returned. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#createEmptyContainer } * instead. * * @returns Resolves a {@link sap.ushell.services.Personalization.ContextContainer} object as parameter. * The personalization container provides two different interfaces to synchronously operate on personalization * data. In the item mode the container contains items as name value pairs for personalization data. In * the variant mode the container contains variant sets which contain variants containing items. */ createEmptyContainer( /** * identifies the container. The string length is restricted to 40 characters */ sContainerKey: string, /** * scope object. Currently the validity property of the scope object is relevant: E.g. ` { validity : 30}` * indicates a validity of the data for 30 minutes. * oScope.validity : validity of the container persistence in minutes valid values include: 0 ( per FLP * Window), Infinity, undefined ( Backend persistence per user ) [Default] nn Minutes ( Backend persistence * per user, ignored if older than nn minutes) */ oScope: object, /** * Since 1.27.0. SAPUI5 component which uses the container. This allows to associate the stored data with * the application. */ oComponent: sap.ui.core.Component ): jQuery.Promise; /** * Asynchronously starts a deletion request for the given container identified by sContainerKey. Can be * called without having ever called getContainer with the corresponding key * * Note: After invoking this operation, the state of other Containers obtained for the same key is undefined! * If you want to use the container after deletion, it is strongly recommended to obtain a new instance * of a container for the given key *after* the promise has returned. * * Note: Invoking this operation while another save or load operation is under way may result in failure. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#deleteContainer } * instead. * * @returns Resolves once the container was deleted. */ delContainer( /** * identifies the container */ sContainerKey: string, /** * scope object */ oScope: object ): jQuery.Promise; /** * Asynchronously starts a deletion request for the given container identified by sContainerKey. Can be * called without having ever created a personalization container. * * Note: After invoking this operation, the state of other PersonalizationContainers obtained for the same * key is undefined! If you want to use the container after deletion, it is strongly recommended to obtain * a new instance of PersonalizationContainer for the given key *after* the promise has returned. * * Note: Invoking this operation while another save or load operation is under way may result in failure. * * @since 1.18.0 * @deprecated As of version 1.22. Please use {@link #delContainer} instead. * * @returns Resolves once the container was deleted. */ delPersonalizationContainer( /** * identifies the container */ sContainerKey: string ): jQuery.Promise; /** * Factory method to obtain a Data Context object, which is a local copy of the persistence layer data. * The Container data is asynchronously read on creation if present, otherwise an initial object is created. * The Container data can then be *synchronously* modified (getItemValue, setItemValue). Only on invoking * the save()/saveDeferred() method the data is transferred to the persistence. This allows the application * to perform multiple local modifications and delay the save operation. * * Every getContainer operation returns a new local copy, containing the full data at the point of creation. * * Executing load() on the container reloads the data from the persistence, discarding local changes. * * Note that the container allows the application to control the round trips to the front-end server persistence. * The factory method getContainer is asynchronous and loads the container via the connected adapter from * the front-end server. All operations (but for the save operation) are executed synchronously, operating * on the local data. This allows the application to control the round trips to the front-end server persistence. * * A container can contain a set of items, identified by a key. * * You can wrap a container in a VariantSetAdapter to read and write a more complex structure (with multiple * keys (variantSet,variant,item)). * * Do not mix up the usage of a personalizer and a container for one containerKey. Do not use a PersonalizationContainer * and a Container for the same key except for migration scenarios. * * scope / validity parameter (@since 1.22.0): An unspecified (undefined validity) or infinite (Infinity) * validity indicates that data is persisted in the Personalization data of the front-end server. A round * trip is executed on an initial get and at least every save operation. Data is stored per user and retained * indefinitely at the front-end server. * * The validity parameter allows a designated storage validity for the created container. A 0 validity indicates * the data is only persisted within the Fiori launchpad window. No round trips to the front-end server * are executed. Data is lost if the Fiori launchpad window state is lost (e.g. by navigating to a different * page, pressing F5 (reload page) or duplicating the window). * * For versions > 1.24 it may happen that for cross-app navigation a reload of the Fiori launchpad is triggered. * In this case a storage of the personalization data in the Fiori launchpad window would lead to data loss. * To overcome this a validity 0 is automatically changed to a validity 1440 (24h; storage on the front-end * server). This is only done if a reload of the Fiori launchpad is triggered for a cross-app navigation. * * Security: It is the responsibility of the application to not persist information relevant to auditing * or security using the PersonalizationService with inappropriate validity models. No mechanisms exist * to destroy or selectively destroy application-specific data in the front-end server persistence (especially * for validity Infinity). * * For non-zero validity scopes, data will be transmitted and persisted in the front-end server system. * * For limited validity, actual deletion of data on the front-end server is subject to explicit cleanup * execution of front-end server jobs and not guaranteed. The data may still be persisted and retrievable. * The interface only assures that expired data is no longer exposed to the application code in the Fiori * launchpad. * * The ContainerKey uniquely defines the Container, validity is not part of the key (there are no separate * namespaces per validity). * * In general, mixing different validity models for a given container key is not supported. Fast chaining * of different methods may source arbitrary persistence layers. The validity of the resolved object is * the last get validity. * * The validity associated with the last getContainer or createEmptyContainer determines the current validity * of the container and the validity used during the next save operation. * * Naturally, if a delete or get with validity 0 is issued, it will *not* delete or retrieve a front-end * server persistent storage. Thus a sequence delete( [validity 0])/wait for promise, getContainer(sKey,{ * validity : Infinity}) may return a valid dataset. * * @since 1.22.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#getContainer } * instead. * * @returns Resolves a {@link sap.ushell.services.Personalization.ContextContainer} object as parameter. * The container provides setItemValue / getItemValue methods to synchronously operate on personalization * data. By wrapping it in a VariantSetAdapter, an alternate interface to maintain variants can be obtained. */ getContainer( /** * identifies the container. The string length is restricted to 40 characters */ sContainerKey: string, /** * scope object. Currently the validity property of the scope object is relevant: E.g. ` { validity : 30}` * indicates a validity of the data for 30 minutes. * oScope.validity : validity of the container persistence in minutes * valid values include: 0 ( per FLP Window), * Infinity, undefined (front-end server persistence per user ) [Default] * nn Minutes (front-end server persistence per user, ignored if older than nn minutes) oScope.shared To * indicate that this container is intended to be shared by several applications */ oScope: object, /** * Since 1.27.0. SAPUI5 component which uses the container. This allows to associate the stored data with * the application. */ oComponent: sap.ui.core.Component ): jQuery.Promise; /** * Returns a generated key. This key is suitably random, but it is susceptible to brute force attacks. Storages * based on the generated key must not be used for sensitive data. * * @since 1.28.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#getGeneratedKey } * instead. * * @returns 40 character string consisting of A-Z and 0-9 which can be used as a generated key for personalization * container. Every invocation returns a new key. Seed of random function is OS Random Seed. */ getGeneratedKey(): string; /** * This interface is deprecated since 1.22, please use getContainer / delContainer. * * Note: the underlying storage model for Objects stored with getContainer / getPersonalizationContainer * is identical. * Thus you can safely migrate your client implementation from the deprecated `getPersonalizationContainer` * to `getContainer` without loss of data. One may even run mixed set of applications on the same container * keys. The sole differences are w.r.t. client side handling of the Context data within one session. * * If you want to use the variant interface, use the following pattern * ```javascript * * getContainer(sContainerKey).done(function(oContainer) { * var variantSetAdapter = new Personalization.VariantSetAdapter(oContainer); * } * ``` * * * Factory method to obtain a personalization container object which is a client-local buffer for personalization * data. The Container data is asynchronously read on creation (if present, otherwise an initial object * is created). The Container data can then be *synchronously* modified (read/write/delete). Only on invoking * the save() method the data is persisted at the front-end server. This allows the application to perform * multiple local modifications and delay the save operation. Note that the personalization container allows * the application to control the round trips to the front-end server persistence. The factory method getPersonalizationContainer * is asynchronous and loads the container via the connected adapter from the front-end server. All operations * (but for the save operation) are executed synchronously, operating on the local data. This allows the * application to control the round trips to the front-end server persistence. * * A personalization container can contain items as well as variant sets. Variant sets have the following * structure: variantSet.variant.item A variant set is enclosing several variants of the same data. * * Example: An application has two types of variants. Variant type 1 contains filter values for a query, * which are stored in item 1 of the variant, and personalization data for a table, which are stored in * item 2 of the variant. Variant type 2 contains a setting (item 3) that is independent of the filtering * and the table settings. It might be used for a different screen than the variants of type 1. In this * example you would have 2 variant sets, one for each variant type. * * Do not mix up the usage of a personalizer and a personalization container for one containerKey. * * @since 1.18.0 * @deprecated As of version 1.21. Please use {@link #getContainer} instead. * * @returns Resolves a {@link sap.ushell.services.PersonalizationContainer} object as parameter. The personalization * container provides two different interfaces to synchronously operate on personalization data. In the * item mode the container contains items as name-value pairs for personalization data. In the variant mode * the container contains variant sets which contain variants containing items. */ getPersonalizationContainer( /** * identifies the container */ sContainerKey: string ): jQuery.Promise; /** * Returns a personalizer object which handles personalization by asynchronous operations storing the personalization * data immediately via the connected adapter. For each operation a round trip is executed. * * Do not mix the usage of a personalizer and a personalization container for one containerKey. * * Fetching multiple Personalizer for the same container, but different items is not supported. Use {@link sap.ushell.services.Personalizer#getContainer } * instead for this scenario. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#getPersonalizer } * instead. * * @returns A Personalizer which provides generic read and write access to the currently logged on user's * personalization settings. */ getPersonalizer( /** * JSON object consisting of the following parts: container - Identifies the set of personalization data * that is loaded/saved as one bundle from the front-end server. item - The name of the object the personalization * is applied to. */ oPersId: object, /** * scope object * currently the validity property of the scope object is relevant: oScope.validity : validity of the container * persistence in minutes * oScope.keyCategory : Type or category of key * oScope.writeFrequency : Expected frequency how often users will use this container to store data inside * oScope.clientStorageAllowed : Defines if storage on client side should be allowed or not * oScope.shared: Indicates the container is intended to be shared across multiple applications * E.g. ` { validity : 30}` indicates a validity of the data for 30 minutes. */ oScope: object, /** * Since 1.27.0. SAPUI5 component which uses the personalizer. This allows to associate the stored data * with the application. */ oComponent?: sap.ui.core.Component ): /* was: sap.ushell.services.Personalizer */ any; /** * Returns a transient personalizer object which handles personalization by asynchronous operations storing * the personalization data transiently as an object property. Primary usage of the transient personalizer * is a personalization scenario with variants where the transient personalizer is used as a buffer for * table personalization data. * * @since 1.18.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.PersonalizationV2#getTransientPersonalizer } * instead. * * @returns A TransientPersonalizer which provides asynchronous read and write access to a transient personalization * data storage. */ getTransientPersonalizer(): /* was: sap.ushell.services.TransientPersonalizer */ any; } /** * The Unified Shell's personalization service. Provides a personalizer object that handles all personalization * operations. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const PersonalizationV2 = await Container.getServiceAsync("PersonalizationV2"); * // do something with the PersonalizationV2 service * }); * ``` * * * @since 1.120.0 */ class PersonalizationV2 extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Factory method to obtain an empty Data Context object. When data present in a prior context is not relevant * (e.g. when using a "uniquely" generated key and planning to overwrite any colliding front-end server * data). * * The call always returns an cleared container(). * * Note that an existing container at the front-end server is not actually deleted or overwritten unless * a save operation is executed. * * An initial object is returned. * * @since 1.120.0 * * @returns Resolves a ContextContainer as parameter. object as parameter. The personalization container * provides two different interfaces to synchronously operate on personalization data. In the item mode * the container contains items as name value pairs for personalization data. In the variant mode the container * contains variant sets which contain variants containing items. */ createEmptyContainer( /** * Identifies the container. The string length is restricted to 40 characters */ sContainerKey: string, /** * Currently the validity property of the scope object is relevant. * E.g. ` { validity : 30}` indicates a validity of the data for 30 minutes. */ oScope: sap.ushell.services.PersonalizationV2.Scope, /** * Component which uses the container. This allows to associate the stored data with the application. */ oComponent: sap.ui.core.Component ): Promise; /** * Asynchronously starts a deletion request for the given container identified by sContainerKey. Can be * called without having ever called getContainer with the corresponding key * * Note: After invoking this operation, the state of other containers obtained for the same key is undefined! * If you want to use the container after deletion, it is strongly recommended to obtain a new instance * of a container for the given key *after* the promise has returned. * * Note: Invoking this operation while another save or load operation is under way may result in failure. * * @since 1.120.0 * * @returns Resolves once the container was deleted. */ deleteContainer( /** * identifies the container */ sContainerKey: string, /** * The scope */ oScope: sap.ushell.services.PersonalizationV2.Scope ): Promise; /** * Factory method to obtain a Data Context object, which is a local copy of the persistence layer data. * The Container data is asynchronously read on creation if present, otherwise an initial object is created. * The Container data can then be *synchronously* modified (getItemValue, setItemValue). Only on invoking * the save() method the data is transferred to the persistence. This allows the application to perform * multiple local modifications and delay the save operation. * * Every getContainer operation returns a new local copy, containing the full data at the point of creation. * * Executing load() on the container reloads the data from the persistence, discarding local changes. * * Note that the container allows the application to control the round trips to the front-end server persistence. * The factory method getContainer is asynchronous and loads the container via the connected adapter from * the front-end server. All operations (but for the save operation) are executed synchronously, operating * on the local data. This allows the application to control the round trips to the front-end server persistence. * * A container can contain a set of items, identified by a key. * * You can wrap a container in a VariantSetAdapter to read and write a more complex structure (with multiple * keys (variantSet,variant,item)). * * Do not mix up the usage of a personalizer and a container for one containerKey. Do not use a PersonalizationContainer * and a Container for the same key except for migration scenarios. * * scope / validity parameter: An unspecified (undefined validity) or infinite (Infinity) validity indicates * that data is persisted in the Personalization data of the front-end server. A round trip is executed * on an initial get and at least every save operation. Data is stored per user and retained indefinitely * at the front-end server. * * The validity parameter allows a designated storage validity for the created container. A 0 validity indicates * the data is only persisted within the Fiori launchpad window. No round trips to the front-end server * are executed. Data is lost if the Fiori launchpad window state is lost (e.g. by navigating to a different * page, pressing F5 (reload page) or duplicating the window). * * For versions > 1.24 it may happen that for cross-app navigation a reload of the Fiori launchpad is triggered. * In this case a storage of the personalization data in the Fiori launchpad window would lead to data loss. * To overcome this a validity 0 is automatically changed to a validity 1440 (24h; storage on the front-end * server). This is only done if a reload of the Fiori launchpad is triggered for a cross-app navigation. * * Security: It is the responsibility of the application to not persist information relevant to auditing * or security using the PersonalizationService with inappropriate validity models. No mechanisms exist * to destroy or selectively destroy application-specific data in the front-end server persistence (especially * for validity Infinity). * * For non-zero validity scopes, data will be transmitted and persisted in the front-end server system. * * For limited validity, actual deletion of data on the front-end server is subject to explicit cleanup * execution of front-end server jobs and not guaranteed. The data may still be persisted and retrievable. * The interface only assures that expired data is no longer exposed to the application code in the Fiori * launchpad. * * The ContainerKey uniquely defines the Container, validity is not part of the key (there are no separate * namespaces per validity). * * In general, mixing different validity models for a given container key is not supported. Fast chaining * of different methods may source arbitrary persistence layers. The validity of the resolved object is * the last get validity. * * The validity associated with the last getContainer or createEmptyContainer determines the current validity * of the container and the validity used during the next save operation. * * Naturally, if a delete or get with validity 0 is issued, it will *not* delete or retrieve a front-end * server persistent storage. Thus a sequence delete( [validity 0])/wait for promise, getContainer(sKey,{ * validity : Infinity}) may return a valid dataset. * * @since 1.120.0 * * @returns Resolves a ContextContainer as parameter. The container provides setItemValue / getItemValue * methods to synchronously operate on personalization data. By wrapping it in a VariantSetAdapter, an alternate * interface to maintain variants can be obtained. */ getContainer( /** * Identifies the container. The string length is restricted to 40 characters */ sContainerKey: string, /** * Currently the validity property of the scope object is relevant: E.g. ` { validity : 30}` indicates a * validity of the data for 30 minutes. */ oScope: sap.ushell.services.PersonalizationV2.Scope, /** * Component which uses the container. This allows to associate the stored data with the application. */ oComponent: sap.ui.core.Component ): Promise; /** * Returns a generated key. This key is suitably random, but it is susceptible to brute force attacks. Storages * based on the generated key must not be used for sensitive data. * * @since 1.120.0 * * @returns 40 character string consisting of A-Z and 0-9 which can be used as a generated key for personalization * container. Every invocation returns a new key. Seed of random function is OS Random Seed. */ getGeneratedKey(): Promise; /** * Returns a personalizer object which handles personalization by asynchronous operations storing the personalization * data immediately via the connected adapter. For each operation a round trip is executed. * * Do not mix the usage of a personalizer and a personalization container for one containerKey. * * Fetching multiple Personalizer for the same container, but different items is not supported. Use {@link sap.ushell.services.Personalizer#getContainer } * instead for this scenario. * * @since 1.120.0 * * @returns which provides generic read and write access to the currently logged on user's personalization * settings. */ getPersonalizer( /** * object for identifying the data */ oPersId: sap.ushell.services.PersonalizationV2.PersId, /** * scope object * E.g. ` { validity: 30}` indicates a validity of the data for 30 minutes. */ oScope: sap.ushell.services.PersonalizationV2.Scope, /** * Component which uses the personalizer. This allows to associate the stored data with the application. */ oComponent?: sap.ui.core.Component ): Promise; /** * Returns a transient personalizer object which handles personalization by asynchronous operations storing * the personalization data transiently as an object property. Primary usage of the transient personalizer * is a personalization scenario with variants where the transient personalizer is used as a buffer for * table personalization data. * * @since 1.120.0 * * @returns which provides asynchronous read and write access to a transient personalization data storage. */ getTransientPersonalizer(): Promise; } /** * Abstract base class for ushell services. For details, see {@link sap.ushell.Container#getServiceAsync}. * * @since 1.121.0 */ abstract class Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); } /** * The Unified Shell's internal navigation service (platform independent). * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const ShellNavigation = await Container.getServiceAsync("ShellNavigation"); * // do something with the ShellNavigation service * }); * ``` * * * This interface is for consumption by shell renderers/containers only * * It is not for direct usage by applications, see inner app navigation : UI5 interfaces (hashChanger, Router) * cross app navigation : @see sap.ushell.services.CrossApplicationNavigation * * Usage: * * Example: see renders/fiorisandbox/Shell.controller.js * * * ```javascript * * sap.ui.define([ * "sap/ushell/services/ShellNavigation" * ], function (ShellNavigation) { * Shell.onHashChange(shellHash,appHash) { / *resolve url, load app and exchange root view* / } * Shell.init() { * this.privShellNavigator = new ShellNavigation(); * this.privShellNavigator.init(this.doHashChange.bind(this)); * } * }); * ``` * * * Note: further app specific integration via the reference app reuse code (setting of app specific handler) * * Note: the ShellNavigation service replaces the UI5 core HashChanger which abstracts from the browser * url modification. * * It performs the following services: - encoding of the actual browser url hash ( via hasher.js). - expansion * of "shortened" urls ( AppParameterParts) via invocation. - splitting of shellHash and AppSpecific hash * and abstraction w.r.t. Eventing * * Thus it is crucial to use appropriate interfaces and not directly invoke window.location.hash. * * - internal construction methods for a "current" App specific and non-app specific hash (invoked by CrossApplicationNavigation), * not to be invoked directly! * * @since 1.15.0 * @deprecated As of version 1.120. Use {@link sap.ushell.services.Navigation} for Navigation instead. */ class ShellNavigation { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * compact the parameter object, if required a number of parameters will be removed, instead a corresponding * "sap-intent-param" containing a key of an appstate representing the removed parameters will be inserted * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns a promise, whose first argument of resolve is */ compactParams( /** * A parameter object */ oParams: object, /** * An array of string value of parameters which shall not be compacted The array may contains a *-terminated * string, which will match and strings with the same prefix ( e.g. "sap-*" will match "sap-ushell", "sap-wd", * "sap-" etc. ) */ aRetainedParameters?: any[], /** * optional, a SAP UI5 Component */ oComponent?: object, /** * whether an transient appstate is sufficient */ bTransient?: boolean ): Promise; /** * Returns the current navigation context. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns An object like: * ```javascript * * { * "isCrossAppNavigation": true, * "innerAppRoute": "employee/overview" * } * ``` * * * This object can be used inside dirty flag providers to take corresponding actions. */ getNavigationContext(): object; /** * Initializes ShellNavigation * * This function should be used by a custom renderer in order to implement custom navigation. Do not use * this function for developing Fiori applications. * * This method should be invoked by the Shell in order to: - Register the event listener - Register the * container callback for the (currently single) ShellHash changes. * * Signature of the callback function sShellHashPart, // The hash part on the URL that is resolved and used * for application loading sAppSpecificPart // Typically ignored sOldShellHashPart, // The old shell hash * part, if exist sOldAppSpecificPart, // The old app hash part, if exist * * @deprecated As of version 1.120. Deprecated without successor. Custom renderer initialization is no longer * supported. * * @returns Reference to `this` for method chaining. */ init( /** * The callback method for hash changes */ fnShellCallback: Function ): this; /** * Rewrite the hash fragment identifier without triggering any navigation at * * @ui5-protected Do not call from applications (only from related classes in the framework) */ replaceHashWithoutNavigation( /** * new hash fragment */ sNewHash: string ): void; /** * Resets the internal flag used to track whether the last navigation is made via hasher#setHash or hasher#replaceHash. * This method should be called after a navigation is successfully made to a target application to avoid * returning an inconsistent answer when calling `#wasHistoryEntryReplaced`. An inconsistent answer might * occur when a navigation is made via forward/back button without passing via `hasher#replaceHash` or `hasher#setHash`. * * This method should not be used externally. It's reserved uniquely for internal shell consumption and * its signature or result might change at any time. * * @ui5-protected Do not call from applications (only from related classes in the framework) */ resetHistoryEntryReplaced(): void; /** * Returns true if the history entry was replaced immediately after the last navigation. To be useful, this * method should be called immediately after the hash enters the URL but before the target application is * finally navigated to. * * This method should not be used externally. It's reserved uniquely for internal shell consumption and * its signature or result might change at any time. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Whether `hasher#replaceHash` was called after the last navigation. */ wasHistoryEntryReplaced(): boolean; } /** * Constructs an instance of SmartNavigation. The constructed service provides an enhancement on {@link CrossApplicationNavigation#getLinks } * and {@link CrossApplicationNavigation#toExternal}. In order for an application to leverage this enhancement, * it is pertinent that the application uses {@link SmartNavigation#toExternal} for navigation. Hence the * caller can subsequently use {@link SmartNavigation#getLinks} with the outcome that it sorts the resulting * list in the order of frequency of attempted navigation from the application to respective links. * Attempted in the previous paragraph is emphasized due to the fact that a click on the link * will cause an increment of the frequency count, regardless of whether or not the navigation was successful. * * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const SmartNavigation = await Container.getServiceAsync("SmartNavigation"); * // do something with the SmartNavigation service * }); * ``` * * * @since 1.44.0 * @deprecated As of version 1.112. Please use the CrossApplicationNavigation service instead. */ class SmartNavigation extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Resolves the given semantic object (or action) and business parameters to a list of links available to * the user, sorted according their relevance to the calling application. * * The relevance of link is defined by the frequency with which a navigation activity from the calling application * to that link occurs. * * Internally, this method delegates to {@link sap.ushell.services.CrossApplicationNavigation#getLinks } * and then sorts the resulting list accordingly. * See: * sap.ushell.services.CrossApplicationNavigation#getLinks * * @since 1.44.0 * @deprecated As of version 1.112. Please use {@link sap.ushell.services.Navigation#getLinks} instead. * * @returns Resolves with an array of link objects sorted according to their relevance to the calling application. */ getLinks( /** * An object containing nominal arguments for the method. */ oArgs?: object | object[][] ): jQuery.Promise; /** * Completely delegates to {@link sap.ushell.services.CrossApplicationNavigation#getPrimaryIntent}, and * either may be used in place of the other with exactly the same outcome. * See: * sap.ushell.services.CrossApplicationNavigation#getPrimaryIntent * * @since 1.48.0 * @deprecated As of version 1.112. Please use {@link sap.ushell.services.Navigation#getPrimaryIntent} instead. * * @returns Resolves to an object when a relevant link object exists. */ getPrimaryIntent(): jQuery.Promise; /** * Completely delegates to {@link sap.ushell.services.CrossApplicationNavigation#hrefForExternal}, and may * be used in place of the other with exactly the same outcome. * See: * sap.ushell.services.CrossApplicationNavigation#hrefForExternal * * @since 1.46.0 * @deprecated As of version 1.94. Please use {@link #hrefForExternalAsync} instead. * * @returns A href for the specified parameters as an *external* shell hash. */ hrefForExternal(): string; /** * Completely delegates to {@link sap.ushell.services.CrossApplicationNavigation#hrefForExternalAsync}, * and may be used in place of the other with exactly the same outcome. * See: * sap.ushell.services.CrossApplicationNavigation#hrefForExternalAsync * * @since 1.94.0 * @deprecated As of version 1.112. Please use {@link sap.ushell.services.Navigation#getHref} instead. * * @returns A promise that is resolved to a string that can be put into an href attribute of an HTML anchor. * The returned string will always start with a hash character. */ hrefForExternalAsync(): Promise; /** * Usage of this method in place of {@link sap.ushell.services.CrossApplicationNavigation#toExternal} drives * the smartness of the results returned by {@link sap.ushell.services.SmartNavigation#getLinks}. * See: * sap.ushell.services.CrossApplicationNavigation#toExternal * * @since 1.44.0 * @deprecated As of version 1.112. Please use {@link sap.ushell.services.Navigation#navigate} instead. */ toExternal( /** * An object containing nominal arguments for the method. */ oArgs?: object ): void; /** * Tracks a navigation to a valid intent if provided via arguments but does not perform the navigation itself. * If no valid intent was provided tracking will be prevented. The intent has to consist of SemanticObject * and Action. It may be passed as complete shellHash (presidence) or as individual parts Additional parameters * will not be part of the tracking and ignored This Method can be used to track a click if the actual navigation * was triggered via clicking a link on the UI. * * @since 1.46.0 * @deprecated As of version 1.112. Deprecated without successor. The SmartNavigation tracking functionality * has been discontinued. * * @returns Resolves once the navigation was tracked. */ trackNavigation( /** * The navigation target as object, for example: `{ target: { shellHash: 'SaleOrder-display' } }` or * ```javascript * * { * target: { * semanticObject: 'SalesOrder', * action: 'action' * } * } * ``` */ oArgs: object ): jQuery.Promise; } /** * The Unified Shell's SupportTicket service. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const SupportTicket = await Container.getServiceAsync("SupportTicket"); * // do something with the SupportTicket service * }); * ``` * * * @since 1.19.1 */ class SupportTicket extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates a Support Ticket. Forwards the given data (JSON object) to the associated adapter. * * @since 1.20.0 * * @returns Promise, that returns the ID of the generated message */ createTicket( /** * JSON object containing the input fields required for the support ticket. */ oSupportTicketData: { /** * Subject line of the ticket. */ subject: string; /** * Long text or description of the support ticket. */ text: string; /** * JSON object containing client-related information. */ clientContext: object; } ): Promise; /** * Checks if the service is enabled. The service enablement depends on the configuration in the back-end * system and the bootstrap configuration. * * @since 1.20.0 * * @returns `true` if the service is enabled; `false` otherwise */ isEnabled(): boolean; } /** * The Unified Shell's internal URL parsing service (platform independent). * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const URLParsing = await Container.getServiceAsync("URLParsing"); * // do something with the URLParsing service * }); * ``` * * * Methods in this class allow to break down a shell compliant hash into it's respective parts (SemanticObject,Action,Context, * Parameters, appSpecificHash) or (ShellPart,appSpecificHash) respectively or construct a hash from its * constituents. * * All methods deal with the *internal* shellHash format. * * Most of the parse methods are robust w.r.t. a leading "#". * * Note: The functions were designed with a "truthy" behavior for not present values, Thus a client should * not rely on the difference between null, "undefined", "" when testing for the result of a parse action. * * The parsing functions are deliberately restrictive and fragile, only shell compliant hashes are parsed * correctly, behavior for non-compliant hashes is undefined and subject to change, notably we do not aim * do "degrade" nicely or support partial parsing of corrupted urls. * * @since 1.15.0 */ class URLParsing extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Note: deprecated, please use `sap.ui.model.odata.ODataUtils.setOrigin(sServiceUrl, { alias : sSystem * });` Makes the given server-relative SAP OData service URL point to the system given explicitly as parameter * `vComponentOrSystem`. If this parameter is not provided, it makes the server-relative URL point to the * system of the current application. ***Server-relative URL*** means a URL starting with exactly one "/" * (also known as absolute-path URL). The ***system of the current application*** is taken from the parameter * "sap-system" of the last navigation target resolution result. If either a multiple-origin * parameter `;mo/` or an origin parameter with qualified system (`;o=sid(SYS.123)` or `o=SYSALIAS`) is * already present, the `sServiceUrl` is returned unchanged. The framework invokes this function for * SAPUI5 applications that have been built using declarative model instantiation with the application descriptor * (data source) mechanism or using an sap.ca framework. For these applications, you do not need to invoke * this function explicitly in the application code. If the application does not use any of these mechanisms, * but explicitly constructs additional OData models or performs OData requests, the application code shall * invoke this function. It shall pass its root component instance as `vComponentOrSystem` - the function * will then determine the system from the navigation start-up parameter "sap-system" (`getComponentData().startupParameters["sap-system"][0])`. * Applications may call this API with parameter `vComponentOrSystem` and a non-empty string value if application-specific * logic is used to determine the target system for service calls. With service URLs converted using * this API, administrators can redirect service calls to servers other than the default SAP Gateway and * back-end server either via reverse proxy (e.g. SAP Web Dispatcher) configuration or using the system * alias functionality of the SAP Gateway server. The system is added to the last URL segment of the * service URL with the segment parameter `;o=`. You can also make this function put the system to a different * URL path segment of the service URL by specifying the empty segment parameter `;o=`, e.g. `/sap/opu/odata/MyService;o=/MyEntities/$count?p1=v1`. * If both `vComponentOrSystem` is empty and the current application has no system, no system is added and * the empty segment parameter `;o` is removed. * * * **Example 1:** `/sap/opu/odata/MyService/?p1=v1` is converted to `/sap/opu/odata/MyService;o=SYS/?p1=v1` * if the target system is "SYS". However it remains unchanged if both the current application's * system ***and*** the parameter `vComponentOrSystem` are empty. * * * **Example 2:** `/sap/opu/odata/MyService;o=/MyEntities/$count?p1=v1` is converted to `/sap/opu/odata/MyService;o=sid(SYS.123)/MyEntities/$count?p1=v1` * if parameter `vComponentOrSystem` is set to "sid(SYS.123)". The URL is in no way * normalized. * * @since 1.19.1 * @deprecated As of version 1.31. Please use {@link sap.ui.model.odata.ODataUtils#setOrigin} instead. * * @returns the service URL pointing to the system specified in parameter `vComponentOrSystem` or to the * system of the current application */ addSystemToServiceUrl( /** * a server-relative URL without system alias information */ sServiceUrl: string, /** * the root component of the FLP application ( `getComponentData().startupParameters["sap-system"][0]` * is used as system alias if present) or a string valued system specification like "SYS" or "sid(SYS.123)" * if undefined or falsy the system of the current application is used */ vComponentOrSystem?: string | sap.ui.core.Component ): string; /** * compose a shell Hash from it's respective parts Note that it also may append an app specific route! * * @since 1.16.0 * * @returns the hash part of an URL, e.g. `"Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` Returns * an empty string in case no shell hash was provided. */ constructShellHash( /** * The parts of a shell hash. Its action must be a valid action, It may not contain "?" or directly a parameter * string. Note: In general it is preferred to add an appStateKey directly to the params object. */ oShellHash?: /* was: sap.ushell.services.URLParsing.ShellHash */ any ): sap.ushell.services.Navigation.TargetIntentStrict; /** * Extract a hash part from an URL, including an app-specific part * * @since 1.16.0 * * @returns `extracted string` if and only if a hash is present, undefined otherwise */ getHash( /** * any value */ sURL: string ): string; /** * Extract the Shell hash# part from an URL The application specific route part is removed See {@link #getHash } * for a function which retains the app specific route. * * Shell services shall use this service to extract relevant parts of an URL from an actual URL string (which * should be treated as opaque) The URL has to comply with the Fiori-Wave 2 agreed upon format This * service shall be used to extract a hash part from an url. The result can be further broken up by parseShellHash * * Examples http://a.b.c?defhij#SemanticObject-Action~Context?PV1=A&PV2=B&/appspecific * returns : "#SemanticObject-Action~Context?PV1=A&PV2=B&/appspecific" * * Note: the results when passing an illegal (non-compliant) url are undefined and subject to change w.o. * notice. Notably further checks may added. The design is deliberately restrictive and non-robust. * * @since 1.16.0 * * @returns the parsed result */ getShellHash( /** * a valid (Shell) url, e.g. * `http://xx.b.c#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` */ sShellHashString: sap.ui.core.URI ): sap.ushell.services.Navigation.TargetIntent; /** * Check if a URL has an intent based navigation part which can be parsed into a semantic object and action * part. Accepts only a relative URL (must contain #) or fully qualified Urls for which origin and filename * must correspond to the running launchpad. * * Given actual url `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html?sap-language=DE#SO-action?P1=value1`, * the following parts `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html` must match. * * The actual test is synchronous and *only* tests whether the hash part can be parsed and contains a semantic * object and action. It does not test whether the intent or its parameters are valid for a given user * * @since 1.30.0 * @deprecated As of version 1.96. Please use {@link #isIntentUrlAsync} instead. * * @returns true if the conditions are fulfilled. */ isIntentUrl( /** * the URL to test. Note: this url must be in internal format. */ sUrl: string ): boolean; /** * Check if a URL has an intent based navigation part which can be parsed into a semantic object and action * part. Accepts only a relative URL (must contain #) or fully qualified Urls for which origin and filename * must correspond to the running launchpad. * * Given actual url `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html?sap-language=DE#SO-action?P1=value1`, * the following parts `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html` must match. * * This function *only* tests whether the hash part can be parsed and contains a semantic object and action. * It does not test whether the intent or its parameters are valid for a given user * * @since 1.96.0 * * @returns true if the conditions are fulfilled. */ isIntentUrlAsync( /** * the URL to test. Note: this url must be in internal format. */ sUrl: string ): Promise; /** * combine members of a javascript object into a parameter string, note that parameters are ordered in an * arbitrary manner which is subject to change * * @since 1.20.0 * * @returns * @returns {sap.ui.core.URI} The parameter string, e.g. `ABC=1&ABC=1%202&DEF=4`. Note that the * result is *not* prefixed with a "?", parameter values are encodeURIComponent encoded. */ paramsToString( /** * The parameters to combine into the parameter String, e.g. `{ ABC : [1,"1 2"], DEF : ["4"]}` */ oParams: Record ): sap.ui.core.URI; /** * This method parses parameters from a URI query string (starting with ?) and puts the result into a parameter * object. * * @since 1.20.0 * * @returns The parsed parameters, e.g. { ABC : ["1", "1 2"], DEF : ["4"]}. */ parseParameters( /** * Parameter string, e.g. `?ABC=1&ABC=1%202&DEF=4` */ sParams: sap.ui.core.URI ): Record; /** * Decompose a shell hash into the respective parts * * @since 1.16.0 * * @returns `undefined` if not a parsable hash * Note that params always has an Array for each parameter value! */ parseShellHash( /** * Hash part of a shell compliant URL `#SO-Action~Context?P1=a&P2=x&/route?RPV=1` the hash part of an URL, * * e.g. `"#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` */ sHash: sap.ushell.services.Navigation.TargetIntent ): sap.ushell.services.URLParsing.DecomposedHash; /** * split a Unified Shell compliant hash into an Object containing a shell specific part and an app specific * parts * for non compliant hash strings, the empty object {} is returned. an optional leading # is stripped * * @since 1.16.0 * * @returns `{}`(empty object) if not a parsable hash * ```javascript * * { * shellPart : "Object-name~AFE2==?PV1=PV2&PV4=V5", * appSpecificRoute : "display/detail/7?UU=HH" * } * ``` * otherwise Note that params always has an Array for each parameter value! */ splitHash( /** * The hash part of a shell conformant URL. It has to have the following format: #SO-Action~Context?P1=a&P2=x&/route?RPV=1 * Here is an example for the hash part of an URL: "#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH */ sHash: sap.ushell.services.Navigation.TargetIntent ): sap.ushell.services.URLParsing.SplitHash; } /** * A UShell service for tracking business flows and user actions. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const UsageAnalytics = await Container.getServiceAsync("UsageAnalytics"); * // do something with the UsageAnalytics service * }); * ``` * * * The UsageAnalytics service exposes API for logging custom events and setting custom field values in the * logged events. * The data is sent via http and recorded on a server, whose URL is defined by the `baseUrl` service configuration * property. * The service configuration must also include the site ID from the `pubToken` attribute. * You can find the pubToken in the code snippet provided in the WARP when creating a new site. * * Each tracked event is represented by a table entry on the server database. * The administrator can produce reports based on the the recorded data. * * Two types of events can be logged: * - Automatic events: Click or pageLoad are predefined events, logged by the base tracking library. * You can disable these events in the service configuration. * - Custom events: You can use the service API to log an event with custom data using the function logCustomEvent * * * Each tracked event (either automatic or custom) is represented by a database row, that includes 10 custom * attributes named custom1...custom10. * Some of these values can be set using UsageAnalytics service API. * * * @since 1.32.0 * @deprecated As of version 1.120. The corresponding cloud service "SAP Web Analytics" has been retired, * therefore this client-side service API cannot be used any longer. */ class UsageAnalytics extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Sets up to 6 customer attributes of logged events according to the given object attributes. * A customer attribute can be set only once during a session. * Currently these attributes correspond to database columns custom5...custom10. * * @since 1.32.0 * @deprecated As of version 1.120. Deprecated without successor. SAP Web Analytics has been retired. */ setCustomAttributes( /** * An json object that includes attribute1...attribute6 (or subset) * with values of type string/number/boolean or a function that returns any of these types. * For example: * { * attribute1: "value3", * attribute2: function () {return "value4"}, * attribute3: 55 * } * in this example the custom field "custom5" gets the string "value3" * the custom field custom6 gets the function that returns the string "value4", * the custom field custom7 gets a string "55". * Any property of oCustomFieldValues which is not in the range of attribute1...attribute6 is ignored. */ oCustomFieldValues: object ): void; /** * Enables the renderer to set the content of the legal message.. * * @since 1.32.0 * @deprecated As of version 1.120. Deprecated without successor. SAP Web Analytics has been retired. */ setLegalText(): void; /** * Indicates whether the service is available. * * * * Since the service is deprecated and no longer supported, this method always returns `false`. * * @since 1.32.0 * @deprecated As of version 1.120. Deprecated without successor. SAP Web Analytics has been retired. * * @returns A boolean value indicating whether the UsageAnalytics service is enabled */ systemEnabled(): boolean; /** * Indicates whether the user has specified to track activities. * * * * Since the service is deprecated and no longer supported, this method always returns `false`. * * @since 1.32.0 * @deprecated As of version 1.120. Deprecated without successor. SAP Web Analytics has been retired. * * @returns A boolean value indicating whether the user has specified to track activities */ userEnabled(): boolean; } /** * The Unified Shell's user information service. Allows retrieving information about the logged-in user. * * **Note:** To retrieve a valid instance of this service, it is necessary to call {@link sap.ushell.Container#getServiceAsync}. * * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * const UserInfo = await Container.getServiceAsync("UserInfo"); * // do something with the UserInfo service * }); * ``` * * * @since 1.16.3 */ class UserInfo extends sap.ushell.services.Service { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Returns the email address of the user. * * @since 1.86.0 * * @returns The user's email address. */ getEmail(): string; /** * Returns the first name of the user. * * @since 1.86.0 * * @returns The user's first name. */ getFirstName(): string; /** * Returns the full name of the user. * * @since 1.86.0 * * @returns The user's full name. */ getFullName(): string; /** * Returns the id of the user. * * @since 1.16.3 * * @returns The user id. */ getId(): string; /** * Returns the last name of the user. * * @since 1.86.0 * * @returns The user's last name. */ getLastName(): string; /** * Returns an object representing data about the user. * * @since 1.115.0 * * @returns Object providing information about the logged-in user. */ getShellUserInfo(): Promise; } } namespace base { namespace UrlParsing { /** * Type for HashComparison * * @since 1.128.0 * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ type HashComparison = { /** * The intent is the semantic object, action and contextRaw of the hash * * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ sameIntent: boolean; /** * The intent parameters are the parameters of the hash that are not technical parameters * * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ sameParameters: boolean; /** * The app specific route is the part of the hash after the shell part * * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ sameAppSpecificRoute: boolean; }; } /** * This class provides methods to enable the integration with the SAP Business Client (NWBC for Desktop). * * @since 1.147.0 * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ interface SAPBusinessClientEnablement { /** * Triggers a logout in SAP Business Client. * * @since 1.147.0 * @ui5-protected Do not call from applications (only from related classes in the framework) */ doLogout( /** * The URL to navigate to after logout. */ sLogOffUrl: string ): void; /** * Determine the shell type considering NWBC Version 6.0+ client case. * * @since 1.147.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns the shell type ("NWBC" or "FLP"), based on whether NWBC v6.0+ Client is detected. */ getShellType(): string; /** * Detects whether NWBC can logout natively. * * NWBC exposes a feature bit vector via the "getNwbcFeatureBits" method of the private "epcm" object. This * is expected to be a string in hex format representing 4 bits, where the second least significant bit * represents native logout capability. * * For example: "B" = 1011, second last bit is 1, therefore native logout capability is enabled. * * @since 1.147.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Whether the browser can logout natively. */ hasNativeLogoutCapability(): boolean; } /** * The Unified Shell's internal URL parsing utils (platform independent) * * Methods in this class allow to break down a shell compliant hash into it's respective parts (SemanticObject,Action,Context, * Parameters, appSpecificHash) or (ShellPart,appSpecificHash) respectively or construct a hash from its * constituents. * * All methods deal with the *internal* shellHash format. * * Most of the parse methods are robust w.r.t. a leading "#". * * Note: The functions were designed with a "truthy" behaviour for not present values, Thus a client should * not rely on the difference between null, "undefined", "" when testing for the result of a parse action. * * The parsing functions are deliberately restrictive and fragile, only shell compliant hashes are parsed * correctly, behaviour for non-compliant hashes is undefined and subject to change, notably we do not aim * do "degrade" nicefully or support partial parsing of corrupted urls. * * @since 1.94.0 * @ui5-protected DO NOT USE IN APPLICATIONS (only for related classes in the framework) */ interface UrlParsing { /** * Calculates the similarities of the hashes * * @since 1.128.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns A object describing the similarities */ compareHashes( /** * The first hash */ sHash1: sap.ushell.services.Navigation.TargetIntent, /** * The second hash */ sHash2: sap.ushell.services.Navigation.TargetIntent ): sap.ushell.base.UrlParsing.HashComparison; /** * Calculates the similarities of the hashes * * @since 1.142.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns A object describing the similarities */ compareParsedHashes( /** * The first hash */ oHash1: sap.ushell.services.URLParsing.DecomposedHash, /** * The second hash */ oHash2: sap.ushell.services.URLParsing.DecomposedHash ): sap.ushell.base.UrlParsing.HashComparison; /** * compose a shell Hash from it's respective parts Note that it also may append an app specific route ! * * ```javascript * * { * target: { * semanticObject: string, * action: string, * contextRaw: string * }, * params: MapObject, * appStateKey: string * appSpecificRoute: string * } * ``` * `{ target: { shellHash } }` Note: in general it is preferred to add an appStateKey directly to the params * object * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns the hash part of an URL, e.g. `"Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` returns * "" for an `undefined` object */ constructShellHash( /** * The action must be a valid action, it may not contain "?" or directly a parameter string */ oShellHash: /* was: sap.ushell.services.URLParsing.ShellHash */ any, /** * if true, the result is prefixed with a leading # */ bPrefixWithHash?: boolean ): string; /** * Ensures a leading # in a hash. * * @since 1.129.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns the string with a leading #. */ ensureLeadingHash( /** * Shell hash. */ sHash: string ): string; /** * Extract the Shell hash# part from an URL The application specific route part is removed See {@link #getHash } * for a function which retains the app specific route. * * Shell services shall use this service to extract relevant parts of an URL from an actual URL string (which * should be treated as opaque) The URL has to comply with the Fiori-Wave 2 agreed upon format This * service shall be used to extract a hash part from an url. The result can be further broken up by parseShellHash * * Examples http://a.b.c?defhij#SemanticObject-Action~Context?PV1=A&PV2=B&/appspecific * returns : "#SemanticObject-Action~Context?PV1=A&PV2=B&/appspecific" * * Note: the results when passing an illegal (non-compliant) url are undefined and subject to change w.o. * notice. Notably further checks may added. The design is deliberately restrictive and non-robust. * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns the parsed result */ getShellHash( /** * a valid (Shell) url, e.g. * `http://xx.b.c#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` */ sShellHashString: string ): object; /** * Determines whether two hash fragments have the same intent during an app-to-app navigation. * * @since 1.128.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Whether two hash fragments have the same semantic object and action during an app-to-app navigation. */ haveSameIntent( /** * The first hash split by parseShellHash */ oParsedHash1: sap.ushell.services.URLParsing.DecomposedHash, /** * The second hash split by parseShellHash */ oParsedHash2: sap.ushell.services.URLParsing.DecomposedHash ): boolean; /** * Check if a URL has an intent based navigation part which can be parsed into a semantic object and action * part. Accepts only a relative URL (must contain #) or fully qualified Urls for which origin and filename * must correspond to the running launchpad. * * Given actual url `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html?sap-language=DE#SO-action?P1=value1`, * the following parts `http://www.mycorp.com/sap/fiori/FioriLaunchpad.html` must match. * * This function *only* tests whether the hash part can be parsed and contains a semantic object and action. * It does not test whether the intent or its parameters are valid for a given user * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns true if the conditions are fulfilled. */ isIntentUrlAsync( /** * the URL to test. Note: this url must be in internal format. */ sUrl: string ): Promise; /** * combine members of a javascript object into a parameter string, note that parameters are ordered in an * arbitrary manner which is subject to change * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns `ABC=1&ABC=1%202DEF=4` Note that the result is *not* prefixed with a "?", parameter values are * encodeURIComponent encoded. */ paramsToString( /** * any value { ABC : [1,"1 2"], DEF : ["4"]} */ oParams: object ): string; /** * Parses parameters from a URI query string (starting with "?") into a parameter object. Keys are decoded * twice. This assumes that literal "%" characters are not used on keys, otherwise parsing will fail. * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Any value, e.g. `{ ABC: ["1", "1 2DEF=4"] }` */ parseParameters( /** * Parameter string, e.g. `?ABC=1&ABC=1%202DEF=4` */ sParams: string ): object; /** * Decompose a shell hash into the respective parts * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns `undefined` if not a parseable hash * * ```javascript * * { * semanticObject : string, * * action : string, * * contextRaw : string, * * params : MapObject, * * appSpecificRoute : string * * } * ``` * Note that params always has an Array for each parameter value! */ parseShellHash( /** * Hash part of a shell compliant URL `#SO-Action~Context?P1=a&P2=x&/route?RPV=1` the hash part of an URL, * * e.g. `"#Object-name~AFE2==?PV1=PV2&PV4=V5&/display/detail/7?UU=HH` */ sHash: string, /** * Return an empty parsed hash object instead of undefined */ bReturnEmpty?: boolean ): object; /** * Internal function * * @since 1.94.0 * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns the string without a leading # */ stripLeadingHash( /** * Shell hash */ sHash: string ): string; } } namespace components { namespace factsheet { namespace controls { /** * Describes the settings that can be provided to the PictureTile constructor. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * PictureTile is used in PictureViewer control and is not meant to be consumed outside of PictureViewer * usage. PictureViewer was replacing the sap.m.Carousel as it wasn't supporting some versions of MS Internet * Explorer. Now, the sap.m.Carousel is fully functional, please use sap.m.Carousel instead. This control * will not be supported anymore. */ interface $PictureTileSettings extends sap.m.$CustomTileSettings { height?: | sap.ui.core.CSSSize | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; width?: | sap.ui.core.CSSSize | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; tileContent?: | sap.ushell.components.factsheet.controls.PictureViewerItem | string; pictureDelete?: (oEvent: sap.ui.base.Event) => void; } /** * Describes the settings that can be provided to the PictureViewer constructor. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. PictureViewer was replacing * the Carousel as it wasn't supporting some versions of MS Internet Explorer. Now, the sap.m.Carousel is * fully functional, please use sap.m.Carousel instead. This control will not be supported anymore. */ interface $PictureViewerSettings extends sap.m.$TileContainerSettings { /** * Percentage of the space occupied by the image in the picture viewer control. Please note that if the * factor is too close to 1, the navigation arrows usually displayed in desktop mode will not be available */ tileScaling?: | float | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; removable?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; items?: | sap.ushell.components.factsheet.controls.PictureViewerItem[] | sap.ushell.components.factsheet.controls.PictureViewerItem | sap.ui.base.ManagedObject.AggregationBindingInfo | `{${string}}`; pictureDeleted?: (oEvent: sap.ui.base.Event) => void; } /** * Describes the settings that can be provided to the PictureViewerItem constructor. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. PictureViewerItem is used * in PictureViewer control and is not meant to be consumed outside of PictureViewer usage. PictureViewer * was replacing the Carousel as it wasn't supporting some versions of MS Internet Explorer. Now, the sap.m.Carousel * is fully functional, please use sap.m.Carousel instead. This control will not be supported anymore. */ interface $PictureViewerItemSettings extends sap.ui.core.$ControlSettings { src?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; image?: sap.m.Image; } /** * Parameters of the PictureTile#pictureDelete event. */ interface PictureTile$PictureDeleteEventParameters {} /** * Parameters of the PictureViewer#pictureDeleted event. */ interface PictureViewer$PictureDeletedEventParameters {} /** * Tile control embedding an image and allowing custom sizing * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * PictureTile is used in PictureViewer control and is not meant to be consumed outside of PictureViewer * usage. PictureViewer was replacing the sap.m.Carousel as it wasn't supporting some versions of MS Internet * Explorer. Now, the sap.m.Carousel is fully functional, please use sap.m.Carousel instead. This control * will not be supported anymore. */ class PictureTile extends sap.m.CustomTile { /** * Constructor for a new components/factsheet/controls/PictureTile. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureTileSettings ); /** * Constructor for a new components/factsheet/controls/PictureTile. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureTileSettings ); /** * Creates a new subclass of class sap.ushell.components.factsheet.controls.PictureTile with name `sClassName` * and enriches it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.m.CustomTile.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.components.factsheet.controls.PictureTile >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.components.factsheet.controls.PictureTile. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Attaches event handler `fnFunction` to the {@link #event:pictureDelete pictureDelete} event of this `sap.ushell.components.factsheet.controls.PictureTile`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.components.factsheet.controls.PictureTile` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPictureDelete( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.components.factsheet.controls.PictureTile` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:pictureDelete pictureDelete} event of this `sap.ushell.components.factsheet.controls.PictureTile`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.components.factsheet.controls.PictureTile` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPictureDelete( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.components.factsheet.controls.PictureTile` * itself */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:pictureDelete pictureDelete} event of this * `sap.ushell.components.factsheet.controls.PictureTile`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPictureDelete( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:pictureDelete pictureDelete} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePictureDelete( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getHeight height}. * * Default value is `"32px"`. * * * @returns Value of property `height` */ getHeight(): sap.ui.core.CSSSize; /** * ID of the element which is the current target of the association {@link #getTileContent tileContent}, * or `null`. */ getTileContent(): sap.ui.core.ID | null; /** * Gets current value of property {@link #getWidth width}. * * Default value is `"32px"`. * * * @returns Value of property `width` */ getWidth(): sap.ui.core.CSSSize; /** * Sets a new value for property {@link #getHeight height}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `"32px"`. * * * @returns Reference to `this` in order to allow method chaining */ setHeight( /** * New value for property `height` */ sHeight?: sap.ui.core.CSSSize ): this; /** * Reference to one PictureViewerItem coming from the PictureViewer. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * @returns `this` to allow method chaining */ setTileContent( /** * Id of an element which becomes the new target of this `tileContent` association. Alternatively, an element * instance may be given. */ vTileContent: | string | sap.ushell.components.factsheet.controls.PictureViewerItem ): sap.ushell.components.factsheet.controls.PictureTile; /** * Sets a new value for property {@link #getWidth width}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `"32px"`. * * * @returns Reference to `this` in order to allow method chaining */ setWidth( /** * New value for property `width` */ sWidth?: sap.ui.core.CSSSize ): this; } /** * Picture viewer control relying on the TileContainer control * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. PictureViewer was replacing * the Carousel as it wasn't supporting some versions of MS Internet Explorer. Now, the sap.m.Carousel is * fully functional, please use sap.m.Carousel instead. This control will not be supported anymore. */ class PictureViewer extends sap.m.TileContainer { /** * Constructor for a new components/factsheet/controls/PictureViewer. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureViewerSettings ); /** * Constructor for a new components/factsheet/controls/PictureViewer. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureViewerSettings ); /** * Creates a new subclass of class sap.ushell.components.factsheet.controls.PictureViewer with name `sClassName` * and enriches it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.m.TileContainer.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.components.factsheet.controls.PictureViewer >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.components.factsheet.controls.PictureViewer. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Adds some item `oItem` to the aggregation named `items`. Deprecated, use aggregation "tiles". * * @deprecated As of version 1.18. Please use aggregation "tiles" instead. Also consider using {@link sap.m.Carousel } * as the PictureViewer itself is deprecated. * * @returns `this` to allow method chaining */ addItem( /** * the item to add; if empty, nothing is inserted */ oItem: sap.ushell.components.factsheet.controls.PictureViewerItem ): sap.ushell.components.factsheet.controls.PictureViewer; /** * Attaches event handler `fnFunction` to the {@link #event:pictureDeleted pictureDeleted} event of this * `sap.ushell.components.factsheet.controls.PictureViewer`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.components.factsheet.controls.PictureViewer` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPictureDeleted( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.components.factsheet.controls.PictureViewer` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:pictureDeleted pictureDeleted} event of this * `sap.ushell.components.factsheet.controls.PictureViewer`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.components.factsheet.controls.PictureViewer` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPictureDeleted( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.components.factsheet.controls.PictureViewer` * itself */ oListener?: object ): this; /** * Removes the picture at index `iIndex` from the `items` aggregation. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * @returns `this` to allow method chaining */ deletePicture( /** * the `0`-based index of the picture collection to delete; if `iIndex` is out of range or empty, the current * image will be deleted. */ iIndex: int ): sap.ushell.components.factsheet.controls.PictureViewer; /** * Destroys all the items in the aggregation {@link #getItems items}. * * * @returns Reference to `this` in order to allow method chaining */ destroyItems(): this; /** * Detaches event handler `fnFunction` from the {@link #event:pictureDeleted pictureDeleted} event of this * `sap.ushell.components.factsheet.controls.PictureViewer`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPictureDeleted( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:pictureDeleted pictureDeleted} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePictureDeleted( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets the current picture index. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * @returns the current picture index */ getCurrentPictureIndex(): sap.ushell.components.factsheet.controls.PictureViewer; /** * Gets content of aggregation {@link #getItems items}. */ getItems(): sap.ushell.components.factsheet.controls.PictureViewerItem[]; /** * Gets current value of property {@link #getRemovable removable}. * * Default value is `false`. * * * @returns Value of property `removable` */ getRemovable(): boolean; /** * Gets current value of property {@link #getTileScaling tileScaling}. * * Percentage of the space occupied by the image in the picture viewer control. Please note that if the * factor is too close to 1, the navigation arrows usually displayed in desktop mode will not be available * * Default value is `0.95`. * * * @returns Value of property `tileScaling` */ getTileScaling(): float; /** * Checks for the provided `sap.ushell.components.factsheet.controls.PictureViewerItem` in the aggregation * {@link #getItems items}. and returns its index if found or -1 otherwise. * * * @returns The index of the provided control in the aggregation if found, or -1 otherwise */ indexOfItem( /** * The item whose index is looked for */ oItem: sap.ushell.components.factsheet.controls.PictureViewerItem ): int; /** * Inserts a item into the aggregation named `items`. When adding a new item to the aggregation, a sap.ca.ui.PictureTile * is actually created with its own ID and added to the internal TileContainer. Deprecated, use aggregation * "tiles". * * @deprecated As of version 1.18. Please use aggregation "tiles" instead. Also consider using {@link sap.m.Carousel } * as the PictureViewer itself is deprecated. * * @returns `this` to allow method chaining */ insertItem( /** * the item to insert; if empty, nothing is inserted */ oItem: sap.ushell.components.factsheet.controls.PictureViewerItem, /** * the `0`-based index the item should be inserted at; for a negative value of `iIndex`, the item is inserted * at position 0; for a value greater than the current size of the aggregation, the item is inserted at * the last position */ iIndex: int ): sap.ushell.components.factsheet.controls.PictureViewer; /** * Removes all the controls from the aggregation {@link #getItems items}. * * Additionally, it unregisters them from the hosting UIArea. * * * @returns An array of the removed elements (might be empty) */ removeAllItems(): sap.ushell.components.factsheet.controls.PictureViewerItem[]; /** * Removes a item from the aggregation {@link #getItems items}. * * * @returns The removed item or `null` */ removeItem( /** * The item to remove or its index or id */ vItem: | int | string | sap.ushell.components.factsheet.controls.PictureViewerItem ): sap.ushell.components.factsheet.controls.PictureViewerItem | null; /** * Select the picture at index `iIndex` from the `items` aggregation. * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * @returns `this` to allow method chaining */ selectPicture( /** * the `0`-based index of the aggregation to select; for a negative value of `iIndex`, the picture at position * 0 is selected; for a value greater than the current size of the aggregation, the selected picture at * the last position is selected */ iIndex: int ): sap.ushell.components.factsheet.controls.PictureViewer; /** * Sets a new value for property {@link #getRemovable removable}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setRemovable( /** * New value for property `removable` */ bRemovable?: boolean ): this; /** * Sets a new value for property {@link #getTileScaling tileScaling}. * * Percentage of the space occupied by the image in the picture viewer control. Please note that if the * factor is too close to 1, the navigation arrows usually displayed in desktop mode will not be available * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `0.95`. * * * @returns Reference to `this` in order to allow method chaining */ setTileScaling( /** * New value for property `tileScaling` */ fTileScaling?: float ): this; } /** * Picture viewer control relying on the TileContainer control * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. PictureViewerItem is used * in PictureViewer control and is not meant to be consumed outside of PictureViewer usage. PictureViewer * was replacing the Carousel as it wasn't supporting some versions of MS Internet Explorer. Now, the sap.m.Carousel * is fully functional, please use sap.m.Carousel instead. This control will not be supported anymore. */ class PictureViewerItem extends sap.ui.core.Control { /** * Constructor for a new components/factsheet/controls/PictureViewerItem. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureViewerItemSettings ); /** * Constructor for a new components/factsheet/controls/PictureViewerItem. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.components.factsheet.controls.$PictureViewerItemSettings ); /** * Creates a new subclass of class sap.ushell.components.factsheet.controls.PictureViewerItem with name * `sClassName` and enriches it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.Control.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.components.factsheet.controls.PictureViewerItem >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.components.factsheet.controls.PictureViewerItem. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Destroys the image in the aggregation {@link #getImage image}. * * * @returns Reference to `this` in order to allow method chaining */ destroyImage(): this; /** * Gets content of aggregation {@link #getImage image}. */ getImage(): sap.m.Image; /** * Gets current value of property {@link #getSrc src}. * * * @returns Value of property `src` */ getSrc(): string; /** * Sets the aggregated {@link #getImage image}. * * * @returns Reference to `this` in order to allow method chaining */ setImage( /** * The image to set */ oImage: sap.m.Image ): this; /** * Setter for property `src`. * * Default value is empty/`undefined` * * @deprecated As of version 1.22. Please use {@link sap.m.Carousel} instead. * * @returns `this` to allow method chaining */ setSrc( /** * new value for property `src` */ sSrc: string ): sap.ushell.components.factsheet.controls.PictureViewerItem; } /** * Event object of the PictureTile#pictureDelete event. */ type PictureTile$PictureDeleteEvent = sap.ui.base.Event< PictureTile$PictureDeleteEventParameters, PictureTile >; /** * Event object of the PictureViewer#pictureDeleted event. */ type PictureViewer$PictureDeletedEvent = sap.ui.base.Event< PictureViewer$PictureDeletedEventParameters, PictureViewer >; } } } namespace Container { /** * An enumeration for the application work protect mode state. * * @since 1.90.0 * @deprecated As of version 1.146. the concept has been abandoned. */ type DirtyState = { /** * The embedded application is clean, there is no unsaved data. */ CLEAN: "CLEAN"; /** * The embedded application is dirty, the user has entered data that is not yet saved. */ DIRTY: "DIRTY"; /** * The embedded application container's dirty state cannot be determined because of technical reasons. */ MAYBE_DIRTY: "MAYBE_DIRTY"; }; } namespace navigation { /** * Module that stores the dirty state of the application. * * @since 1.146.0 */ interface DirtyState { /** * Deregister the work protection dirty callback function. See registerDirtyStateProvider for more information. * Only the last registered function will be deregistered (in case it was registered multiple times). * * @since 1.146.0 */ deregisterDirtyStateProvider( /** * function for determining the state of the application */ fnDirty: () => boolean ): void; /** * If the dirty state was set to 'false' using 'setDirtyFlag' the registered dirty state provider methods * get called to determine the actual dirty state. The determined dirty state is then returned. * * However, if the dirty state was previously set to 'true' using 'setDirtyFlag' the registered dirty state * provider methods are ignored and the function simply returns 'true'. * * @since 1.146.0 * * @returns The value of the dirty flag or the determined dirty state returned by the dirty state providers. */ getDirtyFlag(): Promise; /** * Register the work protection dirty callback function. In the work protect mechanism, each platform can * register their own method in order to check if data was changed during the session, and notify the container * about the change. Registering multiple times the same function is allowed. * * Use `Function.prototype.bind()` to determine the callback's `this` or some of its arguments. * * Note that registered callback functions are not automatically de-registered when an application is closed. * Use {@link sap.ushell.navigation.DirtyState.deregisterDirtyStateProvider} to de-register the callback * function. * * @since 1.146.0 */ registerDirtyStateProvider( /** * Function for determining the state of the application. The callback is used to determine the current * dirty state during a navigation. The function must return a boolean which determines if the current application * is dirty or not. If `true` is returned the end user is prompted with a dialog where they need to confirm * the potential data loss. The callback is called with a navigation context as its first parameter which * can be used to determine the dirty state: * ```javascript * * { * isCrossAppNavigation: true, // Boolean which indicates if the navigation is inner app or across two different applications. * innerAppRoute: "&/SalesOrder/11" // If it is an inner app navigation, it describes the inner app route. * } * ``` */ fnDirty: () => boolean ): void; /** * Setter for the isDirty flag value. * * @since 1.146.0 * * @returns Resolves when the dirty flag is set. */ setDirtyFlag( /** * The value of the dirty flag. */ bIsDirty?: boolean ): Promise; } } namespace renderers { namespace fiori2 { /** * Describes the settings that can be provided to the Renderer constructor. * * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension} or {@link sap.ushell.services.FrameBoundExtension } * instead. */ interface $RendererSettings extends sap.ui.core.$UIComponentSettings {} /** * The SAPUI5 component of SAP Fiori Launchpad renderer for the Unified Shell. This method MUST be called * by the Unified Shell's container only, others MUST call {@link sap.ushell.Container#getRenderer}. * * @since 1.15.0 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension} or {@link sap.ushell.services.FrameBoundExtension } * instead. */ class Renderer extends sap.ui.core.UIComponent { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * The launchpad states that can be passed as a parameter. * * * **Values:** App - launchpad state when running a Fiori app * Home - launchpad state when the home page is open * * * @since 1.30 * @deprecated As of version 1.120. The LaunchpadState concept has been migrated to explicit APIs. Please * use {@link sap.ushell.services.Extension.Item} or {@link sap.ushell.services.FrameBoundExtension.Item } * APIs instead. */ LaunchpadState: undefined; /** * Creates an action button in the User Actions Menu in the SAP Fiori launchpad, in the given launchpad * states (LaunchpadState). * * * **Example:** * ```javascript * * sap.ushell.Container.getRenderer("fiori2").addActionButton("sap.m.Button", {id: "testBtn2", text: "test button"}, true, true); * ``` * * * This function is marked for deprecation as of version 1.48. * It will continue to work as expected as long as one of the following conditions apply: * 1. The control instance is already created and its ID is included in the input parameter oControlProperties * 2. The control type resource is already loaded * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState * If no launchpad state is provided, the content is added in all states. * * @since 1.30 * @deprecated As of version 1.48. Please use {@link #addUserAction} instead. * * @returns oItem - the created control */ addActionButton( /** * The (class) name of the control type to create. */ controlType: string, /** * The properties that will be passed to the created control. */ oControlProperties: object, /** * Specify whether to display the control. If true, the control is displayed (calls the showActionButton * method) according to the bCurrentState and aStates parameters. If false, the control is created but not * displayed (you can use showActionButton to display the control when needed). */ bIsVisible: boolean, /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the home page, this control will be removed. */ bCurrentState: boolean, /** * List of the launchpad states (sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which to add the * control. Valid only if bCurrentState is set to false. */ aStates: string[] ): sap.ui.core.Control; /** * Adds the given sap.ui.core.Control to the EndUserFeedback dialog. * The EndUserFeedback dialog is opened via the user actions menu in the Fiori Launchpad shell header. * * @since 1.30 * @deprecated As of version 1.93. Deprecated without successor. EndUserFeedback has been discontinued. */ addEndUserFeedbackCustomUI( /** * The control to be added to the EndUserFeedback dialog. */ oCustomUIContent: object, /** * Specify whether to display the control. */ bShowCustomUIContent: boolean ): void; /** * Creates a FloatingActionButton in Fiori launchpad, in the given launchpad states. * The FloatingActionButton is rendered in the bottom right corner of the shell. * * * **Example:** * ```javascript * * sap.ushell.Container.getRenderer("fiori2").addFloatingActionButton("sap.ushell.ui.shell.ShellFloatingAction", {id: "testBtn"}, true, true); * ``` * * * This function is marked for deprecation as of version 1.48. * It will continue to work as expected as long as one of the following conditions apply: * 1. The control instance is already created and its ID is included in the input parameter oControlProperties * 2. The control type resource is already loaded * See: * LaunchpadState * If no launchpad state is provided the content is added in all states. * * @since 1.30 * @deprecated As of version 1.48. Please use {@link #addFloatingButton} instead. * * @returns oItem - the created control */ addFloatingActionButton( /** * The (class) name of the control type to create. */ controlType: string, /** * The properties that will be passed to the created control. */ oControlProperties: object, /** * Specify whether to display the control. */ bIsVisible: boolean, /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ aStates: string[] ): object; /** * Creates a FloatingActionButton in Fiori launchpad, in the given launchpad states. * The FloatingActionButton is rendered in the bottom right corner of the shell. * * * **Example:** * ```javascript * * sap.ushell.Container.getRenderer("fiori2").addFloatingActionButton("sap.ushell.ui.shell.ShellFloatingAction", {id: "testBtn"}, true, true); * ``` * * See: * LaunchpadState * If no launchpad state is provided the content is added in all states. * * @since 1.48 * @deprecated As of version 1.52. Deprecated without successor. Support for the FloatingActionButton has * been discontinued. * * @returns Resolves with the newly created control */ addFloatingButton( /** * Contains the required parameters for creating and showing the new control object: * Properties: * - {string} controlType * The (class) name of the control type to create. * - {object} oControlProperties * The properties that will be passed to the created control. * - {boolean} bIsVisible * Specify whether to display the control. * - {boolean} bCurrentState * If true, add the current control only to the current rendered shell state. * Once the user navigates to another app or back to the Home page, this control will be removed. * - {string[]} aStates * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ oParameters: object ): jQuery.Promise; /** * Creates and displays a shell header icon in Fiori launchpad, in the given launchpad states. * The icon is displayed in the right side of the Fiori Launchpad shell header or in an overflow menu. * The text property is mandatory as it might be used in the overflow menu. * The tooltip property must not have the same text as the text property, as this causes accessibility * issues if the item is in the overflow menu. * If no tooltip is provided, the text property is shown as tooltip when the item is not in the overflow * menu. * * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * * // Create an icon button that opens a dialog * oRenderer.addHeaderEndItem({ * id: "myTestButton", * icon: "sap-icon://action-settings", * tooltip: resources.i18n.getText("testButton.tooltip"), * text: resources.i18n.getText("testButton.text"), * ariaLabel: resources.i18n.getText("testButton.ariaLabel"), * ariaHaspopup: "dialog", * press: [myController.handleTestButtonPress, myController] * }, true); * * // Create a temporary link * oRenderer.addHeaderEndItem({ * id: "myTestLink", * ariaLabel: resources.i18n.getText("testLink.label"), * target: "#MyTestApplication-show", * icon: "sap-icon://overflow" * }, true, true); * ``` * * See: * LaunchpadState * If no launchpad state is provided the content is added in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. * * @returns oItem - the created control */ addHeaderEndItem( /** * The (class) name of the control type to create. **Deprecated**: Since version 1.38. This parameter is * no longer supported and can be omitted. */ controlType: string, /** * The properties that will be passed to the created control. The object may contain the following properties: * * {string} [id] - The ID of the object. * {string} icon - The button icon source. * {string} [text] - The button text. It is only rendered in the overflow popover but not in the shell * header. * {string} [target] - target URI for a navigation link. * {string} [ariaLabel] - Accessibility: aria-label attribute. * {string} [ariaHaspopup] - Accessibility: aria-haspopup attribute. * {Function} [press] - A function to be called when the button is depressed. */ oControlProperties: object, /** * Specify whether to display the control. */ bIsVisible: boolean, /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ aStates: string[] ): sap.ui.core.Control; /** * Creates and displays an item in the header of Fiori launchpad, in the given launchpad states. * The new header item will be displayed on the left-hand side of the Fiori Launchpad shell header, according * to the given display parameters. * The new header item will be added to the right of any existing header items. The header can contain * a maximum of three header items. * * * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.addHeaderItem({ * id: "myTestButton", * ariaLabel: resources.i18n.getText("testButton.label"), * ariaHaspopup: "dialog", * icon: "sap-icon://action-settings", * tooltip: resources.i18n.getText("testButton.tooltip"), * text: resources.i18n.getText("testButton.text"), * press: controller.handleTestButtonPress * }, true, true); * ``` * * See: * LaunchpadState * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. * * @returns The created control */ addHeaderItem( /** * The (class) name of the control type to create. **Deprecated**: Since version 1.38. This parameter is * no longer supported and can be omitted. */ controlType: string, /** * The properties that will be passed to the created control. For example: `{id: "testButton"}` */ oControlProperties: object, /** * Specifies whether the header item control is displayed after being created. * If `true` then the control is displayed according to parameters bCurrentState and aStates. * If `false` then the control is created but not displayed. */ bIsVisible: boolean, /** * If `true` then the new created control is added to the current rendered shell state. * When the user navigates to a different state including a different application then the control will * be removed. * If `false` then add the control to the LaunchPadState itself. */ bCurrentState: boolean, /** * (Valid only if bCurrentState is `false`) * A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which the control * is added. * If no launchpad state is provided the control is added in all states. */ aStates: string[] ): sap.ui.core.Control; /** * Creates and displays an item in the header of Fiori launchpad, in the given launchpad states. * The new header item will be displayed on the left-hand side of the Fiori Launchpad shell header, according * to the given display parameters. * The new header item will be added to the right of any existing header items. The header can contain * a maximum of three header items. * * * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.addHeaderItem({ * id: "myTestButton", * ariaLabel: resources.i18n.getText("testButton.label"), * ariaHaspopup: "dialog", * icon: "sap-icon://action-settings", * tooltip: resources.i18n.getText("testButton.tooltip"), * text: resources.i18n.getText("testButton.text"), * press: controller.handleTestButtonPress * }, true, true); * ``` * * See: * LaunchpadState * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. * * @returns The created control */ addHeaderItem( /** * The properties that will be passed to the created control. For example: `{id: "testButton"}` */ oControlProperties: object, /** * Specifies whether the header item control is displayed after being created. * If `true` then the control is displayed according to parameters bCurrentState and aStates. * If `false` then the control is created but not displayed. */ bIsVisible: boolean, /** * If `true` then the new created control is added to the current rendered shell state. * When the user navigates to a different state including a different application then the control will * be removed. * If `false` then add the control to the LaunchPadState itself. */ bCurrentState: boolean, /** * (Valid only if bCurrentState is `false`) * A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which the control * is added. * If no launchpad state is provided the control is added in all states. */ aStates: string[] ): sap.ui.core.Control; /** * Creates the Left Pane content in Fiori launchpad, in the given launchpad states. * * * **Example:** * ```javascript * * sap.ushell.Container.getRenderer("fiori2").addLeftPaneContent("sap.m.Button", {id: "testBtn", text: "Test Button"}, true, true); * ``` * * * This function is marked for deprecation as of version 1.48. * It will continue to work as expected as long as one of the following conditions apply: * 1. The control instance is already created and its ID is included in the input parameter oControlProperties * 2. The control type resource is already loaded * See: * LaunchpadState * If no launchpad state is provided the content is added in all states. * * @since 1.30 * @deprecated As of version 1.48. Please use {@link #addSidePaneContent} instead. * * @returns oItem - the created control */ addLeftPaneContent( /** * The (class) name of the control type to create. */ controlType: string, /** * The properties that will be passed to the created control. */ oControlProperties: object, /** * Specify whether to display the control. */ bIsVisible: boolean, /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ aStates: string[] ): object; /** * Creates and displays a sub header control in Fiori launchpad, in the given launchpad states. * The new control is displayed in FLP UI according to the given display parameters. * If a sub header already exists, the new created one will replace the existing one. * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"), * oAddSubHeaderProperties = { * controlType : "sap.m.Bar", * oControlProperties : { * id: "testBar", * contentLeft: [new sap.m.Button({ * text: "Test SubHeader Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * } * }) * }, * bIsVisible: true, * bCurrentState: true * }; * * oRenderer.addShellSubHeader(oAddSubHeaderProperties); * ``` * * * @since 1.48 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#createSubHeader } * instead. * * @returns Resolves with the newly created control */ addShellSubHeader( /** * Contains the required parameters for creating and showing the new control object. */ oParameters: { /** * The (class) name of the control type to create. */ controlType: string; /** * The properties that will be passed to the created control. */ oControlProperties: object; /** * Specify whether to display the control. */ bIsVisible: boolean; /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean; /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ aStates: string[]; } ): jQuery.Promise; /** * Creates the Left Pane content in Fiori launchpad, in the given launchpad states. * * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"), * oSidePaneContentProperties = { * controlType : "sap.m.Button", * oControlProperties : { * id: "testBtn", * text: "Test Button" * }, * bIsVisible: true, * bCurrentState: true * }; * * oRenderer.addSidePaneContent(oSidePaneContentProperties); * ``` * * See: * LaunchpadState * If no launchpad state is provided the content is added in all states. * * @since 1.48 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getSidePane } * instead. * * @returns Resolves with the newly created control */ addSidePaneContent( /** * Contains the parameters for the control that should be added to the side pane */ oParameters: { /** * The (class) name of the control type to create. */ controlType: string; /** * The properties that will be passed to the created control. */ oControlProperties: object; /** * Specify whether to display the control. */ bIsVisible: boolean; /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean; /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. */ aStates: string[]; } ): jQuery.Promise; /** * Creates and displays a sub header control in Fiori launchpad, in the given launchpad states. * The new control is displayed in FLP UI according to the given display parameters. * If a sub header already exists, the new created one will replace the existing one. * * * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.addSubHeader("sap.m.Bar", {id: "testBar", contentLeft: [new sap.m.Button({text: "Test SubHeader Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * }}) * ]}, true, true); * ``` * * * This function is marked for deprecation as of version 1.48. * It will continue to work as expected as long as one of the following conditions apply: * 1. The control instance is already created and its ID is included in the input parameter oControlProperties * 2. The control type resource is already loaded * See: * LaunchpadState * * @since 1.30 * @deprecated As of version 1.48. Please use {@link #addShellSubHeader} instead. * * @returns The created control */ addSubHeader( /** * The (class) name of the control type to create. * For example: `"sap.m.Bar"` */ controlType: string, /** * The properties that will be passed to the created control. * For example: `{id: "testBar"}` */ oControlProperties: object, /** * Specifies whether the sub header control is displayed after being created. * If `true` then the control is displayed according to parameters bCurrentState and aStates, * if `false` then the control is created but not displayed. */ bIsVisible: boolean, /** * If `true` then the new created control is added to the current rendered shell state. * When the user navigates to another application (including the Home page) then the control will be removed. * If `false` then add the control to the LaunchPadState itself. */ bCurrentState: boolean, /** * (Valid only if bCurrentState is `false`) * A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which the control * is added. * If no launchpad state is provided the control is added in all states. */ aStates: string[] ): object; /** * Creates a ToolAreaItem in Fiori Launchpad and adds it to the Tool Area, in the given launchpad states. * Once the item is added, the Tool Area is rendered on the left side on the Fiori Launchpad shell. * * **Example:** * ```javascript * * sap.ushell.Container.getRenderer("fiori2").addToolAreaItem({ * id: "testButton", * icon: "sap-icon://documents", * expandable: true, * press: function (evt) { * window.alert("Press" ); * }, * expand: function (evt) { * // This function will be called on the press event of the "expand" button. The result of "expand" event in the UI must be determined by the developer * window.alert("Expand" ); * } * }, true, false, ["home"]); * ``` * * See: * sap.ushell.ui.shell.ToolAreaItem * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getToolArea } * instead. * * @returns the added control */ addToolAreaItem( /** * The properties object that will be passed to the constructor of sap.ushell.ui.shell.ToolAreaItem control. */ oControlProperties: object, /** * Specify whether to display the control. */ bIsVisible: boolean, /** * If `true`, add the item to the currently rendered shell. If `false`, add the item to the given LaunchPadStates * This causes the items to be rendered every time the given states are active. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to `false`) - An array of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) * in which the controls are added. If no launchpad state is provided the items are added in all states. */ aStates: string[] ): sap.ui.core.Control; /** * Creates an Action Button in Fiori launchpad, in the given launchpad states. * The button will be displayed in the user actions menu, that is opened from the user button in the shell * header. * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"), * oAddActionButtonProperties = { * controlType : "sap.m.Button", * oControlProperties : { * id: "exampleButton", * text: "Example Button", * icon: "sap-icon://refresh", * press: function () { * alert("Example Button was pressed!"); * } * }, * bIsVisible: true, * bCurrentState: true * }; * oRenderer.addUserAction(oAddActionButtonProperties); * ``` * * * @since 1.48 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createUserAction} or * {@link sap.ushell.services.FrameBoundExtension#createUserAction} instead. * * @returns Resolves with the newly created control */ addUserAction( /** * Contains the required parameters for creating and showing the new control object. */ oParameters: { /** * The (class) name of the control type to create. */ controlType: string; /** * The properties that will be passed to the created control. */ oControlProperties: object; /** * Specify whether to display the control. */ bIsVisible: boolean; /** * If true, add the current control only to the current rendered shell state. Once the user navigates to * another app or back to the Home page, this control will be removed. */ bCurrentState: boolean; /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the control. If no launchpad state is provided the content is added in all states. @see * LaunchpadState */ aStates: string[]; } ): jQuery.Promise; /** * Adds an entry to the User Preferences dialog box including the UI control that appears when the user * clicks the new entry, and handling of User Preferences actions such as SAVE and CANCEL. * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * var oEntry = { * title: "title", * value: function() { * return jQuery.Deferred().resolve("entryTitleToBeDisplayed"); * }, * content: function() { * return jQuery.Deferred().resolve(new sap.m.Button("userPrefEntryButton", {text: "Button"})); * }, * onSave: function() { * return jQuery.Deferred().resolve(); * } * }; * oRenderer.addUserPreferencesEntry(oEntry); * ``` * * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#addUserSettingsEntry } * instead. */ addUserPreferencesEntry( /** * The data of the new added User Preference entry. */ entryObject: { /** * (Optional) - The ID of the object. */ entryHelpID: string; /** * The title of the entry to be presented in the list in the User Preferences dialog box. We recommend using * a string from the translation bundle. */ title: string; /** * A function to be called that returns a {@link jQuery.Promise} object which consists of a {sap.ui.core.Control } * to be displayed in a follow-on dialog box. A SAPUI5 view instance can also be returned. The function * is called on each time the user opens the User Preferences dialog box. */ content: Function; /** * A function to be called which returns a {@link jQuery.Promise} object when the user clicks "save" in * the User Preferences dialog box. If an error occurs, pass the error message via the {@link jQuery.Promise } * object. Errors are displayed in the log. */ onSave: Function; /** * A function to be called that closes the User Preferences dialog box without saving any changes. */ onCancel: Function; /** * Set this value to true if you want that your content is displayed without the standard header. */ provideEmptyWrapper: boolean; }, /** * A string to be presented as the value of the entry OR a function to be called which returns a {@link jQuery.Promise } * object. */ value: string | Function ): void; /** * This method returns the current state of the Viewport Container control. * * @since 1.37 * @deprecated As of version 1.120. This functionality was discontinued. * * @returns The current Viewport State. */ getCurrentViewportState(): string; /** * Hides an action button from the User Actions Menu in the SAP Fiori launchpad, in the given launchpad * states (LaunchpadState). The removed button will not be destroyed. * * This API is meant to be used for custom elements in the SAP Fiori launchpad. We do not recommend using * it on standard launchpad elements, as this may interfere with the standard launchpad functionality. * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * If no launchpad state is provided, the content is hidden in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createUserAction} or * {@link sap.ushell.services.FrameBoundExtension#createUserAction} instead. */ hideActionButton( /** * IDs of the button controls that should hidden. */ aIds: string[], /** * If true, removes the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * A list of the launchpad states in which to hide the control. Valid only if bCurrentState is set to false. */ aStates: string[] ): void; /** * Hide the given sap.ushell.ui.shell.ShellFloatingAction from Fiori Launchpad, in the given launchpad states. * The removed control will not be destroyed. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * See: * LaunchpadState * If no launchpad state is provided the content is removed in all states. * * @since 1.30 * @deprecated As of version 1.52. Deprecated without successor. Support for the FloatingActionButton has * been discontinued. */ hideFloatingActionButton( /** * the Ids of the sap.ushell.ui.shell.ShellFloatingAction to remove. */ aIds: string[], /** * if true, remove the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState in which to remove the control. (Only * valid if bCurrentState is set to false) */ aStates: string[] ): void; /** * Hide the given sap.ushell.ui.shell.ShellHeadItem from Fiori Launchpad, in the given launchpad states. * The removed control will not be destroyed. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * See: * LaunchpadState * If no launchpad state is provided the content is removed in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. */ hideHeaderEndItem( /** * the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove. */ aIds: string[], /** * if true, remove the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState in which to remove the control. (Only * valid if bCurrentState is set to false) */ aStates: string[] ): void; /** * Hide the given sap.ushell.ui.shell.ShellHeadItem from Fiori Launchpad, in the given launchpad states. * The removed control will not be destroyed. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * See: * LaunchpadState * If no launchpad state is provided the content is removed in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. */ hideHeaderItem( /** * the Ids of the sap.ushell.ui.shell.ShellHeadItem to remove. */ aIds: string[], /** * if true, remove the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState in which to remove the control. (Only * valid if bCurrentState is set to false) */ aStates: string[] ): void; /** * Hide the given control from Fiori Launchpad, in the given launchpad states. The removed control will * not be destroyed. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * See: * LaunchpadState * If no launchpad state is provided the content is removed in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getSidePane } * instead. */ hideLeftPaneContent( /** * the Ids of the controls to remove. */ aIds: string[], /** * if true, remove the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState in which to remove the control. (Only * valid if bCurrentState is set to false) */ aStates: string[] ): void; /** * Hide the given control from the Fiori Launchpad sub header, in the given launchpad states. The removed * control will not be destroyed. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * See: * LaunchpadState * If no launchpad state is provided the content is removed in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#createSubHeader } * instead. */ hideSubHeader( /** * the Ids of the controls to remove. */ aIds: string[], /** * if true, remove the current control only from the current rendered shell state. */ bCurrentState: boolean, /** * list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState in which to remove the control. (Only * valid if bCurrentState is set to false) */ aStates: string[] ): void; /** * If exists, this method will remove the footer from the Fiori Launchpad. * * This API is meant to be used for implementing custom elements in the SAP Fiori launchpad. We do not * recommend using it on a standard launchpad element, as this may interfere with the standard launchpad * functionality. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension.Footer#destroy } * instead. */ removeFooter(): void; /** * Remove the given Tool Area Item from Fiori Launchpad, in the given launchpad states. This API is meant * to be used for implementing custom elements in the SAP Fiori launchpad. We do not recommend using it * on a standard launchpad element, as this may interfere with the standard launchpad functionality. * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getToolArea } * instead. */ removeToolAreaItem( /** * A single ID or an array of IDs to remove from the Tool Area. */ vIds: string | string[], /** * If `true`, remove the items from the currently rendered shell. If `false`, remove the items from the * LaunchPadState itself, causing the items to be removed every time the given states are active. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to `false`) - An array of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) * from which the controls are removed. If no launchpad state is provided the items are removed from all * states. */ aStates: string[] ): void; /** * Displays the given sap.m.Bar as the footer of the Fiori launchpad shell. * The footer will be displayed in all states. * * * **Example:** * ```javascript * * var bar = new sap.m.Bar({contentLeft: [new sap.m.Button({text: "Test Footer Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * }}) * ]}); * var renderer = sap.ushell.Container.getRenderer("fiori2"); * renderer.setFooter(bar); * ``` * * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#createFooter } * instead. */ setFooter( /** * sap.m.Bar, the control to be added as the footer of the Fiori Launchpad */ oFooter: sap.m.Bar ): void; /** * Creates and displays an SAPUI5 control as the footer of the Fiori launchpad shell. * The footer will be displayed in all states. * Previously created footer will be removed. * * * **For example, using the sap.m.Bar control:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.setFooterControl("sap.m.Bar", {id: "testBar", contentLeft: [new sap.m.Button({text: "Test Footer Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * }}) * ]}); * ``` * * * This function is marked for deprecation as of version 1.48. * It will continue to work as expected as long as one of the following conditions apply: * 1. The control instance is already created, and its ID is included in the input parameter oControlProperties * 2. The control type resource is already loaded * * @since 1.42 * @deprecated As of version 1.48. Please use {@link #setShellFooter} instead. * * @returns The created control */ setFooterControl( /** * The (class) name of the control type to create. * For example, `"sap.m.Bar"` */ controlType: string, /** * The properties that will be passed to the created control. * For example, `{id: "testBar"}` */ oControlProperties: object ): sap.ui.core.Control; /** * Sets the title in the Fiori Launchpad shell header. * * @since 1.30 * @deprecated As of version 1.120. The "second title" functionality was discontinued. Set a title via {@link sap.ushell.ui5service.ShellUIService#setTitle } * instead. */ setHeaderTitle( /** * The title to be displayed in the Fiori Launchpad shell header */ sTitle: string ): void; /** * Sets the header visibility according to the given value and shell states. (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * * **Example:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.setHeaderVisibility(false, false, ["home", "app"]); * ``` * * See: * LaunchpadState * * @since 1.38 * @deprecated As of version 1.120. This functionality was discontinued. */ setHeaderVisibility( /** * The visibility of the header */ bVisible: boolean, /** * If `true` then the visibility is set only to the current rendered shell state. * When the user navigates to another application (including the Home page) then the visibility flag is * reset. * If `false` then set the visibility according to the states provided in the aState parameter. */ bCurrentState: boolean, /** * (Valid only if bCurrentState is `false`) * A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which the header * visibility flag should be set. * If no launchpad state is provided the visibility flag is set for all states. */ aStates: string[] ): void; /** * Sets the visibility of the left pane in the Fiori Launchpad shell, in the given launchpad state @see * LaunchpadState * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getSidePane } * instead. */ setLeftPaneVisibility( /** * LaunchpadState in which to show/hide the left pane */ sLaunchpadState: string, /** * specify whether to display the left pane or not */ bVisible: boolean ): void; /** * Creates and displays an SAPUI5 control as the footer of the Fiori launchpad shell. * The footer will be displayed in all states. * Previously created footer will be removed. * * * **For example, using the sap.m.Bar control:** * ```javascript * * var oRenderer = sap.ushell.Container.getRenderer("fiori2"), * oFooterControlProperties = { * controlType : "sap.m.Bar", * oControlProperties : { * id: "testBar", * contentLeft: [new sap.m.Button({ * text: "Test Footer Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * } * })] * } * }; * oRenderer.setShellFooter(oFooterControlProperties); * ``` * * * @since 1.48 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#createFooter } * instead. * * @returns Resolves with the newly created control */ setShellFooter( /** * Contains the required parameters for creating and showing the new control object. */ oParameters: { /** * The (class) name of the control type to create, for example: `sap.m.Bar` */ controlType: string; /** * The properties that will be passed to the created control, for example: `{id: "testBar"}` */ oControlProperties: object; } ): jQuery.Promise; /** * Displays action buttons in the User Actions Menu in the SAP Fiori launchpad, in the given launchpad states * (LaunchpadState). (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * If no launchpad state is provided the content is displayed in all states. * The user actions menu is opened via the button on the right hand side of the shell header. * * * **Example:** * ```javascript * * var button1 = new sap.m.Button(); * var renderer = sap.ushell.Container.getRenderer("fiori2"); * renderer.showActionButton([button1.getId()], false, ["home", "app"]); * ``` * * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * If no launchpad state is provided, the content is added in all states. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createUserAction} or * {@link sap.ushell.services.FrameBoundExtension#createUserAction} instead. */ showActionButton( /** * List of ID elements to that should be added to the User Actions Menu options bar. */ aIds: string[], /** * If true, add the created control to the current rendered shell state. When the user navigates to a different * state, or to a different application, then the control is removed. If false, the control is added to * the LaunchpadState. */ bCurrentState: boolean, /** * List of the launchpad states (sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which to add the * aIds. Valid only if bCurrentState is set to false. */ aStates: string[] ): void; /** * Displays FloatingActionButton in the bottom right corner of the Fiori launchpad, in the given launchpad * states. The FloatingActionButton is rendered in the bottom right corner of the shell. * (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * If no launchpad state is provided, the content is displayed in all states. * * * **Example:** * ```javascript * * var button1 = new sap.ushell.ui.shell.ShellFloatingAction(); * var renderer = sap.ushell.Container.getRenderer("fiori2"); * renderer.showFloatingActionButton([button1.getId()], true); * ``` * * * @since 1.30 * @deprecated As of version 1.52. Support for the FloatingActionButton has been discontinued. */ showFloatingActionButton( /** * List of ID elements to add to the user actions menu. */ aIds: string[], /** * if true, add the current Buttons only to the current instance of the rendering of the shell. if false, * add the Buttons to the LaunchPadState itself. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the aIds. */ aStates: string[] ): void; /** * Displays HeaderItems on the right side of the Fiori launchpad shell header, in the given launchpad states * (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * If no launchpad state is provided the content is displayed in all states. * The shell header can display the user HeaderItem, and just one more HeaderItem. * If this method is called when the right side of the header is full, this method will not do anything. * * * **Example:** * ```javascript * * var button1 = new sap.ushell.ui.shell.ShellHeadItem(); * var renderer = sap.ushell.Container.getRenderer("fiori2"); * renderer.showHeaderEndItem ([button1.getId()], false, ["home", "app"]); * ``` * * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. */ showHeaderEndItem( /** * List of ID elements to add to the shell header. */ aIds: string[], /** * if true, add the current HeaderItems only to the current instance of the rendering of the shell. if false, * add the HeaderItems to the LaunchPadState itself. */ bCurrentState: boolean, /** * (only valid if bCurrentState is set to false) - list of the sap.ushell.renderers.fiori2.Renderer.LaunchpadState * in which to add the aIds. */ aStates: string[] ): void; /** * Creates and displays one or more HeaderItem controls according to the given control IDs and Shell states * (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * * The HeaderItem controls will be displayed on the left side of the Fiori Launchpad shell header according * to the given display parameters. * There can be up to three header items. If the number of existing header items plus the given ones exceeds * 3, then the operation fails and no new header items are created. * * * **Example:** * ```javascript * * var button1 = new sap.ushell.ui.shell.ShellHeadItem(); * var button2 = new sap.ushell.ui.shell.ShellHeadItem(); * var renderer = sap.ushell.Container.getRenderer("fiori2"); * renderer.showHeaderItem ([button1.getId(), button2.getId()], false, ["home", "app"]); * ``` * * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.Extension#createHeaderItem} or * {@link sap.ushell.services.FrameBoundExtension#createHeaderItem} instead. */ showHeaderItem( /** * Either ID or an array of IDs of headerItem controls to be added to the shell header. */ vIds: string | string[], /** * If `true` then the new created controls are added to the current rendered shell state. When the user * navigates to another application (including the Home page) then the controls will be removed. If `false` * then the controls are added to the LaunchPadState itself. */ bCurrentState: boolean, /** * Valid only if bCurrentState is `false`. A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) * in which the controls are added. If no launchpad state is provided the controls are added in all states. */ aStates: string[] ): void; /** * Displays one or more sub header controls according to the given control IDs and shell states. * (see sap.ushell.renderers.fiori2.Renderer.LaunchpadState). * * A sub header is placed in a container, located directly below the main Fiori launchpad shell header. * * * **Example:** * ```javascript * * var bar = new sap.m.Bar({id: "testBar", contentLeft: [new sap.m.Button({text: "Test SubHeader Button", * press: function () { * sap.m.MessageToast.show("Pressed"); * }}) * ]}); * var oRenderer = sap.ushell.Container.getRenderer("fiori2"); * oRenderer.showSubHeader([bar.getId()], false, ["home", "app"]); * ``` * * See: * LaunchpadState * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#createSubHeader } * instead. */ showSubHeader( /** * Array of sub header control IDs to be added */ aIds: string[], /** * If `true` then the new created controls are added only to the current rendered shell state. * When the user navigates to another application (including the Home page) then the controls will be removed. * If `false` then add the control to the LaunchPadState itself. */ bCurrentState: boolean, /** * (Valid only if bCurrentState is `false`) * A list of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) in which the controls * are added. * If no launchpad state is provided the controls are added in all states. */ aStates: string[] ): void; /** * Sets the ToolArea visibility * * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getToolArea } * instead. */ showToolArea( /** * LaunchpadState in which to show/hide the ToolArea @see LaunchpadState */ sLaunchpadState?: string, /** * specifies whether to display the ToolArea or not */ bVisible?: boolean ): void; /** * Displays ToolAreaItems on the left side of the Fiori Launchpad shell, in the given launchpad states. * * **Example:** * ```javascript * * sap.ui.require(["sap/ushell/ui/shell/ToolAreaItem"], function (ToolAreaItem) { * var oRenderer = sap.ushell.Container.getRenderer("fiori2"), * oToolAreaItem = new ToolAreaItem({ icon: "sap-icon://wrench" }); * renderer.showToolAreaItem(oToolAreaItem.getId(), false, ["home", "app"]); * }); * ``` * * See: * sap.ushell.renderers.fiori2.Renderer.LaunchpadState. * * @since 1.30 * @deprecated As of version 1.120. Please use {@link sap.ushell.services.FrameBoundExtension#getToolArea } * instead. */ showToolAreaItem( /** * A single ID or an array of IDs to add to the Tool Area. */ vIds: string | string[], /** * If `true`, add the items to the currently rendered shell. If `false`, add the items to the LaunchPadState * itself, causing the items to be rendered every time the given states are active. */ bCurrentState: boolean, /** * Only valid if bCurrentState is set to `false`. An array of shell states (i.e. sap.ushell.renderers.fiori2.Renderer.LaunchpadState) * in which the controls are added. If no launchpad state is provided the items are added in all states. */ aStates: string[] ): void; } } } namespace sandbox { /** * The Unified Shell's bootstrap code for development sandbox scenarios. * * This module provides a boot task that integrates the sandbox configuration provider into the UI5 configuration * system. It is used for UI5 1.x compatibility where the boot task mechanism is required to inject configuration * before the framework fully initializes. * * For UI5 2.x, the preferred approach is to use the manifest-based configuration via `sandboxManifest.json`. * * Usage: Include this script before the UI5 bootstrap script to register the sandbox configuration provider * via the `xx-bootTask` mechanism. * * @since 1.136 * @deprecated As of version 1.136. Use sandboxManifest.json with manifest-based boot configuration instead */ interface SandboxBootTask {} } namespace ui { namespace appfinder { /** * Describes the settings that can be provided to the AppBox constructor. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ interface $AppBoxSettings extends sap.ui.core.$ControlSettings {} /** * Constructor for a new ui/appfinder/AppBox. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ class AppBox extends sap.ui.core.Control { constructor( /** * initial settings for the new control * * Add your documentation for the new ui/appfinder/AppBox */ mSettings?: sap.ushell.ui.appfinder.$AppBoxSettings ); constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control * * Add your documentation for the new ui/appfinder/AppBox */ mSettings?: sap.ushell.ui.appfinder.$AppBoxSettings ); } } namespace BookmarkDialog { /** * @since 1.147.0 */ type ShowOptions = { /** * Title for the bookmark tile */ title?: string; /** * Subtitle for the bookmark tile */ subtitle?: string; /** * Info text for the bookmark tile */ info?: string; /** * Icon for the bookmark tile */ icon?: string; /** * Keywords for the bookmark */ keywords?: string; /** * navigation target for the bookmark It is best practice to provide the target in the form of a semantic * object and action, e.g. "#SalesOrder-display" However for external target it is also supported to provide * a URL, e.g. "https://www.sap.com" */ target?: string; /** * Service URL for dynamic tiles */ serviceUrl?: string; /** * Number unit for dynamic tiles */ numberUnit?: string; }; } namespace footerbar { /** * Describes the settings that can be provided to the AddBookmarkButton constructor. * * @deprecated As of version 1.136. Use {@link sap.ushell.ui.BookmarkDialog} instead. */ interface $AddBookmarkButtonSettings extends sap.m.$ButtonSettings { /** * A callback function that is called before the save-as-tile dialog is opened. */ beforePressHandler?: | Function | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * A callback function that is called after the save-as-tile dialog is closed. */ afterPressHandler?: | Function | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Title to be displayed on the tile. */ title?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Subtitle to be displayed below the tile title. */ subtitle?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Text to be displayed at the bottom of the tile. */ info?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Icon to be displayed in the Tile. */ tileIcon?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * For dynamic tile, the unit to be displayed below the number, for example, USD. */ numberUnit?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * The keywords based on which the future tile should be indexed and filtered. */ keywords?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * The target intent or URL of the bookmark. If the target app runs in the current shell, the URL has to * be a valid intent, i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. See also {@link sap.ushell.services.URLParsing#getHash}. */ customUrl?: | any | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * URL of an OData service from which data for a dynamic tile should be read. */ serviceUrl?: | any | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Data source of the OData service. See same parameter of {@link sap.ushell.services.Bookmark#addBookmark } * for details */ dataSource?: | any | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Number of seconds after which dynamic content is read from the data source and the display is refreshed. */ serviceRefreshInterval?: | string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Whether to display the control for group selection in the save-as-tile dialog in launchpad homepage mode. */ showGroupSelection?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Whether to display the control for page selection in the save-bookmark dialog in launchpad spaces mode. */ showPageSelection?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * An object containing properties with information about the app, e.g. serviceUrl, numberUnit, ... . * * @deprecated As of version 1.31. Use dedicated properties like afterPressHandler, beforePresshandler, * customUrl, ... of the AddBookmarkButton instead. */ appData?: | object | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; } /** * Enables users to save bookmark tiles in the Fiori launchpad. Clicking the button opens a dialog box for * saving the app state, so that the app can be launched directly in that state from the launchpad. * * @deprecated As of version 1.136. Use {@link sap.ushell.ui.BookmarkDialog} instead. */ class AddBookmarkButton extends sap.m.Button { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * Initial settings for the new control */ mSettings?: sap.ushell.ui.footerbar.$AddBookmarkButtonSettings ); /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * ID for the new control, generated automatically if no id is given */ sId?: string, /** * Initial settings for the new control */ mSettings?: sap.ushell.ui.footerbar.$AddBookmarkButtonSettings ); /** * Creates a new subclass of class sap.ushell.ui.footerbar.AddBookmarkButton with name `sClassName` and * enriches it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.m.Button.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.ui.footerbar.AddBookmarkButton >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.footerbar.AddBookmarkButton. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Gets current value of property {@link #getAfterPressHandler afterPressHandler}. * * A callback function that is called after the save-as-tile dialog is closed. * * * @returns Value of property `afterPressHandler` */ getAfterPressHandler(): Function; /** * Gets current value of property {@link #getAppData appData}. * * An object containing properties with information about the app, e.g. serviceUrl, numberUnit, ... . * * @deprecated As of version 1.31. Use dedicated properties like afterPressHandler, beforePresshandler, * customUrl, ... of the AddBookmarkButton instead. * * @returns Value of property `appData` */ getAppData(): object; /** * Gets current value of property {@link #getBeforePressHandler beforePressHandler}. * * A callback function that is called before the save-as-tile dialog is opened. * * * @returns Value of property `beforePressHandler` */ getBeforePressHandler(): Function; /** * Gets current value of property {@link #getCustomUrl customUrl}. * * The target intent or URL of the bookmark. If the target app runs in the current shell, the URL has to * be a valid intent, i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. See also {@link sap.ushell.services.URLParsing#getHash}. * * * @returns Value of property `customUrl` */ getCustomUrl(): any; /** * Gets current value of property {@link #getDataSource dataSource}. * * Data source of the OData service. See same parameter of {@link sap.ushell.services.Bookmark#addBookmark } * for details * * * @returns Value of property `dataSource` */ getDataSource(): any; /** * Gets current value of property {@link #getInfo info}. * * Text to be displayed at the bottom of the tile. * * * @returns Value of property `info` */ getInfo(): string; /** * Gets current value of property {@link #getKeywords keywords}. * * The keywords based on which the future tile should be indexed and filtered. * * * @returns Value of property `keywords` */ getKeywords(): string; /** * Gets current value of property {@link #getNumberUnit numberUnit}. * * For dynamic tile, the unit to be displayed below the number, for example, USD. * * * @returns Value of property `numberUnit` */ getNumberUnit(): string; /** * Gets current value of property {@link #getServiceRefreshInterval serviceRefreshInterval}. * * Number of seconds after which dynamic content is read from the data source and the display is refreshed. * * * @returns Value of property `serviceRefreshInterval` */ getServiceRefreshInterval(): string; /** * Gets current value of property {@link #getServiceUrl serviceUrl}. * * URL of an OData service from which data for a dynamic tile should be read. * * * @returns Value of property `serviceUrl` */ getServiceUrl(): any; /** * Gets current value of property {@link #getShowGroupSelection showGroupSelection}. * * Whether to display the control for group selection in the save-as-tile dialog in launchpad homepage mode. * * Default value is `true`. * * * @returns Value of property `showGroupSelection` */ getShowGroupSelection(): boolean; /** * Gets current value of property {@link #getShowPageSelection showPageSelection}. * * Whether to display the control for page selection in the save-bookmark dialog in launchpad spaces mode. * * Default value is `true`. * * * @returns Value of property `showPageSelection` */ getShowPageSelection(): boolean; /** * Gets current value of property {@link #getSubtitle subtitle}. * * Subtitle to be displayed below the tile title. * * * @returns Value of property `subtitle` */ getSubtitle(): string; /** * Gets current value of property {@link #getTileIcon tileIcon}. * * Icon to be displayed in the Tile. * * * @returns Value of property `tileIcon` */ getTileIcon(): string; /** * Gets current value of property {@link #getTitle title}. * * Title to be displayed on the tile. * * * @returns Value of property `title` */ getTitle(): string; /** * Sets a new value for property {@link #getAfterPressHandler afterPressHandler}. * * A callback function that is called after the save-as-tile dialog is closed. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setAfterPressHandler( /** * New value for property `afterPressHandler` */ fnAfterPressHandler?: Function ): this; /** * Sets a new value for property {@link #getBeforePressHandler beforePressHandler}. * * A callback function that is called before the save-as-tile dialog is opened. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setBeforePressHandler( /** * New value for property `beforePressHandler` */ fnBeforePressHandler?: Function ): this; /** * Sets a new value for property {@link #getCustomUrl customUrl}. * * The target intent or URL of the bookmark. If the target app runs in the current shell, the URL has to * be a valid intent, i.e. in the format `"#SO-Action?P1=a&P2=x&/route?RPV=1"`. See also {@link sap.ushell.services.URLParsing#getHash}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setCustomUrl( /** * New value for property `customUrl` */ oCustomUrl?: any ): this; /** * Sets a new value for property {@link #getDataSource dataSource}. * * Data source of the OData service. See same parameter of {@link sap.ushell.services.Bookmark#addBookmark } * for details * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setDataSource( /** * New value for property `dataSource` */ oDataSource?: any ): this; /** * Sets a new value for property {@link #getInfo info}. * * Text to be displayed at the bottom of the tile. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setInfo( /** * New value for property `info` */ sInfo?: string ): this; /** * Sets a new value for property {@link #getKeywords keywords}. * * The keywords based on which the future tile should be indexed and filtered. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setKeywords( /** * New value for property `keywords` */ sKeywords?: string ): this; /** * Sets a new value for property {@link #getNumberUnit numberUnit}. * * For dynamic tile, the unit to be displayed below the number, for example, USD. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setNumberUnit( /** * New value for property `numberUnit` */ sNumberUnit?: string ): this; /** * Sets a new value for property {@link #getServiceRefreshInterval serviceRefreshInterval}. * * Number of seconds after which dynamic content is read from the data source and the display is refreshed. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setServiceRefreshInterval( /** * New value for property `serviceRefreshInterval` */ sServiceRefreshInterval?: string ): this; /** * Sets a new value for property {@link #getServiceUrl serviceUrl}. * * URL of an OData service from which data for a dynamic tile should be read. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setServiceUrl( /** * New value for property `serviceUrl` */ oServiceUrl?: any ): this; /** * Sets a new value for property {@link #getShowGroupSelection showGroupSelection}. * * Whether to display the control for group selection in the save-as-tile dialog in launchpad homepage mode. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `true`. * * * @returns Reference to `this` in order to allow method chaining */ setShowGroupSelection( /** * New value for property `showGroupSelection` */ bShowGroupSelection?: boolean ): this; /** * Sets a new value for property {@link #getShowPageSelection showPageSelection}. * * Whether to display the control for page selection in the save-bookmark dialog in launchpad spaces mode. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `true`. * * * @returns Reference to `this` in order to allow method chaining */ setShowPageSelection( /** * New value for property `showPageSelection` */ bShowPageSelection?: boolean ): this; /** * Sets a new value for property {@link #getSubtitle subtitle}. * * Subtitle to be displayed below the tile title. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setSubtitle( /** * New value for property `subtitle` */ sSubtitle?: string ): this; /** * Sets a new value for property {@link #getTileIcon tileIcon}. * * Icon to be displayed in the Tile. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setTileIcon( /** * New value for property `tileIcon` */ sTileIcon?: string ): this; /** * Sets a new value for property {@link #getTitle title}. * * Title to be displayed on the tile. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setTitle( /** * New value for property `title` */ sTitle?: string ): this; } } namespace launchpad { /** * Describes the settings that can be provided to the ActionItem constructor. */ interface $ActionItemSettings extends sap.m.$ButtonSettings { actionType?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; press?: (oEvent: sap.ui.base.Event) => void; afterRendering?: (oEvent: sap.ui.base.Event) => void; } /** * Describes the settings that can be provided to the DashboardGroupsContainer constructor. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ interface $DashboardGroupsContainerSettings extends sap.ui.core.$ControlSettings { /** * A value for an optional accessibility label. */ accessibilityLabel?: | string | sap.ui.base.ManagedObject.PropertyBindingInfo; displayMode?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; groups?: | sap.ui.core.Control[] | sap.ui.core.Control | sap.ui.base.ManagedObject.AggregationBindingInfo | `{${string}}`; afterRendering?: (oEvent: sap.ui.base.Event) => void; } /** * Describes the settings that can be provided to the LinkTileWrapper constructor. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ interface $LinkTileWrapperSettings extends sap.ui.core.$ControlSettings { uuid?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; tileCatalogId?: | string | sap.ui.base.ManagedObject.PropertyBindingInfo; tileCatalogIdStable?: | string | sap.ui.base.ManagedObject.PropertyBindingInfo; target?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; visible?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; debugInfo?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; animationRendered?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; isLocked?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; tileActionModeActive?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; ieHtml5DnD?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; tileViews?: | sap.ui.core.Control[] | sap.ui.core.Control | sap.ui.base.ManagedObject.AggregationBindingInfo | `{${string}}`; footItems?: | sap.ui.core.Control[] | sap.ui.core.Control | sap.ui.base.ManagedObject.AggregationBindingInfo | `{${string}}`; press?: (oEvent: sap.ui.base.Event) => void; coverDivPress?: (oEvent: sap.ui.base.Event) => void; afterRendering?: (oEvent: sap.ui.base.Event) => void; showActions?: (oEvent: sap.ui.base.Event) => void; } /** * Describes the settings that can be provided to the TileState constructor. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ interface $TileStateSettings extends sap.ui.core.$ControlSettings { state?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; press?: (oEvent: sap.ui.base.Event) => void; } /** * Parameters of the ActionItem#afterRendering event. */ interface ActionItem$AfterRenderingEventParameters {} /** * Parameters of the ActionItem#press event. */ interface ActionItem$PressEventParameters extends sap.m.Button$PressEventParameters {} /** * Parameters of the DashboardGroupsContainer#afterRendering event. */ interface DashboardGroupsContainer$AfterRenderingEventParameters {} /** * Parameters of the LinkTileWrapper#afterRendering event. */ interface LinkTileWrapper$AfterRenderingEventParameters {} /** * Parameters of the LinkTileWrapper#coverDivPress event. */ interface LinkTileWrapper$CoverDivPressEventParameters {} /** * Parameters of the LinkTileWrapper#press event. */ interface LinkTileWrapper$PressEventParameters {} /** * Parameters of the LinkTileWrapper#showActions event. */ interface LinkTileWrapper$ShowActionsEventParameters {} /** * Parameters of the TileState#press event. */ interface TileState$PressEventParameters {} /** * Constructor for a new ui/launchpad/ActionItem. */ class ActionItem extends sap.m.Button { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$ActionItemSettings ); /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$ActionItemSettings ); /** * Creates a new subclass of class sap.ushell.ui.launchpad.ActionItem with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.m.Button.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.launchpad.ActionItem. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.ActionItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.ActionItem` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.ActionItem` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.ActionItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.ActionItem` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.ActionItem` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.ActionItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.ActionItem` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.ActionItem` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.ActionItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.ActionItem` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.ActionItem` * itself */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.ActionItem`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachAfterRendering( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:press press} event of this `sap.ushell.ui.launchpad.ActionItem`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPress( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:afterRendering afterRendering} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireAfterRendering( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Fires event {@link #event:press press} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePress( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getActionType actionType}. * * Default value is `"standard"`. * * * @returns Value of property `actionType` */ getActionType(): string; /** * Sets a new value for property {@link #getActionType actionType}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `"standard"`. * * * @returns Reference to `this` in order to allow method chaining */ setActionType( /** * New value for property `actionType` */ sActionType?: string ): this; } /** * Constructor for "sap.ushell.ui.launchpad.DashboardGroupsContainer". * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ class DashboardGroupsContainer extends sap.ui.core.Control { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * Initial settings for the new control. */ mSettings?: sap.ushell.ui.launchpad.$DashboardGroupsContainerSettings ); /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * ID for the new control, generated automatically if no id is given. */ sId?: string, /** * Initial settings for the new control. */ mSettings?: sap.ushell.ui.launchpad.$DashboardGroupsContainerSettings ); /** * Creates a new subclass of class sap.ushell.ui.launchpad.DashboardGroupsContainer with name `sClassName` * and enriches it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.Control.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.ui.launchpad.DashboardGroupsContainer >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.launchpad.DashboardGroupsContainer. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Adds some group to the aggregation {@link #getGroups groups}. * * * @returns Reference to `this` in order to allow method chaining */ addGroup( /** * The group to add; if empty, nothing is inserted */ oGroup: sap.ui.core.Control ): this; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.DashboardGroupsContainer`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.DashboardGroupsContainer` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.DashboardGroupsContainer` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.DashboardGroupsContainer`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.DashboardGroupsContainer` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.DashboardGroupsContainer` * itself */ oListener?: object ): this; /** * Destroys all the groups in the aggregation {@link #getGroups groups}. * * * @returns Reference to `this` in order to allow method chaining */ destroyGroups(): this; /** * Detaches event handler `fnFunction` from the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.DashboardGroupsContainer`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachAfterRendering( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:afterRendering afterRendering} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireAfterRendering( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getAccessibilityLabel accessibilityLabel}. * * A value for an optional accessibility label. * * * @returns Value of property `accessibilityLabel` */ getAccessibilityLabel(): string; /** * Gets current value of property {@link #getDisplayMode displayMode}. * * * @returns Value of property `displayMode` */ getDisplayMode(): string; /** * Gets content of aggregation {@link #getGroups groups}. */ getGroups(): sap.ui.core.Control[]; /** * Checks for the provided `sap.ui.core.Control` in the aggregation {@link #getGroups groups}. and returns * its index if found or -1 otherwise. * * * @returns The index of the provided control in the aggregation if found, or -1 otherwise */ indexOfGroup( /** * The group whose index is looked for */ oGroup: sap.ui.core.Control ): int; /** * Inserts a group into the aggregation {@link #getGroups groups}. * * * @returns Reference to `this` in order to allow method chaining */ insertGroup( /** * The group to insert; if empty, nothing is inserted */ oGroup: sap.ui.core.Control, /** * The `0`-based index the group should be inserted at; for a negative value of `iIndex`, the group is inserted * at position 0; for a value greater than the current size of the aggregation, the group is inserted at * the last position */ iIndex: int ): this; /** * Removes all the controls from the aggregation {@link #getGroups groups}. * * Additionally, it unregisters them from the hosting UIArea. * * * @returns An array of the removed elements (might be empty) */ removeAllGroups(): sap.ui.core.Control[]; /** * Removes a group from the aggregation {@link #getGroups groups}. * * * @returns The removed group or `null` */ removeGroup( /** * The group to remove or its index or id */ vGroup: int | string | sap.ui.core.Control ): sap.ui.core.Control | null; /** * Sets a new value for property {@link #getAccessibilityLabel accessibilityLabel}. * * A value for an optional accessibility label. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setAccessibilityLabel( /** * New value for property `accessibilityLabel` */ sAccessibilityLabel?: string ): this; /** * Sets a new value for property {@link #getDisplayMode displayMode}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setDisplayMode( /** * New value for property `displayMode` */ sDisplayMode?: string ): this; } /** * Constructor for a new ui/launchpad/LinkTileWrapper. A link tile to be displayed in the tile container. * This control acts as container for specialized tile implementations. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ class LinkTileWrapper extends sap.ui.core.Control { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$LinkTileWrapperSettings ); /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$LinkTileWrapperSettings ); /** * Creates a new subclass of class sap.ushell.ui.launchpad.LinkTileWrapper with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.Control.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo< T, sap.ushell.ui.launchpad.LinkTileWrapper >, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.launchpad.LinkTileWrapper. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Adds some footItem to the aggregation {@link #getFootItems footItems}. * * * @returns Reference to `this` in order to allow method chaining */ addFootItem( /** * The footItem to add; if empty, nothing is inserted */ oFootItem: sap.ui.core.Control ): this; /** * Adds some tileView to the aggregation {@link #getTileViews tileViews}. * * * @returns Reference to `this` in order to allow method chaining */ addTileView( /** * The tileView to add; if empty, nothing is inserted */ oTileView: sap.ui.core.Control ): this; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachAfterRendering( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:coverDivPress coverDivPress} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachCoverDivPress( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:coverDivPress coverDivPress} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachCoverDivPress( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:showActions showActions} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachShowActions( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:showActions showActions} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.LinkTileWrapper` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachShowActions( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.LinkTileWrapper` * itself */ oListener?: object ): this; /** * Destroys all the footItems in the aggregation {@link #getFootItems footItems}. * * * @returns Reference to `this` in order to allow method chaining */ destroyFootItems(): this; /** * Destroys all the tileViews in the aggregation {@link #getTileViews tileViews}. * * * @returns Reference to `this` in order to allow method chaining */ destroyTileViews(): this; /** * Detaches event handler `fnFunction` from the {@link #event:afterRendering afterRendering} event of this * `sap.ushell.ui.launchpad.LinkTileWrapper`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachAfterRendering( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:coverDivPress coverDivPress} event of this * `sap.ushell.ui.launchpad.LinkTileWrapper`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachCoverDivPress( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:press press} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPress( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:showActions showActions} event of this `sap.ushell.ui.launchpad.LinkTileWrapper`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachShowActions( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:afterRendering afterRendering} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireAfterRendering( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Fires event {@link #event:coverDivPress coverDivPress} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireCoverDivPress( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Fires event {@link #event:press press} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePress( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Fires event {@link #event:showActions showActions} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireShowActions( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getAnimationRendered animationRendered}. * * Default value is `false`. * * * @returns Value of property `animationRendered` */ getAnimationRendered(): boolean; /** * Gets current value of property {@link #getDebugInfo debugInfo}. * * * @returns Value of property `debugInfo` */ getDebugInfo(): string; /** * Gets content of aggregation {@link #getFootItems footItems}. */ getFootItems(): sap.ui.core.Control[]; /** * Gets current value of property {@link #getIeHtml5DnD ieHtml5DnD}. * * Default value is `false`. * * * @returns Value of property `ieHtml5DnD` */ getIeHtml5DnD(): boolean; /** * Gets current value of property {@link #getIsLocked isLocked}. * * Default value is `false`. * * * @returns Value of property `isLocked` */ getIsLocked(): boolean; /** * Gets current value of property {@link #getTarget target}. * * * @returns Value of property `target` */ getTarget(): string; /** * Gets current value of property {@link #getTileActionModeActive tileActionModeActive}. * * Default value is `false`. * * * @returns Value of property `tileActionModeActive` */ getTileActionModeActive(): boolean; /** * Gets current value of property {@link #getTileCatalogId tileCatalogId}. * * * @returns Value of property `tileCatalogId` */ getTileCatalogId(): string; /** * Gets current value of property {@link #getTileCatalogIdStable tileCatalogIdStable}. * * * @returns Value of property `tileCatalogIdStable` */ getTileCatalogIdStable(): string; /** * Gets content of aggregation {@link #getTileViews tileViews}. */ getTileViews(): sap.ui.core.Control[]; /** * Gets current value of property {@link #getUuid uuid}. * * * @returns Value of property `uuid` */ getUuid(): string; /** * Gets current value of property {@link #getVisible visible}. * * Default value is `true`. * * * @returns Value of property `visible` */ getVisible(): boolean; /** * Checks for the provided `sap.ui.core.Control` in the aggregation {@link #getFootItems footItems}. and * returns its index if found or -1 otherwise. * * * @returns The index of the provided control in the aggregation if found, or -1 otherwise */ indexOfFootItem( /** * The footItem whose index is looked for */ oFootItem: sap.ui.core.Control ): int; /** * Checks for the provided `sap.ui.core.Control` in the aggregation {@link #getTileViews tileViews}. and * returns its index if found or -1 otherwise. * * * @returns The index of the provided control in the aggregation if found, or -1 otherwise */ indexOfTileView( /** * The tileView whose index is looked for */ oTileView: sap.ui.core.Control ): int; /** * Inserts a footItem into the aggregation {@link #getFootItems footItems}. * * * @returns Reference to `this` in order to allow method chaining */ insertFootItem( /** * The footItem to insert; if empty, nothing is inserted */ oFootItem: sap.ui.core.Control, /** * The `0`-based index the footItem should be inserted at; for a negative value of `iIndex`, the footItem * is inserted at position 0; for a value greater than the current size of the aggregation, the footItem * is inserted at the last position */ iIndex: int ): this; /** * Inserts a tileView into the aggregation {@link #getTileViews tileViews}. * * * @returns Reference to `this` in order to allow method chaining */ insertTileView( /** * The tileView to insert; if empty, nothing is inserted */ oTileView: sap.ui.core.Control, /** * The `0`-based index the tileView should be inserted at; for a negative value of `iIndex`, the tileView * is inserted at position 0; for a value greater than the current size of the aggregation, the tileView * is inserted at the last position */ iIndex: int ): this; /** * Removes all the controls from the aggregation {@link #getFootItems footItems}. * * Additionally, it unregisters them from the hosting UIArea. * * * @returns An array of the removed elements (might be empty) */ removeAllFootItems(): sap.ui.core.Control[]; /** * Removes all the controls from the aggregation {@link #getTileViews tileViews}. * * Additionally, it unregisters them from the hosting UIArea. * * * @returns An array of the removed elements (might be empty) */ removeAllTileViews(): sap.ui.core.Control[]; /** * Removes a footItem from the aggregation {@link #getFootItems footItems}. * * * @returns The removed footItem or `null` */ removeFootItem( /** * The footItem to remove or its index or id */ vFootItem: int | string | sap.ui.core.Control ): sap.ui.core.Control | null; /** * Removes a tileView from the aggregation {@link #getTileViews tileViews}. * * * @returns The removed tileView or `null` */ removeTileView( /** * The tileView to remove or its index or id */ vTileView: int | string | sap.ui.core.Control ): sap.ui.core.Control | null; /** * Sets a new value for property {@link #getAnimationRendered animationRendered}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setAnimationRendered( /** * New value for property `animationRendered` */ bAnimationRendered?: boolean ): this; /** * Sets a new value for property {@link #getDebugInfo debugInfo}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setDebugInfo( /** * New value for property `debugInfo` */ sDebugInfo?: string ): this; /** * Sets a new value for property {@link #getIeHtml5DnD ieHtml5DnD}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setIeHtml5DnD( /** * New value for property `ieHtml5DnD` */ bIeHtml5DnD?: boolean ): this; /** * Sets a new value for property {@link #getIsLocked isLocked}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setIsLocked( /** * New value for property `isLocked` */ bIsLocked?: boolean ): this; /** * Sets a new value for property {@link #getTarget target}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setTarget( /** * New value for property `target` */ sTarget?: string ): this; /** * Sets a new value for property {@link #getTileActionModeActive tileActionModeActive}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setTileActionModeActive( /** * New value for property `tileActionModeActive` */ bTileActionModeActive?: boolean ): this; /** * Sets a new value for property {@link #getTileCatalogId tileCatalogId}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setTileCatalogId( /** * New value for property `tileCatalogId` */ sTileCatalogId?: string ): this; /** * Sets a new value for property {@link #getTileCatalogIdStable tileCatalogIdStable}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setTileCatalogIdStable( /** * New value for property `tileCatalogIdStable` */ sTileCatalogIdStable?: string ): this; /** * Sets a new value for property {@link #getUuid uuid}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setUuid( /** * New value for property `uuid` */ sUuid?: string ): this; /** * Sets a new value for property {@link #getVisible visible}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `true`. * * * @returns Reference to `this` in order to allow method chaining */ setVisible( /** * New value for property `visible` */ bVisible?: boolean ): this; } /** * Constructor for a new ui/launchpad/TileState. The tile state control that displays loading indicator, * while tile view is loading and failed status in case tile view is not available. * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ class TileState extends sap.ui.core.Control { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$TileStateSettings ); /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.ui.launchpad.$TileStateSettings ); /** * Creates a new subclass of class sap.ushell.ui.launchpad.TileState with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.Control.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.launchpad.TileState. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.TileState`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.TileState` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.TileState` itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.launchpad.TileState`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.launchpad.TileState` itself. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.launchpad.TileState` itself */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:press press} event of this `sap.ushell.ui.launchpad.TileState`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPress( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:press press} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePress( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getState state}. * * Default value is `"Loaded"`. * * * @returns Value of property `state` */ getState(): string; /** * Sets a new value for property {@link #getState state}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `"Loaded"`. * * * @returns Reference to `this` in order to allow method chaining */ setState( /** * New value for property `state` */ sState?: string ): this; } /** * Denotes display states of the viewport * * This enum is part of the 'sap/ushell/library' module export and must be accessed by the property 'ui.launchpad.ViewPortState'. * * @deprecated As of version 1.120. The ViewPortState is related to Fiori2 and not used anymore. */ enum ViewPortState { /** * Indicates state, when only center content is in the viewport. */ Center = "Center", /** * Indicates state, when the center content as well as a part from the left content is in the viewport. */ CenterLeft = "CenterLeft", /** * Indicates state, when the center content as well as a part from the right content is in the viewport. */ CenterRight = "CenterRight", /** * Indicates state, when only left content is in the viewport. */ Left = "Left", /** * Indicates state, when the left content as well as a part from the center content is in the viewport. */ LeftCenter = "LeftCenter", /** * Indicates state, when only right content is in the viewport. */ Right = "Right", /** * Indicates state, when the right content as well as a part from the center content is in the viewport. */ RightCenter = "RightCenter", } /** * Event object of the ActionItem#afterRendering event. */ type ActionItem$AfterRenderingEvent = sap.ui.base.Event< ActionItem$AfterRenderingEventParameters, ActionItem >; /** * Event object of the ActionItem#press event. */ type ActionItem$PressEvent = sap.ui.base.Event< ActionItem$PressEventParameters, ActionItem >; /** * Event object of the DashboardGroupsContainer#afterRendering event. */ type DashboardGroupsContainer$AfterRenderingEvent = sap.ui.base.Event< DashboardGroupsContainer$AfterRenderingEventParameters, DashboardGroupsContainer >; /** * Event object of the LinkTileWrapper#afterRendering event. */ type LinkTileWrapper$AfterRenderingEvent = sap.ui.base.Event< LinkTileWrapper$AfterRenderingEventParameters, LinkTileWrapper >; /** * Event object of the LinkTileWrapper#coverDivPress event. */ type LinkTileWrapper$CoverDivPressEvent = sap.ui.base.Event< LinkTileWrapper$CoverDivPressEventParameters, LinkTileWrapper >; /** * Event object of the LinkTileWrapper#press event. */ type LinkTileWrapper$PressEvent = sap.ui.base.Event< LinkTileWrapper$PressEventParameters, LinkTileWrapper >; /** * Event object of the LinkTileWrapper#showActions event. */ type LinkTileWrapper$ShowActionsEvent = sap.ui.base.Event< LinkTileWrapper$ShowActionsEventParameters, LinkTileWrapper >; /** * Event object of the TileState#press event. */ type TileState$PressEvent = sap.ui.base.Event< TileState$PressEventParameters, TileState >; } namespace shell { namespace ShellHeadItem { type Properties = { /** * The icon of the item, either defined in the sap.ui.core.IconPool or an URI to a custom image. */ icon: sap.ui.core.URI; /** * The text of the item. It is either visible as tooltip or as label when the item is rendered as part of * an overflow button in a popover. */ text?: string; /** * Target URI of the item. */ target?: sap.ui.core.URI; /** * The aria-label attribute of the item. */ ariaLabel?: string; /** * Specifies whether the aria-hidden attribute is set to true. */ ariaHidden?: boolean; /** * Specifies the value of the aria-haspopup attribute */ ariaHaspopup?: sap.ui.core.aria.HasPopup; /** * The press handler function. */ press?: Function; /** * The tooltip used for the ShellHEadItem. */ tooltip?: string; }; } /** * Describes the settings that can be provided to the ToolAreaItem constructor. */ interface $ToolAreaItemSettings extends sap.ui.core.$ControlSettings { /** * Icon that is displayed in the item. */ icon?: | sap.ui.core.URI | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Defines whether to mark the control as selected */ selected?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; text?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Text which will be read by screenreader. * * @since 1.30 */ ariaLabel?: string | sap.ui.base.ManagedObject.PropertyBindingInfo; /** * Defines whether to display the control */ visible?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Defines whether the control will have an expand functionality containing sub-items or actions. If the * property is set to true, a small "expand" icon appears in the lower corner of the control. The "expand" * event is fired when the "expand" icon is pressed. */ expandable?: | boolean | sap.ui.base.ManagedObject.PropertyBindingInfo | `{${string}}`; /** * Event is fired when the user presses the item. */ press?: (oEvent: sap.ui.base.Event) => void; /** * Event is fired when the user presses the Expand icon. */ expand?: (oEvent: sap.ui.base.Event) => void; } /** * Parameters of the ToolAreaItem#expand event. */ interface ToolAreaItem$ExpandEventParameters {} /** * Parameters of the ToolAreaItem#press event. */ interface ToolAreaItem$PressEventParameters {} /** * A control to be placed in the tool area * * @since 1.30.5 */ class ToolAreaItem extends sap.ui.core.Control { /** * Constructor for a new ToolAreaItem. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * initial settings for the new control */ mSettings?: sap.ushell.ui.shell.$ToolAreaItemSettings ); /** * Constructor for a new ToolAreaItem. * * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: sap.ushell.ui.shell.$ToolAreaItemSettings ); /** * Creates a new subclass of class sap.ushell.ui.shell.ToolAreaItem with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.Control.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.shell.ToolAreaItem. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.core.ElementMetadata; /** * Attaches event handler `fnFunction` to the {@link #event:expand expand} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.shell.ToolAreaItem` itself. * * Event is fired when the user presses the Expand icon. * * * @returns Reference to `this` in order to allow method chaining */ attachExpand( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.shell.ToolAreaItem` itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:expand expand} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.shell.ToolAreaItem` itself. * * Event is fired when the user presses the Expand icon. * * * @returns Reference to `this` in order to allow method chaining */ attachExpand( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.shell.ToolAreaItem` itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.shell.ToolAreaItem` itself. * * Event is fired when the user presses the item. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * An application-specific payload object that will be passed to the event handler along with the event * object when firing the event */ oData: object, /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.shell.ToolAreaItem` itself */ oListener?: object ): this; /** * Attaches event handler `fnFunction` to the {@link #event:press press} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * When called, the context of the event handler (its `this`) will be bound to `oListener` if specified, * otherwise it will be bound to this `sap.ushell.ui.shell.ToolAreaItem` itself. * * Event is fired when the user presses the item. * * * @returns Reference to `this` in order to allow method chaining */ attachPress( /** * The function to be called when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object to call the event handler with. Defaults to this `sap.ushell.ui.shell.ToolAreaItem` itself */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:expand expand} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachExpand( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Detaches event handler `fnFunction` from the {@link #event:press press} event of this `sap.ushell.ui.shell.ToolAreaItem`. * * The passed function and listener object must match the ones used for event registration. * * * @returns Reference to `this` in order to allow method chaining */ detachPress( /** * The function to be called, when the event occurs */ fnFunction: (p1: sap.ui.base.Event) => void, /** * Context object on which the given function had to be called */ oListener?: object ): this; /** * Fires event {@link #event:expand expand} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ fireExpand( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Fires event {@link #event:press press} to attached listeners. * * @ui5-protected Do not call from applications (only from related classes in the framework) * * @returns Reference to `this` in order to allow method chaining */ firePress( /** * Parameters to pass along with the event */ mParameters?: object ): this; /** * Gets current value of property {@link #getAriaLabel ariaLabel}. * * Text which will be read by screenreader. * * @since 1.30 * * @returns Value of property `ariaLabel` */ getAriaLabel(): string; /** * Gets current value of property {@link #getExpandable expandable}. * * Defines whether the control will have an expand functionality containing sub-items or actions. If the * property is set to true, a small "expand" icon appears in the lower corner of the control. The "expand" * event is fired when the "expand" icon is pressed. * * Default value is `false`. * * * @returns Value of property `expandable` */ getExpandable(): boolean; /** * Gets current value of property {@link #getIcon icon}. * * Icon that is displayed in the item. * * * @returns Value of property `icon` */ getIcon(): sap.ui.core.URI; /** * Gets current value of property {@link #getSelected selected}. * * Defines whether to mark the control as selected * * Default value is `false`. * * * @returns Value of property `selected` */ getSelected(): boolean; /** * Gets current value of property {@link #getText text}. * * * @returns Value of property `text` */ getText(): string; /** * Gets current value of property {@link #getVisible visible}. * * Defines whether to display the control * * Default value is `true`. * * * @returns Value of property `visible` */ getVisible(): boolean; /** * Sets a new value for property {@link #getAriaLabel ariaLabel}. * * Text which will be read by screenreader. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * @since 1.30 * * @returns Reference to `this` in order to allow method chaining */ setAriaLabel( /** * New value for property `ariaLabel` */ sAriaLabel?: string ): this; /** * Sets a new value for property {@link #getExpandable expandable}. * * Defines whether the control will have an expand functionality containing sub-items or actions. If the * property is set to true, a small "expand" icon appears in the lower corner of the control. The "expand" * event is fired when the "expand" icon is pressed. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setExpandable( /** * New value for property `expandable` */ bExpandable?: boolean ): this; /** * Sets a new value for property {@link #getIcon icon}. * * Icon that is displayed in the item. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setIcon( /** * New value for property `icon` */ sIcon?: sap.ui.core.URI ): this; /** * Sets a new value for property {@link #getSelected selected}. * * Defines whether to mark the control as selected * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `false`. * * * @returns Reference to `this` in order to allow method chaining */ setSelected( /** * New value for property `selected` */ bSelected?: boolean ): this; /** * Sets a new value for property {@link #getText text}. * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * * @returns Reference to `this` in order to allow method chaining */ setText( /** * New value for property `text` */ sText?: string ): this; /** * Sets a new value for property {@link #getVisible visible}. * * Defines whether to display the control * * When called with a value of `null` or `undefined`, the default value of the property will be restored. * * Default value is `true`. * * * @returns Reference to `this` in order to allow method chaining */ setVisible( /** * New value for property `visible` */ bVisible?: boolean ): this; } /** * Event object of the ToolAreaItem#expand event. */ type ToolAreaItem$ExpandEvent = sap.ui.base.Event< ToolAreaItem$ExpandEventParameters, ToolAreaItem >; /** * Event object of the ToolAreaItem#press event. */ type ToolAreaItem$PressEvent = sap.ui.base.Event< ToolAreaItem$PressEventParameters, ToolAreaItem >; } namespace tile { /** * Constructor for a new ui/tile/StaticTile. An applauncher tile for simple, static apps, displaying title, * subtitle, an icon and additional information * * @since 1.15.0 * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ class StaticTile extends /* was: sap.ushell.ui.tile.TileBase */ Object { /** * Accepts an object literal `mSettings` that defines initial property values, aggregated and associated * objects as well as event handlers. See {@link sap.ui.base.ManagedObject#constructor} for a general description * of the syntax of the settings object. * * This class does not have its own settings, but all settings applicable to the base type {@link sap.ushell.ui.tile.TileBase#constructor sap.ushell.ui.tile.TileBase } * can be used. */ constructor( /** * id for the new control, generated automatically if no id is given */ sId?: string, /** * initial settings for the new control */ mSettings?: object ); /** * Creates a new subclass of class sap.ushell.ui.tile.StaticTile with name `sClassName` and enriches it * with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ushell.ui.tile.TileBase.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui.tile.StaticTile. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.base.Metadata; } } /** * BookmarkDialog provides a dialog-only API for the bookmark functionality. * * @since 1.147.0 */ interface BookmarkDialog { /** * Opens the bookmark dialog. * * @since 1.147.0 * * @returns A promise resolving to the opened dialog */ show( /** * Options for the bookmark dialog */ oShowOptions: sap.ushell.ui.BookmarkDialog.ShowOptions ): Promise; } } namespace ui5service { namespace ShellUIService { /** * Defines essential information about an app. * * Example: * ```javascript * * { * title: "App 1", * icon: "sap-icon://folder", * subtitle: "go to app 1", * intent: "#Action-toapp1" * } * ``` * * * @since 1.120.0 */ type AppInfo = { /** * The title of the app. */ title: string; /** * The icon src representing the app. */ icon: string; /** * An optional subtitle of the app. */ subtitle?: string; /** * The navigation intent of the app. */ intent: string; }; } /** * The ShellUIService for the unified shell can be used to modify the app title or the app hierarchy. * * Usage: * * Allows apps to interact with the SAP Fiori launchpad UI. A defined service is injected in the app components * by the FLP before the corresponding apps start. To consume the service, app components should declare * it in their "manifest.json" as follows: * * * ```javascript * * { * ... * "sap.ui5": { * "services" : { * "ShellUIService": { * "factoryName": "sap.ushell.ui5service.ShellUIService" * } * } * } * ... * } * ``` * * * The service can then be retrieved and consumed by the app component as in the following example: * * * ```javascript * * // Component.js (the app component) * ... * this.getService("ShellUIService") // promise is returned * .then(function (oService) { * oService.setTitle("Application Title"); * }) * .catch(function (oError) { * Log.error("Cannot get ShellUIService", oError, "my.app.Component"); * }); * ... * ``` * * * The ShellUIService can also be used within nested components. Every component receives a separate instance * of the service. All service instances are independent and do not share any state. With this they can * also overwrite each other's settings. Nested components have to define the service in their own manifest * as well. * * **Note:** The ShellUIService is intended for use by the active app only. Calls from other types of components * (e.g. plugins) or inactive components (e.g. from a hidden app) are ignored. * * Auto Title and Hierarchy: * * The ShellUIService can work together with the routing defined in a UI5 app to set title and hierarchy * automatically, as the navigation within the app occurs. This can be achieved by enabling the ShellUIService * to load instantly and configuring one or both `setTitle` and `setHierarchy` options to `auto` in the * app manifest. Using this mechanism disables the API to manually set the title or hierarchy via `setTitle` * and `setHierarchy`. * * * ```javascript * * { * "sap.ui5": { * "services" : { * "ShellUIService": { * "lazy": false, * "factoryName": "sap.ushell.ui5service.ShellUIService", * "settings": { * "setHierarchy": "auto", * "setTitle": "auto" * } * } * } * } * } * ``` * * * **Note:** Please be aware that the sapFiori2Adaptation configuration of the application may cause the * ShellUIService service to work incorrectly. We recommend to disable the sapFiori2Adaptation configuration * for the new applications if you use the ShellUIService. * * @since 1.38.0 */ class ShellUIService extends /* was: sap.ui.core.service.Service */ Object { /** * @ui5-protected Do not call from applications (only from related classes in the framework) */ protected constructor(); /** * Creates a new subclass of class sap.ushell.ui5service.ShellUIService with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.service.Service.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui5service.ShellUIService. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.base.Metadata; /** * Returns the current title shown in the header. This might differ from the title set by the via {@link #setTitle}. * * @since 1.38.0 * * @returns The current title. */ getTitle(): string; /** * Sets the application screen size to either full width or letterbox. * * This method sets the application width dynamically. This can cause flickering depending on the current * environment. As an alternative you can set the application width statically using the manifest property * `sap.ui/fullWidth`. * * @since 1.133.0 */ setApplicationFullWidth( /** * Whether the application should be displayed in full width. */ bFullWidth: boolean ): void; /** * Displays the given hierarchy in the shell header. The default app hierarchy is applied if no parameter * is given. * * @since 1.38.0 */ setHierarchy( /** * An array representing hierarchies of the currently displayed app. */ aHierarchyLevels?: sap.ushell.ui5service.ShellUIService.AppInfo[] ): void; /** * Used by apps to set related apps. This setting is propagated towards the Shell Header via corresponding * events. * * @since 1.40.0 */ setRelatedApps( /** * An array of related apps. */ aRelatedApps?: sap.ushell.ui5service.ShellUIService.AppInfo[] ): void; /** * Displays the given title in the shell header. This method should not be called - and will be without * effect - if the app calling the method is not currently displayed in the Fiori launchpad. * * The sTitle will be concatenated with the window title extension and displayed as browser tab title. If * oAdditionalInformation is set, the browser tab title will be constructed from the oAdditionalInformation * plus window title extension. sTitle is still used in the shell header. * * Examples: * ```javascript * * // Window Title Extension is: "Fiori Launchpad" * * setTitle("My App Title"); * // Shell Header title: "My App Title" * // Browser Window Title: "My App Title - Fiori Launchpad" * ``` * * * * ```javascript * * // Window Title Extension is: "Fiori Launchpad" * * setTitle("My App Title", { * headerText: "My Header Text", * additionalContext: "My Additional Context", * searchTerm: "My Search Term", * searchScope: "My Search Scope" * }); * // Search Term has precedence over headerText and additionalContext. * // Shell Header title: "My App Title" * // Browser Window Title: "My Search Term in My Search Scope - Search - Fiori Launchpad" * ``` * * * * ```javascript * * // Window Title Extension is: "Fiori Launchpad" * * setTitle("My App Title", { * headerText: "My Header Text", * additionalContext: "My Additional Context" * }); * // Shell Header title: "My App Title" * // Browser Window Title: "My Header Text - My Additional Context - Fiori Launchpad" * ``` * * * @since 1.38.0 */ setTitle( /** * The new title. The default title is set if this argument is not given. */ sTitle?: string, /** * An object of additional information to be displayed in the browser window title */ oAdditionalInformation?: { /** * Optional header text */ headerText?: string; /** * Optional additional context information */ additionalContext?: string; /** * Optional search term. If given, headerText and additionalContext will be ignored */ searchTerm?: string; /** * Optional search scope, only used if searchTerm is given */ searchScope?: string; } ): void; } /** * @deprecated As of version 1.70. Support for this service has been discontinued. */ class UserStatus extends /* was: sap.ui.core.service.Service */ Object { constructor(); /** * Creates a new subclass of class sap.ushell.ui5service.UserStatus with name `sClassName` and enriches * it with the information contained in `oClassInfo`. * * `oClassInfo` might contain the same kind of information as described in {@link sap.ui.core.service.Service.extend}. * * * @returns Created class / constructor function */ static extend>( /** * Name of the class being created */ sClassName: string, /** * Object literal with information about the class */ oClassInfo?: sap.ClassInfo, /** * Constructor function for the metadata object; if not given, it defaults to the metadata implementation * used by this class */ FNMetaImpl?: Function ): Function; /** * Returns a metadata object for class sap.ushell.ui5service.UserStatus. * * * @returns Metadata object describing this class */ static getMetadata(): sap.ui.base.Metadata; /** * Attaches an event handler fnFunction to be called upon the 'statusChanged' event. Event is fired when * the setStatus method is called. * * @since 1.46 * @deprecated As of version 1.70. Deprecated without successor. Support for this service has been discontinued. */ attachStatusChanged( /** * The function to be called when the event occurs. */ fnFunction?: Function ): void; /** * Detaches an event handler from the 'statusChanged' event. * * @since 1.46 * @deprecated As of version 1.70. Deprecated without successor. Support for this service has been discontinued. */ detachStatusChanged( /** * Event handler to be detached. */ fnFunction: Function ): void; /** * Enable the User Status service (online status) * * If the user has never agreed to share their online status, then the method will show the opt-in screen * to the user. If the user already agreed to share their online status, the setStatus method will be called * with the default online status that was set by the user. If the user already declined to share their * online status, the setStatus method will be called with a null value. * * @since 1.46 * @deprecated As of version 1.70. Deprecated without successor. Support for this service has been discontinued. */ setEnabled( /** * boolean. */ bEnable: boolean ): void; /** * Publish the user status. This method is used to publish the status to other components. * * The publication of the status by firing the 'statusChanged' event will happen when all the following * apply: 1) the User Status service is enabled 2) the status is null or exists in the list of available * statuses (sap.ushell.ui5service.UserStatus.prototype.AvailableStatus) 3) the user has agreed to share * their online status * * @since 1.46 * @deprecated As of version 1.70. Deprecated without successor. Support for this service has been discontinued. */ setStatus( /** * sap.ushell.ui5service.UserStatus.prototype.AvailableStatus */ oNewStatus: object ): void; } } /** * The Unified Shell's container. Manages renderers, services, and adapters. The container is designed to * be a singleton, therefore instead of creating an instance, access the central one via * ```javascript * * sap.ui.require(["sap/ushell/Container"], async function (Container) { * // do something with the container * }); * ``` * * * @since 1.15.0 */ interface Container { /** * An enumeration for the application work protect mode state. * * @since 1.21.1 * @deprecated As of version 1.146. the concept has been abandoned. */ DirtyState: sap.ushell.Container.DirtyState; /** * Adds a system to the list of remote systems currently in use. On logout this list is processed and performs * a logout for each system via the ContainerAdapter specific for its platform. * * @since 1.15.0 */ addRemoteSystem( /** * Remote system to be added. */ oRemoteSystem: sap.ushell.System ): void; /** * Attaches a listener to the logout event. In case the bAsyncFunction parameter is true, the fnFunction * must return a promise. FLP will wait for the promise to be resolved before doing the actual logout. * * @since 1.19.1 */ attachLogoutEvent( /** * Event handler to be attached. */ fnFunction: Function, /** * Whether the function returns a Promise to wait for its resolvent (since 1.81.0). */ bAsyncFunction: boolean ): void; /** * Attaches a listener to the rendererCreated event. * * @since 1.34.1 * @deprecated As of version 1.146. the concept has been abandoned. */ attachRendererCreatedEvent( /** * Event handler to be attached. If a renderer is created, this function is called with a parameter of instance * `sap.ui.base.Event`. The event object provides the instance of the created renderer as parameter "renderer". * If the renderer is a SAPUI5 UI component (i.e. extend `sap.ui.core.UIComponent`), the event parameter * returns the component instance, i.e. it unwraps the renderer component from its component container. */ fnFunction: Function ): void; /** * Cancels the logon procedure in the current frame, if any. This MUST be used by the logon frame provider * in case the user wants to close the logon frame for good. It will report "Authentication cancelled" and * let all pending requests for the current realm fail. As a side-effect, it also calls `destroy` on the * logon frame provider. * See: * sap.ushell.Container#setLogonFrameProvider * * @since 1.21.2 * @deprecated As of version 1.120. Deprecated without successor. */ cancelLogon(): void; /** * Creates a new renderer instance for the given renderer name. * * Names without a dot are interpreted as package names within the default naming convention and will be * expanded to `"sap.ushell.renderers." + sRendererName + ".Renderer"`. Names containing a dot are used * "as is". * * The resulting name must point to a SAPUI5 object which is first required and then instantiated (without * arguments). The object is expected to be a UI component (i.e. extend `sap.ui.core.UIComponent`), which * is then automatically wrapped into a `sap.ui.core.ComponentContainer` control by this method. The `sap.ui.core.ComponentContainer` * is created with `height` and `width` set to "100%" to accommodate the complete available space. Besides * UIComponents a control (i.e. extend `sap.ui.core.Control`) is accepted, too. * * The returned renderer is supposed to be added to a direct child (for example `div`) of the `body` of * the page and there should be no other parts of the page consuming space outside the renderer. Use CSS * class `sapUShellFullHeight` at `html`, `body` and at the element to which the renderer is added to allow * the renderer to use 100% height. * * @since 1.15.0 * @deprecated As of version 1.120. Deprecated without successor. Custom renderers are no longer supported. * * @returns the renderer or Promise (in asynchronous mode) */ createRenderer( /** * The renderer name, such as "standard" or "acme.foo.bar.MyRenderer"; it is taken from the configuration * property `defaultRenderer` if not given here. */ sRendererName?: string, /** * If `true`, the renderer is created asynchronously and a `Promise` is returned. */ bAsync?: boolean ): | sap.ui.core.Control | Promise | sap.ui.core.ComponentContainer | Promise; /** * Deregister the work protection dirty callback function. See registerDirtyStateProvider for more information. * Only the last registered function will be deregistered (in case it was registered multiple times). * * @since 1.67.0 * @deprecated As of version 1.146. replaced by {@link sap.ushell.navigation.DirtyState#deregisterDirtyStateProvider}. */ deregisterDirtyStateProvider( /** * function for determining the state of the application */ fnDirty: () => boolean ): void; /** * Detaches a listener from the logout event. * * @since 1.19.1 */ detachLogoutEvent( /** * Event handler to be detached. */ fnFunction: Function ): void; /** * Detaches a listener from the rendererCreated event. * * @since 1.34.1 * @deprecated As of version 1.146. the concept has been abandoned. */ detachRendererCreatedEvent( /** * Event handler to be detached. */ fnFunction: Function ): void; /** * If the dirty state was set to 'false' using 'setDirtyFlag' the registered dirty state provider methods * get called to determine the actual dirty state. The determined dirty state is then returned. * * However, if the dirty state was previously set to 'true' using 'setDirtyFlag' the registered dirty state * provider methods are ignored and the function simply returns 'true'. * * @since 1.27.0 * @deprecated As of version 1.120. replaced by {@link sap.ushell.navigation.DirtyState#getDirtyFlag}. * * @returns The value of the dirty flag or the determined dirty state returned by the dirty state providers. */ getDirtyFlag(): boolean; /** * Returns the global dirty state. * * All open UShell browser windows for the same origin are asked about their global dirty state. * * @since 1.21.1 * @deprecated As of version 1.120. the concept has been abandoned. Use {@link sap.ushell.navigation.DirtyState#getDirtyFlag } * instead. * * @returns Resolves the dirty state (see {@link sap.ushell.Container.DirtyState}). */ getGlobalDirty(): jQuery.Promise; /** * Gets a renderer instance for the given renderer name, that was created by the createRenderer method. * * @since 1.30.0 * @deprecated As of version 1.120. Use {@link sap.ushell.services.Extension} for shell extensions instead. * * @returns the renderer with the specified name; the returned object is either a control (i.e. extend `sap.ui.core.Control`) * or a UI component (i.e. extend `sap.ui.core.UIComponent`), i.e. this method unwraps the renderer component * from its `sap.ui.core.ComponentContainer`; if no renderer name can be determined and a single renderer * instance has been created, this single instance is returned. */ getRenderer( /** * The renderer name, such as "standard" or "fiori2"; it is taken from the configuration property `defaultRenderer` * if not given here. */ sRendererName?: string ): sap.ui.core.Control | sap.ui.core.Component; /** * Returns a service with the given name, creating it if necessary. Services are singleton objects identified * by their (resulting) name. * * Names without a dot are interpreted as service names within the default naming convention and will be * expanded to `"sap.ushell.services." + sServiceName`. Names containing a dot are not yet supported. This * name may be overridden via configuration. See example 2 below. * * The resulting name must point to a constructor function which is first required as a SAPUI5 module and * then called to create a service instance. The service will be passed to a corresponding service adapter * for the current logon system, as well as a callback interface (of virtual type `sap.ushell.services.ContainerInterface`) * to the container providing a method `createAdapter(oSystem)` to create further adapters for the same * service but connected to remote systems. The third parameter will be `sParameter` as passed to this function. * The fourth parameter will be an object with the property `config` supplied by the configuration. See * example 2 below. * * The adapter for the logon system will be created before the service. Its constructor gets three parameters. * The first parameter is the logon system, the second parameter is `sParameter` and the third parameter * is an object with the property `config` supplied by the configuration. * * The service may declare itself adapterless by setting the property `hasNoAdapter = true` at the constructor * function. In this case no adapter will be created and passed to the constructor and all other parameters * will be shifted. * * **Example 1:** The service `sap.ushell.services.UserInfo` is parameterless. It indicates this by setting * `sap.ushell.services.UserInfo.hasNoAdapter = true;`. * * **Example 2:** (Configuration) * ```javascript * * window["sap-ushell-config"] = { * services: { * Foo: { * module: "my.own.Foo" * config: {header: "hidden"}, * adapter: { * module: "my.own.FooAdapter", * config: {foo: "bar"} * } * } * } * } * sap.ushell.Container.getServiceAsync("Foo", "runtimeConfig") * .then(function (Foo) { * // Do something with the service * }); * ``` * Now `oService` is an instance of `my.own.Foo`. The third parameter of the constructor will be "runtimeConfig", * the fourth parameter `{config: {header: "hidden"}}`. Its adapter is an instance of `my.own.FooAdapter` * constructed with the parameters logon system, "runtimeConfig" and `{config: {foo: "bar"}}`. * * Note that the api will throw a runtime error (or reject for async mode) if the service name does not * reflect a service available. * See: * sap.ushell.services.ContainerInterface * * @since 1.15.0 * @deprecated As of version 1.77. Please use {@link #getServiceAsync} instead. * * @returns the service or, in asynchronous mode, a Promise that returns the service */ getService( /** * The service name, such as "Menu" */ sServiceName: string, /** * A parameter which is passed to the service constructor and every adapter constructor. (since 1.15.0) */ sParameter?: string, /** * if true, the adapter is loaded asynchronously and a Promise is returned. (since 1.55.0) */ bAsync?: boolean ): ServiceType | Promise; /** * Returns a Promise that resolves a service with the given name, creating it if necessary. Services are * singleton objects identified by their (resulting) name. * * Names without a dot are interpreted as service names within the default naming convention and will be * expanded to `"sap.ushell.services." + sServiceName`. Names containing a dot are not yet supported. This * name may be overridden via configuration. See example 2 below. * * The resulting name must point to a constructor function which is first required as a SAPUI5 module and * then called to create a service instance. The service will be passed to a corresponding service adapter * for the current logon system, as well as a callback interface (of virtual type `sap.ushell.services.ContainerInterface`) * to the container providing a method `createAdapter(oSystem)` to create further adapters for the same * service but connected to remote systems. The third parameter will be `sParameter` as passed to this function. * The fourth parameter will be an object with the property `config` supplied by the configuration. See * example 2 below. * * The adapter for the logon system will be created before the service. Its constructor gets three parameters. * The first parameter is the logon system, the second parameter is `sParameter` and the third parameter * is an object with the property `config` supplied by the configuration. * * The service may declare itself adapterless by setting the property `hasNoAdapter = true` at the constructor * function. In this case no adapter will be created and passed to the constructor and all other parameters * will be shifted. * * **Example 1:** The service `sap.ushell.services.UserInfo` is parameterless. It indicates this by setting * `sap.ushell.services.UserInfo.hasNoAdapter = true;`. * * **Example 2:** (Configuration) * ```javascript * * window["sap-ushell-config"] = { * services: { * Foo: { * module: "my.own.Foo" * config: {header: "hidden"}, * adapter: { * module: "my.own.FooAdapter", * config: {foo: "bar"} * } * } * } * } * sap.ushell.Container.getServiceAsync("Foo", "runtimeConfig") * .then(function (Foo) { * // Do something with the service * }); * ``` * Now the parameter provided in the promise handler is an instance of `my.own.Foo`. The third parameter * of the constructor will be "runtimeConfig", the fourth parameter `{config: {header: "hidden"}}`. Its * adapter is an instance of `my.own.FooAdapter` constructed with the parameters logon system, "runtimeConfig" * and `{config: {foo: "bar"}}`. * See: * sap.ushell.services.ContainerInterface * * @since 1.55.0 * * @returns a Promise that returns the requested service */ getServiceAsync( /** * The service name, such as "Menu" */ sServiceName: string, /** * A parameter which is passed to the service constructor and every adapter constructor. */ sParameter?: string ): Promise; /** * Logs out the current user from all relevant back-end systems, including the logon system itself. This * member represents the default native implementation of logout. If SessionHandler was created, we register * the alternate logout function using registerLogout function. * * @since 1.15.0 * @deprecated As of version 1.120. Deprecated without successor. * * @returns Resolves when logout is finished, even when it fails. */ logout(): jQuery.Promise; /** * Register the work protection dirty callback function. In the work protect mechanism, each platform can * register their own method in order to check if data was changed during the session, and notify the container * about the change. Registering multiple times the same function is allowed. * * Use `Function.prototype.bind()` to determine the callback's `this` or some of its arguments. * * @since 1.31.0 * @deprecated As of version 1.146. replaced by {@link sap.ushell.navigation.DirtyState#registerDirtyStateProvider}. */ registerDirtyStateProvider( /** * Function for determining the state of the application. The callback is used to determine the current * dirty state during a navigation. The function must return a boolean which determines if the current application * is dirty or not. If `true` is returned the end user is prompted with a dialog where they need to confirm * the potential data loss. The callback is called with a navigation context as its first parameter which * can be used to determine the dirty state: * ```javascript * * { * isCrossAppNavigation: true, // Boolean which indicates if the navigation is inner app or across two different applications. * innerAppRoute: "&/SalesOrder/11" // If it is an inner app navigation, it describes the inner app route. * } * ``` */ fnDirty: () => boolean ): void; /** * Setter for the isDirty flag value. * * Default value is false * * @since 1.27.0 * @deprecated As of version 1.146. replaced by {@link sap.ushell.navigation.DirtyState#setDirtyFlag}. */ setDirtyFlag( /** * The value of the dirty flag. */ bIsDirty?: boolean ): void; } /** * A representation of a system Constructs a new system object representing a system used in the Unified * Shell. * * @since 1.15.0 */ class System { constructor( /** * An object containing the system data */ oData: { /** * The unique system alias such as `'ENTERPRISE_SEARCH'`. */ alias: string; /** * The server relative base URL of this system such as `'/ENTERPRISE_SEARCH'`. **Note:** This has to correspond * to an SAP Web Dispatcher routing rule. */ baseUrl: string; /** * The system platform such as `'abap'` or `'hana'`. */ platform: string; } ); } /** * Denotes the types of the content nodes. * * This enum is part of the 'sap/ushell/library' module export and must be accessed by the property 'ContentNodeType'. */ enum ContentNodeType { /** * A group of the classic homepage * * @deprecated As of version 1.120. Deprecated without successor together with the classic homepage. */ HomepageGroup = "HomepageGroup", /** * A page which is assigned to a space in spaces mode */ Page = "Page", /** * A space in spaces mode */ Space = "Space", /** * A visualization which is assigned to a space in spaces mode */ Visualization = "Visualization", } /** * The state of a navigation operation * * This enum is part of the 'sap/ushell/library' module export and must be accessed by the property 'NavigationState'. * * @deprecated As of version 1.136. Deprecated without successor. */ enum NavigationState { Finished = "Finished", InProgress = "InProgress", } } interface IUI5DefineDependencyNames { "sap/ushell/api/BootstrapObserver": undefined; "sap/ushell/api/Copilot": undefined; "sap/ushell/api/DWS": undefined; "sap/ushell/api/FioriElements": undefined; "sap/ushell/api/Inbox": undefined; "sap/ushell/api/NewExperience": undefined; "sap/ushell/api/performance/Extension": undefined; "sap/ushell/api/performance/NavigationSource": undefined; "sap/ushell/api/RTA": undefined; "sap/ushell/api/S4MyHome": undefined; "sap/ushell/api/SAPBusinessClient": undefined; "sap/ushell/api/workpage/Designtime": undefined; "sap/ushell/api/workpage/Runtime": undefined; "sap/ushell/base/SAPBusinessClientEnablement": undefined; "sap/ushell/base/UrlParsing": undefined; "sap/ushell/bootstrap/Config": undefined; "sap/ushell/components/factsheet/controls/PictureTile": undefined; "sap/ushell/components/factsheet/controls/PictureViewer": undefined; "sap/ushell/components/factsheet/controls/PictureViewerItem": undefined; "sap/ushell/Container": undefined; "sap/ushell/library": undefined; "sap/ushell/modules/Assistant": undefined; "sap/ushell/modules/Assistant/AssistantAPI": undefined; "sap/ushell/modules/Assistant/AssistantProvider": undefined; "sap/ushell/modules/Assistant/VisualConfiguration": undefined; "sap/ushell/modules/NavigationMenu": undefined; "sap/ushell/modules/NavigationMenu/ListProvider": undefined; "sap/ushell/modules/NavigationMenu/ListProviderAPI": undefined; "sap/ushell/modules/NavigationMenu/NavContainer": undefined; "sap/ushell/modules/NavigationMenu/NavigationMenuMode": undefined; "sap/ushell/modules/Notifications": undefined; "sap/ushell/modules/Notifications/NotificationsAPI": undefined; "sap/ushell/modules/Notifications/NotificationsProvider": undefined; "sap/ushell/modules/ProductSwitch": undefined; "sap/ushell/modules/ProductSwitch/ProductSwitchAPI": undefined; "sap/ushell/modules/ProductSwitch/ProductSwitchProvider": undefined; "sap/ushell/modules/Search": undefined; "sap/ushell/modules/Search/SearchAPI": undefined; "sap/ushell/modules/Search/SearchProvider": undefined; "sap/ushell/navigation/DirtyState": undefined; "sap/ushell/renderer/ShellLayout": undefined; "sap/ushell/renderers/fiori2/Renderer": undefined; "sap/ushell/sandbox/SandboxBootTask": undefined; "sap/ushell/services/_Personalization/ContextContainer": undefined; "sap/ushell/services/_Personalization/PersonalizationContainer": undefined; "sap/ushell/services/_Personalization/PersonalizationContainerVariant": undefined; "sap/ushell/services/_Personalization/PersonalizationContainerVariantSet": undefined; "sap/ushell/services/_Personalization/Personalizer": undefined; "sap/ushell/services/_Personalization/TransientPersonalizer": undefined; "sap/ushell/services/_Personalization/Variant": undefined; "sap/ushell/services/_Personalization/VariantSet": undefined; "sap/ushell/services/AppConfiguration": undefined; "sap/ushell/services/AppLifeCycle": undefined; "sap/ushell/services/AppLifeCycle/AppInfoParameterName": undefined; "sap/ushell/services/AppLifeCycle/ApplicationType": undefined; "sap/ushell/services/AppLifeCycle/CurrentApplication": undefined; "sap/ushell/services/Bookmark": undefined; "sap/ushell/services/BookmarkV2": undefined; "sap/ushell/services/Configuration": undefined; "sap/ushell/services/ContentExtensionAdapterFactory": undefined; "sap/ushell/services/CrossApplicationNavigation": undefined; "sap/ushell/services/EndUserFeedback": undefined; "sap/ushell/services/Extension": undefined; "sap/ushell/services/Extension/Item": undefined; "sap/ushell/services/FrameBoundExtension": undefined; "sap/ushell/services/FrameBoundExtension/FloatingContainer": undefined; "sap/ushell/services/FrameBoundExtension/Footer": undefined; "sap/ushell/services/FrameBoundExtension/Item": undefined; "sap/ushell/services/FrameBoundExtension/SidePane": undefined; "sap/ushell/services/FrameBoundExtension/ToolArea": undefined; "sap/ushell/services/FrameBoundExtension/UserSettingsEntry": undefined; "sap/ushell/services/LaunchPage": undefined; "sap/ushell/services/Message": undefined; "sap/ushell/services/MessageBroker": undefined; "sap/ushell/services/MessageBroker/ClientAlias": undefined; "sap/ushell/services/MessageBroker/ClientConnectionMessage": undefined; "sap/ushell/services/Navigation": undefined; "sap/ushell/services/NavTargetResolution": undefined; "sap/ushell/services/Notifications": undefined; "sap/ushell/services/NotificationsV2": undefined; "sap/ushell/services/Pages": undefined; "sap/ushell/services/Personalization": undefined; "sap/ushell/services/personalization/VariantSetAdapter": undefined; "sap/ushell/services/PersonalizationV2": undefined; "sap/ushell/services/PersonalizationV2/constants": undefined; "sap/ushell/services/PersonalizationV2/ContextContainer": undefined; "sap/ushell/services/PersonalizationV2/Personalizer": undefined; "sap/ushell/services/PersonalizationV2/TransientPersonalizer": undefined; "sap/ushell/services/PersonalizationV2/Variant": undefined; "sap/ushell/services/PersonalizationV2/VariantSet": undefined; "sap/ushell/services/PersonalizationV2/VariantSetAdapter": undefined; "sap/ushell/services/PluginManager": undefined; "sap/ushell/services/PluginManager/PostMessagePluginInterface": undefined; "sap/ushell/services/SearchableContent": undefined; "sap/ushell/services/ShellNavigation": undefined; "sap/ushell/services/ShellNavigationInternal": undefined; "sap/ushell/services/SmartNavigation": undefined; "sap/ushell/services/SpaceContent": undefined; "sap/ushell/services/SupportTicket": undefined; "sap/ushell/services/URLParsing": undefined; "sap/ushell/services/UsageAnalytics": undefined; "sap/ushell/services/UserDefaultParameters": undefined; "sap/ushell/services/UserInfo": undefined; "sap/ushell/services/UserRecents": undefined; "sap/ushell/services/VisualizationInstantiation": undefined; "sap/ushell/System": undefined; "sap/ushell/ui/appfinder/AppBox": undefined; "sap/ushell/ui/BookmarkDialog": undefined; "sap/ushell/ui/footerbar/AddBookmarkButton": undefined; "sap/ushell/ui/launchpad/ActionItem": undefined; "sap/ushell/ui/launchpad/DashboardGroupsContainer": undefined; "sap/ushell/ui/launchpad/LinkTileWrapper": undefined; "sap/ushell/ui/launchpad/TileState": undefined; "sap/ushell/ui/launchpad/VizInstanceBase": undefined; "sap/ushell/ui/shell/ShellHeadItem": undefined; "sap/ushell/ui/shell/ToolAreaItem": undefined; "sap/ushell/ui/tile/StaticTile": undefined; "sap/ushell/ui5service/ShellUIService": undefined; "sap/ushell/ui5service/ShellUIServiceFactory": undefined; "sap/ushell/ui5service/UserStatus": undefined; "sap/ushell/utils/UriParameters": undefined; } }