@phemium-costaisa/amazon-quicksight-embedding-sdk
Version:
JS SDK for embedding Amazon QuickSight
62 lines (61 loc) • 2.58 kB
JavaScript
;
// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
exports.__esModule = true;
var eventManagerBuilder = function () {
var eventListeners = new Map();
var addEventListener = function (experienceIdentifier, listener) {
if (!experienceIdentifier) {
return;
}
if (typeof listener !== 'function') {
return;
}
if (!eventListeners.has(experienceIdentifier)) {
eventListeners.set(experienceIdentifier, []);
}
var experienceIdentifierSpecificListeners = eventListeners.get(experienceIdentifier);
experienceIdentifierSpecificListeners.push(listener);
};
var invokeEventListener = function (experienceIdentifier, data) {
if (!eventListeners.has(experienceIdentifier)) {
return;
}
var experienceIdentifierSpecificListeners = eventListeners.get(experienceIdentifier);
experienceIdentifierSpecificListeners.forEach(function (listener) {
listener(data);
});
};
var removeEventListener = function (experienceIdentifier, listener) {
if (!eventListeners.has(experienceIdentifier)) {
return;
}
var experienceIdentifierSpecificListeners = eventListeners.get(experienceIdentifier);
var remainingListeners = experienceIdentifierSpecificListeners.filter(function (listenerItem) { return listenerItem !== listener; });
eventListeners.set(experienceIdentifier, remainingListeners);
};
var experienceEventListenerBuilder = function (experienceIdentifier, onMessage) {
var addExperienceEventListener = function (listener) {
return addEventListener(experienceIdentifier, listener);
};
if (onMessage) {
addExperienceEventListener(onMessage);
}
return {
addExperienceEventListener: addExperienceEventListener,
invokeExperienceEventListener: function (data) {
return invokeEventListener(experienceIdentifier, data);
},
removeExperienceEventListener: function (listener) {
return removeEventListener(experienceIdentifier, listener);
}
};
};
return {
addEventListener: addEventListener,
invokeEventListener: invokeEventListener,
removeEventListener: removeEventListener,
experienceEventListenerBuilder: experienceEventListenerBuilder
};
};
exports["default"] = eventManagerBuilder;