UNPKG

@openui5/sap.ui.core

Version:

OpenUI5 Core Library sap.ui.core

71 lines (61 loc) 1.49 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define([], function() { "use strict"; let pFieldHelp; function loadFieldHelp() { pFieldHelp ??= new Promise((resolve, reject) => { sap.ui.require(["sap/ui/core/fieldhelp/FieldHelp"], resolve, reject); }); return pFieldHelp; } function sendHotSpotUpdates(aHotSpotsInfo) { const oMessage = { service: "sap.companion.services.UpdateHotspots", type: "request", body: { hotspots: aHotSpotsInfo } }; window.postMessage(JSON.stringify(oMessage), document.location.origin); } const mActions = { "sap.companion.services.StartCompanion": async function() { const FieldHelp = await loadFieldHelp(); FieldHelp.getInstance().activate(sendHotSpotUpdates); }, "sap.companion.services.StopCompanion": async function() { const FieldHelp = await loadFieldHelp(); FieldHelp.getInstance().deactivate(); } }; window.addEventListener("message", (oEvent) => { if (oEvent.origin !== document.location.origin) { return; } let vData = oEvent.data; if (typeof vData === "string") { try { vData = JSON.parse(vData); } catch (e) { // ignore } } const sService = vData?.service; if (!sService) { return; } const fnAction = mActions[sService]; if (fnAction) { fnAction(); } }); return { run: function() { return Promise.resolve(); } }; });