(function() {
/** @namespace Help4 */
window.Help4 = {moduleRoot: {
_method: 'UI5',
help4: 'sap.dfa.help.wpb.help4',
xray: 'sap.dfa.help.wpb',
html: 'sap.dfa.help.wpb.html',
lib: 'sap.dfa.help.wpb.lib'
}};
// specific for xRay; need to stay like this as long as we develop in UI5/Fiori
// NOT real UI5 API usage. used internally as proxy for including js files in dkp.pl
jQuery.sap.require("sap.dfa.help.wpb.Core");
Help4.extendObject(Help4, {
VERSION: '~~~VERSION~~~',
BUILDNUMBER: '~~~BUILDNUMBER~~~',
TIMESTAMP: '', // for UI5/Fiori caching
I18N_PATH: '/wpb/i18n/',
FILES_PATH: '/wpb/files/',
THEME_PATH: '/wpb/less/',
LEARNING_APP_PATH: '/wpb/learningapp/index.html',
// this value should be the same as css variable with the same name. in case of changing this value, make sure to check the css variable.
HOTSPOT_BORDER_WIDTH: 2,
// needed in other places during bootstrapping
// standard (RO) content URL marker in EXT mode
STANDARD_SERVER_URL_MARKER: 'wa!STANDARD:',
init: _init,
cleanup: _cleanup,
getShell: _getShell,
getController: _getController,
getConfiguration: () => Help4.getController()?.getConfiguration(),
adapterTypeToName: type => ({fiori: 'Fiori', ui5: 'UI5', desktopAssistant: 'DesktopAssistant' }[type]) || 'Shell'
});
Help4.require("xray.jscore.Base");
Help4.require("xray.ajax.Ajax");
Help4.require("xray.ajax.EnableNow");
Help4.require("xray.ajax.UACP");
Help4.require("xray.ajax.UrHarmonization");
Help4.require("xray.observer.Observer");
Help4.require("xray.observer.EventObserver");
Help4.require("xray.observer.MessageEventObserver");
Help4.require("xray.observer.EventBusObserver");
Help4.require("xray.observer.MutationObserver");
Help4.require("xray.observer.WindowObserver");
Help4.require("xray.observer.TimeObserver");
Help4.require("xray.observer.ControlObserver");
Help4.require("xray.observer.FocusObserver");
Help4.require("xray.Element");
Help4.require("xray.Object");
Help4.require("xray.Event");
Help4.require("xray.Localization");
Help4.require("xray.Queue");
Help4.require("xray.History");
Help4.require("xray.CtxWPB");
Help4.require("xray.BinaryStorage");
Help4.require("xray.StartStatus");
Help4.require("xray.Promise");
Help4.require("xray.XhrPromise");
Help4.require("xray.EventBus");
Help4.require("xray.Placeholder");
Help4.require("xray.BooleanFormula");
Help4.require("xray.EmbeddedEvent");
Help4.require("xray.EmbeddedEventSync");
Help4.require("xray.AuthService");
Help4.require("xray.MigrateFioriSpaces");
Help4.require("xray.jscore.Base");
Help4.require("xray.jscore.ControlBase");
Help4.require("xray.jscore.DataBase");
Help4.require("xray.jscore.DataContainer");
Help4.require("xray.jscore.DataFunctions");
Help4.require("xray.jscore.ControlBase_Texts");
Help4.require("xray.jscore.DataTypeArray");
Help4.require("xray.jscore.DataTypeAtomic");
Help4.require("xray.jscore.DataTypeDataContainer");
Help4.require("xray.jscore.DataTypeInstance");
Help4.require("xray.jscore.DataTypeElement");
Help4.require("xray.jscore.DataTypeJson");
Help4.require("xray.jscore.DataTypeLeftTop");
Help4.require("xray.jscore.DataTypeObject");
Help4.require("xray.jscore.DataTypeWidthHeight");
Help4.require("xray.jscore.DataTypeWH");
Help4.require("xray.jscore.DataTypeXY");
Help4.require("xray.jscore.DataTypeXYWH");
Help4.require("xray.jscore.DragDrop");
Help4.require("xray.jscore.MediaWatcher");
Help4.require("xray.jscore.MutualExclusion");
Help4.require("xray.data.Data");
Help4.require("xray.data.TileData");
Help4.require("xray.data.HotspotData");
Help4.require("xray.data.HotspotStatusData");
Help4.require("xray.data.CrossOriginRequestData");
Help4.require("xray.selector.Selector");
Help4.require("xray.selector.methods.Utils");
Help4.require("xray.selector.methods.BaseSelector");
Help4.require("xray.selector.methods.AppFrameSelector");
Help4.require("xray.selector.methods.ClassSelector");
Help4.require("xray.selector.methods.DataAttrSelector");
Help4.require("xray.selector.methods.GenericSelector");
Help4.require("xray.selector.methods.FallbackSelector");
Help4.require("xray.selector.methods.IdSelector");
Help4.require("xray.selector.methods.IframeSelector");
Help4.require("xray.selector.methods.KnownElementSelector");
Help4.require("xray.selector.methods.NoNumbersIdSelector");
Help4.require("xray.selector.methods.ShortTermIframeSelector");
Help4.require("xray.selector.methods.TextSelector");
Help4.require("xray.selector.methods.TreeDataAttrSelector");
Help4.require("xray.selector.methods.enablenow.EnableNowSelector");
Help4.require("xray.selector.methods.fieldglass.FG_StableIdSelector");
Help4.require("xray.selector.methods.fiori.BlacklistFiori");
Help4.require("xray.selector.methods.htmlgui.HtmlGui_DialogControlSelector");
Help4.require("xray.selector.methods.htmlgui.HtmlGui_IdSelector");
Help4.require("xray.selector.methods.htmlgui.HtmlGui_SidSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_FormFieldSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_FormNameSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_IdSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_StableIdSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_TreeIdSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_XmlViewSelector");
Help4.require("xray.selector.methods.sfsf.SFSF_MsgsSelector");
Help4.require("xray.selector.methods.ui5.UtilsUI5");
Help4.require("xray.selector.methods.ui5.BindingInfoUI5");
Help4.require("xray.selector.methods.ui5.DomSelectorUI5");
Help4.require("xray.selector.methods.ui5.IdSelectorUI5");
Help4.require("xray.selector.methods.ui5.NavSelectorUI5");
Help4.require("xray.selector.methods.ui5.SideNavigationSelectorUI5");
Help4.require("xray.selector.methods.ui5.TabStripItemSelectorUI5");
Help4.require("xray.selector.methods.ui5.PopUpItemSelectorUI5");
Help4.require("xray.selector.methods.wda.WDA_InputFieldSelector");
Help4.require("xray.service.Service");
Help4.require("xray.service.storage.StorageService");
Help4.require("xray.service.storage.StorageInterface");
Help4.require("xray.service.storage.CookieStorage");
Help4.require("xray.service.storage.LocalStorage");
Help4.require("xray.service.storage.SessionStorage");
Help4.require("xray.service.storage.EnableNowStorage");
Help4.require("xray.service.storage.FioriStorage");
Help4.require("xray.service.InputFieldService");
Help4.require("xray.service.ImageDownloadService");
Help4.require("xray.service.HotkeyService");
Help4.require("xray.service.ConditionService");
Help4.require("xray.service.RemoteModelService");
Help4.require("xray.service.CrossOriginMessageService");
Help4.require("xray.service.container.ContainerService");
Help4.require("xray.service.container.HotspotService");
Help4.require("xray.service.container.LightboxService");
Help4.require("xray.service.container.InfoBarService");
Help4.require("xray.service.container.MessageService");
Help4.require("xray.service.container.BubbleService");
Help4.require("xray.service.container.bubble.StandardBubble");
Help4.require("xray.service.container.bubble.HelpBubble");
Help4.require("xray.service.container.bubble.TourBubble");
Help4.require("xray.service.container.bubble.TileConfigBubble");
Help4.require("xray.service.recording.RecordingService");
Help4.require("xray.service.recording.SameWindowRecording");
Help4.require("xray.service.recording.SameWindowPlayback");
Help4.require("xray.service.recording.ElementToSelector");
Help4.require("xray.service.recording.ShadowDomService");
Help4.require("xray.service.recording.IFrameService");
Help4.require("xray.service.recording.RecordingCacheService");
Help4.require("xray.service.recording.PlaybackCacheService");
Help4.require("xray.service.recording.PlaybackService");
Help4.require("xray.service.recording.PlaybackServiceUpdate");
Help4.require("xray.service.recording.PlaybackServiceScan");
Help4.require("xray.service.recording.PlaybackServiceAction");
Help4.require("xray.service.recording.PlaybackServiceEvent");
Help4.require("xray.service.zoom.ZoomService");
Help4.require("xray.service.zoom.InPlaceZoom");
Help4.require("xray.service.zoom.LightboxZoom");
Help4.require("xray.engine.StateEngine");
Help4.require("xray.engine.CarouselSelectionEngine");
Help4.require("xray.engine.DomRefreshEngine");
Help4.require("xray.engine.crossorigin.Core");
Help4.require("xray.engine.crossorigin.CoreEngine");
Help4.require("xray.engine.crossorigin.CoreWindowObserver");
Help4.require("xray.engine.RecordingEngine");
Help4.require("xray.engine.ur.UrHarmonizationEngine");
Help4.require("xray.engine.ur.Connection");
Help4.require("xray.engine.ur.IconTemplate");
Help4.require("xray.engine.ur.Migration");
Help4.require("xray.engine.ur.Mock");
Help4.require("xray.engine.ur.Selector");
Help4.require("xray.engine.ur.Tile");
Help4.require("xray.engine.ur.Tour");
Help4.require("xray.engine.ur.Transformation");
Help4.require("xray.engine.ur.Update");
Help4.require("xray.engine.ur.WTA");
Help4.require("xray.engine.hotspotManager.HotspotManagerEngine");
Help4.require("xray.engine.hotspotManager.HotspotController");
Help4.require("xray.engine.remote.RemoteControlEngine");
Help4.require("xray.engine.remote.TourPlaybackController");
Help4.require("xray.engine.remote.CarouselController");
Help4.require("xray.engine.ConditionEngine");
Help4.require("xray.engine.MLTEngine");
Help4.require("xray.control.Store");
Help4.require("xray.control.Icons");
Help4.require("xray.control.Control");
Help4.require("xray.control.SearchField");
Help4.require("xray.control.Lightbox");
Help4.require("xray.control.Progress");
Help4.require("xray.control.Text");
Help4.require("xray.control.HelpBox");
Help4.require("xray.control.Select");
Help4.require("xray.control.InfoBar");
Help4.require("xray.control2.Control");
Help4.require("xray.control2.Store");
Help4.require("xray.control2.Icons");
Help4.require("xray.control2.Line");
Help4.require("xray.control2.Cover");
Help4.require("xray.control2.Text");
Help4.require("xray.control2.Tile");
Help4.require("xray.control2.Lightbox");
Help4.require("xray.control2.InfoBar");
Help4.require("xray.control2.Select");
Help4.require("xray.control2.button.Button");
Help4.require("xray.control2.button.Option");
Help4.require("xray.control2.input.Text");
Help4.require("xray.control2.container.Container");
Help4.require("xray.control2.container.SortedContainer");
Help4.require("xray.control2.container.PanelWidgetContainer");
Help4.require("xray.control2.container.Rating");
Help4.require("xray.control2.container.PanelSearch");
Help4.require("xray.control2.recording.Overlay");
Help4.require("xray.control2.recording.SelectionRect");
Help4.require("xray.control2.recording.InfoArea");
Help4.require("xray.control2.hotspot.Hotspot");
Help4.require("xray.control2.hotspot.Circle");
Help4.require("xray.control2.hotspot.Rectangle");
Help4.require("xray.control2.hotspot.Triangle");
Help4.require("xray.control2.hotspot.Underline");
Help4.require("xray.control2.hotspot.Icon");
Help4.require("xray.control2.hotspot.Connected");
Help4.require("xray.control2.hotspot.Numbered");
Help4.require("xray.control2.bubble.Bubble");
Help4.require("xray.control2.bubble.BubbleAlignment");
Help4.require("xray.control2.bubble.Help");
Help4.require("xray.control2.bubble.Panel");
Help4.require("xray.control2.bubble.LanguageSelection");
Help4.require("xray.control2.bubble.BubbleCover");
Help4.require("xray.control2.bubble.BubbleArrow");
Help4.require("xray.control2.bubble.header.BubbleHeader");
Help4.require("xray.control2.bubble.header.CaptionTranslateClose");
Help4.require("xray.control2.bubble.header.Panel");
Help4.require("xray.control2.bubble.content.BubbleContent");
Help4.require("xray.control2.bubble.content.Html");
Help4.require("xray.control2.bubble.content.Panel");
Help4.require("xray.control2.bubble.content.Selection");
Help4.require("xray.control2.bubble.footer.BubbleFooter");
Help4.require("xray.control2.bubble.footer.Checkbox");
Help4.require("xray.control2.bubble.footer.Panel");
Help4.require("xray.control2.bubble.footer.Close");
Help4.require("xray.control2.bubble.footer.Apply");
Help4.require("xray.control.button.Button");
Help4.require("xray.control.button.Option");
Help4.require("xray.control.button.SwitchToggle");
Help4.require("xray.control.button.Description");
Help4.require("xray.control.button.TourInfo");
Help4.require("xray.control.container.Container");
Help4.require("xray.control.container.Select");
Help4.require("xray.control.container.Propsheet");
Help4.require("xray.control.container.TabbedPropsheet");
Help4.require("xray.control.container.Option");
Help4.require("xray.control.container.Toolbar");
Help4.require("xray.control.container.HtmlToolbar");
Help4.require("xray.control.container.Tile");
Help4.require("xray.control.container.LearningApp");
Help4.require("xray.control.container.Condition");
Help4.require("xray.control.tile.Tile");
Help4.require("xray.control.tile.Help");
Help4.require("xray.control.tile.ProjectTour");
Help4.require("xray.control.tile.LearningApp");
Help4.require("xray.control.tile.Edit");
Help4.require("xray.control.tile.HelpEdit");
Help4.require("xray.control.tile.LinkEdit");
Help4.require("xray.control.tile.TourEdit");
Help4.require("xray.control.tile.Asset");
Help4.require("xray.control.tile.SearchResult");
Help4.require("xray.control.tile.Action");
Help4.require("xray.control.input.Input");
Help4.require("xray.control.input.Text");
Help4.require("xray.control.input.Number");
Help4.require("xray.control.input.Size");
Help4.require("xray.control.input.Rating");
Help4.require("xray.control.input.Orientation");
Help4.require("xray.control.input.Offset");
Help4.require("xray.control.input.Border");
Help4.require("xray.control.input.Margin");
Help4.require("xray.control.input.Date");
Help4.require("xray.control.input.HtmlEditor");
Help4.require("xray.control.input.HtmlEditor_transformation");
Help4.require("xray.control.input.ConditionalInputButton");
Help4.require("xray.control.input.slider.Slider");
Help4.require("xray.control.input.slider.Enum");
Help4.require("xray.control.carousel.Carousel");
Help4.require("xray.control.carousel.Edit");
Help4.require("xray.control.bubble.BubbleAlignment");
Help4.require("xray.control.bubble.Bubble");
Help4.require("xray.control.bubble.Container");
Help4.require("xray.control.bubble.Help");
Help4.require("xray.control.bubble.Tour");
Help4.require("xray.control.bubble.Debug");
Help4.require("xray.control.bubble.dialog.Dialog");
Help4.require("xray.control.bubble.dialog.Message");
Help4.require("xray.control.bubble.dialog.Tabbed");
Help4.require("xray.control.bubble.dialog.Hotkey");
Help4.require("xray.control.bubble.dialog.NoHelp");
Help4.require("xray.control.bubble.dialog.ContextInformation");
Help4.require("xray.control.bubble.dialog.ContextMismatch");
Help4.require("xray.control.bubble.dialog.LearningApp");
Help4.require("xray.control.bubble.dialog.UpdateNotification");
Help4.require("xray.control.bubble.dialog.PreAssignment");
Help4.require("xray.control.bubble.dialog.Condition");
Help4.require("xray.control.bubble.dialog.ConditionRecurrence");
Help4.require("xray.service.InfobarService");
Help4.require("xray.service.LightboxService");
Help4.require("xray.widget.Widget");
Help4.require("xray.widget.static");
Help4.require("xray.widget.Infrastructure");
Help4.require("xray.widget.Requirement");
Help4.require("xray.widget.companionCore.Core");
Help4.require("xray.widget.companionCore.State");
Help4.require("xray.widget.companionCore.SEN");
Help4.require("xray.widget.companionCore.UACP");
Help4.require("xray.widget.companionCore.data.Tour");
Help4.require("xray.widget.companionCore.data.Help");
Help4.require("xray.widget.learning.Widget");
Help4.require("xray.widget.learning.Data");
Help4.require("xray.widget.learning.Backend");
Help4.require("xray.widget.learning.View");
Help4.require("xray.widget.learning.TileControl");
Help4.require("xray.widget.learning.FeedbackBubbleControl");
Help4.require("xray.widget.learning.FeedbackBubbleContentControl");
Help4.require("xray.widget.learning.FeedbackBubbleFooterControl");
Help4.require("xray.widget.help.Widget");
Help4.require("xray.widget.help.Data");
Help4.require("xray.widget.help.XmlHelper");
Help4.require("xray.widget.help.HeadersXml");
Help4.require("xray.widget.help.Cookie");
Help4.require("xray.widget.help.CatalogueBackend");
Help4.require("xray.widget.help.catalogues.SEN");
Help4.require("xray.widget.help.catalogues.SEN2");
Help4.require("xray.widget.help.catalogues.UACP");
Help4.require("xray.widget.help.catalogues.GlobalHelp");
Help4.require("xray.widget.help.catalogues._Special");
Help4.require("xray.widget.help.catalogues.API");
Help4.require("xray.widget.help.catalogues.QuickTour");
Help4.require("xray.widget.help.catalogues.UR");
Help4.require("xray.widget.help.project.SEN");
Help4.require("xray.widget.help.project.SEN2");
Help4.require("xray.widget.help.project.UACP");
Help4.require("xray.widget.help.project.GlobalHelp");
Help4.require("xray.widget.help.project._Special");
Help4.require("xray.widget.help.project.API");
Help4.require("xray.widget.help.project.QuickTour");
Help4.require("xray.widget.help.project.UR");
Help4.require("xray.widget.help.CatalogueType");
Help4.require("xray.widget.help.view2.view2");
Help4.require("xray.widget.help.view2.Tile");
Help4.require("xray.widget.help.view2.TileTile");
Help4.require("xray.widget.help.view2.TileHotspot");
Help4.require("xray.widget.help.view2.TileLightbox");
Help4.require("xray.widget.help.view2.TileBubble");
Help4.require("xray.widget.help.view2.TileContainer");
Help4.require("xray.widget.help.view2.HotspotScan");
Help4.require("xray.widget.help.view2.LaserBeam");
Help4.require("xray.widget.help.view2.BubbleControl");
Help4.require("xray.widget.help.view2.GlobalHelpDialogControl");
Help4.require("xray.widget.help.view2.View");
Help4.require("xray.widget.tourlist.Widget");
Help4.require("xray.widget.tourlist.Data");
Help4.require("xray.widget.tourlist.CatalogueType");
Help4.require("xray.widget.tourlist.View");
Help4.require("xray.widget.tourlist.TileControl");
Help4.require("xray.widget.tour.Widget");
Help4.require("xray.widget.tour.View");
Help4.require("xray.widget.tour.HotspotController");
Help4.require("xray.widget.tour.BubbleController");
Help4.require("xray.widget.tour.Observer");
Help4.require("xray.widget.tour.BubbleControl");
Help4.require("xray.widget.tour.BubbleFooterControl");
Help4.require("xray.widget.whatsnew.Widget");
Help4.require("xray.widget.whatsnew.catalogues.WNTours");
Help4.require("xray.widget.whatsnew.project.WNTours");
Help4.require("xray.widget.whatsnew.Data");
Help4.require("xray.widget.bpm.Widget");
Help4.require("xray.widget.filter.Widget");
Help4.require("xray.widget.monitor.Widget");
Help4.require("xray.widget.monitor.Store");
Help4.require("xray.Config");
Help4.require("xray.CustomTheme");
Help4.require("xray.control.condition.Condition");
Help4.require("xray.control.condition.ApiCondition");
Help4.require("xray.control.condition.ElementCondition");
Help4.require("xray.control.condition.UrlCondition");
Help4.require("xray.control.condition.DateCondition");
Help4.require("xray.tracking.Tracking");
Help4.require("xray.tracking.connector.Shell");
Help4.require("xray.tracking.connector.WebAnalytics");
Help4.require("xray.tracking.connector.EnableNow");
Help4.require("xray.shell.Params");
Help4.require("xray.shell.Shell");
Help4.require("xray.shell.Fiori");
Help4.require("xray.shell.QuickTour");
Help4.require("xray.shell.QuickTourStore");
Help4.require("xray.shell.UI5");
Help4.require("xray.shell.DesktopAssistant");
Help4.require("xray.model.ModelBase");
Help4.require("xray.model.Model");
Help4.require("xray.model.ServiceLayer");
Help4.require("xray.model.uacp.ModelBase");
Help4.require("xray.model.uacp.Model");
Help4.require("xray.model.uacp.ServiceLayer");
Help4.require("xray.model.wpb.HeadersXml");
Help4.require("xray.model.wpb.XmlHelper");
Help4.require("xray.model.wpb.ModelBase");
Help4.require("xray.model.wpb.Model");
Help4.require("xray.model.wpb.ServiceLayer");
Help4.require("xray.model.ext.ModelBase");
Help4.require("xray.model.ext.Model");
Help4.require("xray.model.ext.ServiceLayer");
Help4.require("xray.model.ext.Helper");
Help4.require("html.wctlayer");
Help4.require("html.html_editor");
Help4.require("html.core.transformation.html");
Help4.require("html.core.transformation.beautifier");
Help4.require("html.core.transformation.inner_format");
Help4.require("html.core.transformation.outer_format");
Help4.require("html.core.transformation.cleanup");
Help4.require("html.core.selection.selection");
Help4.require("html.core.selection.range");
Help4.require("html.core.selection.bookmark");
Help4.require("html.core.history.history");
Help4.require("html.core.clipboard.clipboard");
Help4.require("html.core.clipboard.dom_cleaner");
Help4.require("html.core.clipboard.msotohtml");
Help4.require("html.core.clipboard.table");
Help4.require("html.core.clipboard.uploader");
Help4.require("html.core.event");
Help4.require("html.core.control");
Help4.require("html.core.iframe");
Help4.require("html.core.core");
Help4.require("html.core.editor_dom");
Help4.require("html.core.textarea");
Help4.require("html.core.preview");
Help4.require("html.core.utils");
Help4.require("html.core.link_builder");
Help4.require("html.core.media_factory");
Help4.require("html.core.command/base");
Help4.require("html.core.command/insert");
Help4.require("html.core.command/inline");
Help4.require("html.core.command/font_color");
Help4.require("html.core.command/font_name");
Help4.require("html.core.command/font_size");
Help4.require("html.core.command/del");
Help4.require("html.core.command/direction");
Help4.require("html.core.command/div");
Help4.require("html.core.command/justify");
Help4.require("html.core.command/list");
Help4.require("html.core.command/paragraph");
Help4.require("html.core.command/tab");
Help4.require("html.core.command/table");
Help4.require("html.core.command/toggleBackground");
Help4.require("html.core.command/toggleOutline");
Help4.require("html.core.command/paste");
Help4.require("html.core.command/genai/genai");
Help4.require("html.core.command/genai/content_patcher");
Help4.require("xray.theme.Theme");
Help4.require("xray.theme.belize");
Help4.require("xray.theme.belizeplus");
Help4.require("xray.theme.default");
Help4.require("xray.theme.hcb");
Help4.require("xray.theme.hcw");
Help4.require("xray.theme.horizon");
Help4.require("xray.theme.horizondark");
Help4.require("xray.theme.light");
Help4.require("xray.theme.quartz");
Help4.require("xray.theme.quartzlight");
Help4.require("xray.theme.sfsf");
Help4.require("xray.theme._whatsnew");
Help4.require("xray.theme._walkme");
Help4.require("xray.controller.ControllerBase");
Help4.require("xray.controller.Controller");
Help4.require("xray.controller.CMP4");
Help4.require("xray.controller.Persistence");
Help4.require("xray.controller.EngineManager");
Help4.require("xray.controller.helper.Helper");
Help4.require("xray.controller.helper.Lightbox");
Help4.require("xray.controller.helper.Bubbles");
Help4.require("xray.controller.helper.Hotspots");
Help4.require("xray.controller.helper.Messages");
Help4.require("xray.controller.Handler");
Help4.require("xray.controller.HandlerEvent");
Help4.require("xray.controller.Help");
Help4.require("xray.controller.Tour");
Help4.require("xray.controller.Editor");
Help4.require("xray.controller.EditorEvent");
Help4.require("xray.controller.HelpEdit");
Help4.require("xray.controller.TourEdit");
Help4.require("xray.API");
Help4.require("xray.WM");
Help4.require("lib.dompurify");
Help4.DOMPurify.addHook('uponSanitizeElement', (node, nodeConfig, options) => {
// options.embedVideo: true - editmode, trust all iframes and allow to render
// options.embedVideo: false || undefined - playback/preview mode, allow only if it has trusted wrapper (i.e content created using HTMLEditor)
if (node.tagName === 'IFRAME' && !options.embedVideo) {
const embeddedVideoWrapper = node.closest('div.video-iframe-wrapper'); // stable class name used by HTMLEditor to wrap the embedded video code
return embeddedVideoWrapper ? node : node.parentNode?.removeChild(node);
}
});
Help4.setOriginalObjects();
Help4.observeMessages();
(function() {
if (Help4.Platform.iPad) {
// XRAY-2208, XRAY-2212
const _setWindowHeight = function() {
Help4.setCssVariable('window-vh', window.innerHeight * 0.01 + 'px');
};
new Help4.observer.EventObserver(_setWindowHeight).observe(window, {type: 'resize'});
_setWindowHeight();
}
})();
// boot the whole system
function _init(params /*, returnPromise*/) {
const returnPromise = arguments[1] === true;
const shellName = this.adapterTypeToName(params.type);
if (shellName === null) return returnPromise ? Help4.Promise.resolve(null) : null;
function checkInitializedShell() {
const names = ['DesktopAssistant', 'Fiori', 'Shell', 'UI5'];
let w = window;
let s;
while (true) {
s = w.Help4 && w.Help4.shell;
if (!s) return false;
// XRAY-1766: do only allow one Shell
for (let i = 0, name; name = names[i++];) {
// a shell is already instantiated; block all others
if (s[name] && s[name]._initialized) return true;
}
// XRAY-3817: if it is top window; break
// if it is not top window; go to parent
if (w === w.parent) {
return false;
} else {
w = w.parent;
}
}
}
try {
if (checkInitializedShell()) {
return returnPromise ? Help4.Promise.resolve(null) : null;
}
} catch(e) {
}
// the protection code below is no longer needed due to XRAY-1766
// as XRAY-1766 seems to be under discussion and might change I
// leave it as is anyway
const shells = Help4.shell;
const shellClass = shells[shellName];
if (shellClass) {
// first init of a shell of this type
const button = params._button;
params._button = null; // cannot be cloned
shellClass._params = Help4.cloneObject(params);
shellClass._params._button = params._button = button;
const shellInstance = new shellClass(params);
const shellId = shellInstance.getId();
shellClass._initialized = shellId;
shells[shellId] = shellInstance;
const shellPromise = new Help4.Promise(function(resolve) {
if (shellInstance.getShellReady()) {
resolve(shellInstance);
} else {
shellInstance.onShellReady.addListener(function() {
resolve(shellInstance);
});
}
});
return returnPromise ? shellPromise : shellInstance;
}
return returnPromise ? Help4.Promise.resolve(null) : null;
}
function _cleanup() {
var s = this.shell;
for (var i in s) {
if (s.hasOwnProperty(i) && s[i] && typeof s[i].destroy === 'function') {
s[i].destroy();
s[i] = null;
}
}
}
function _getShell() {
var s = this.shell;
for (var i in s) {
if (s.hasOwnProperty(i) && typeof s[i].getHelp === 'function') return s[i];
}
return null;
}
function _getController(/*controllerId*/) {
var cid = arguments[0];
var s = this.shell;
for (var i in s) {
if (s.hasOwnProperty(i) && typeof s[i].getHelp === 'function') {
if (cid) {
var h = s[i].getHelp();
if (h.getId() === cid) return h;
} else {
return s[i].getHelp();
}
}
}
return null;
}
})();