All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.legacy.main.js Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

AUI.add(
	'liferay-marketplace-messenger',
	(A) => {
		const NATIVE_MSG = !!window.postMessage;

		const MarketplaceMessenger = {
			_messages: [],
			_targetFrame: null,
			_targetURI: null,

			init(options, initMessage) {
				const instance = this;

				if (A.Lang.isString(options)) {
					instance._targetURI = options;
				}
				else if (A.Lang.isObject(options)) {
					const targetFrame = options.targetFrame;

					instance._targetFrame = A.one(targetFrame);

					instance._targetURI = options.targetURI;
				}

				if (initMessage) {
					instance.postMessage(initMessage);
				}
			},

			postMessage(message) {
				const instance = this;

				if (NATIVE_MSG) {
					A.postMessage(
						message,
						instance._targetURI,
						instance._targetFrame
					);
				}
				else {
					instance._messages.push(message);

					if (instance._messages.length === 1) {
						A.postMessage(
							message,
							instance._targetURI,
							instance._targetFrame
						);
					}
				}
			},

			receiveMessage(callback, validator) {
				const instance = this;

				validator = validator || instance._targetURI;

				if (NATIVE_MSG) {
					A.receiveMessage(callback, validator);
				}
				else {
					const wrappedCallback = function (event) {
						const response = event.responseData;

						callback(event);

						instance._messages.shift();

						let message = null;

						if (instance._messages.length) {
							message = instance._messages[0];
						}
						else if (!response.empty) {
							message = {
								empty: true,
							};
						}

						if (message) {
							A.postMessage(
								message,
								instance._targetURI,
								instance._targetFrame
							);
						}
					};

					A.receiveMessage(wrappedCallback, validator);
				}
			},

			setTargetFrame(targetFrame) {
				this._targetFrame = targetFrame;
			},

			setTargetURI(targetURI) {
				this._targetURI = targetURI;
			},
		};

		Liferay.MarketplaceMessenger = MarketplaceMessenger;
	},
	'',
	{
		requires: ['aui-messaging'],
	}
);

AUI.add(
	'liferay-marketplace-util',
	(A) => {
		const MarketplaceUtil = {
			namespaceObject(namespace, object) {
				const returnObject = {};

				const keys = Object.keys(object);

				A.Array.each(keys, (key) => {
					returnObject[namespace + key] = object[key];
				});

				return returnObject;
			},
		};

		Liferay.MarketplaceUtil = MarketplaceUtil;
	},
	'',
	{
		requires: ['aui-base'],
	}
);




© 2015 - 2025 Weber Informatics LLC | Privacy Policy