ngx-monitorias-uniandes-lib
Version:
This library is used for Monitorias-Uniandes system.
51 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rxjs_1 = require("rxjs");
var core_1 = require("@angular/core");
var FrontendDataBusService = /** @class */ (function () {
function FrontendDataBusService() {
}
FrontendDataBusService.toChildren = function (message, targetOrigin, transfer) {
for (var i = 0; i < window.frames.length; i++)
window.frames[i].postMessage(message, targetOrigin, transfer);
};
FrontendDataBusService.toParent = function (message, targetOrigin, transfer) {
window.parent.postMessage(message, targetOrigin, transfer);
};
FrontendDataBusService.Topics = {
SELECTED_ACTIVE_PERIOD: new rxjs_1.BehaviorSubject(null),
UPDATED_PERIOD_DATES: new rxjs_1.BehaviorSubject(null),
DEACTIVATED_PERIOD: new rxjs_1.BehaviorSubject(null),
ACTIVATED_PERIOD: new rxjs_1.BehaviorSubject(null),
};
FrontendDataBusService.__constructor__ = (function () {
window.addEventListener("message", function (ev) {
var message = ev.data;
switch (message.topic) {
case 'SYNC_REQ':
var sync = { topic: 'SYNC', payload: {} };
for (var topic in FrontendDataBusService.Topics)
sync.payload[topic] = FrontendDataBusService.Topics[topic].value;
for (var i = 0; i < window.frames.length; i++)
window.frames[i].postMessage(sync);
break;
case 'SYNC':
for (var topic in FrontendDataBusService.Topics)
FrontendDataBusService.Topics[topic].next(message.payload[topic]);
break;
case 'SELECTED_ACTIVE_PERIOD':
case 'UPDATED_PERIOD_DATES':
case 'DEACTIVATED_PERIOD':
case 'ACTIVATED_PERIOD':
FrontendDataBusService.Topics[message.topic].next(message.payload);
break;
}
});
})();
FrontendDataBusService.decorators = [
{ type: core_1.Injectable },
];
return FrontendDataBusService;
}());
exports.FrontendDataBusService = FrontendDataBusService;
//# sourceMappingURL=frontend-data-bus.service.js.map