@ui-tool/core
Version:
44 lines • 7.68 kB
JavaScript
import { ReplaySubject } from 'rxjs';
export class BannerService {
//#endregion
//#region Constructor
constructor() {
this._bannerDisplayRequestSubject = new ReplaySubject(1);
this._deleteRequestSubject = new ReplaySubject(1);
this._displayNextSubject = new ReplaySubject(1);
this.addedRequestEvent = this._bannerDisplayRequestSubject.asObservable();
this.deleteRequestEvent = this._deleteRequestSubject.asObservable();
this.nextBannerDisplayRequested = this._displayNextSubject.asObservable();
}
//#endregion
//#region Methods
// Display banner using specific settings.
// If container id is defined, only the contain whose id matches will display the banner.
addBanner(settings, containerId) {
const request = {
id: settings.id,
containerId,
settings
};
this._bannerDisplayRequestSubject.next(request);
return request.id;
}
// Find and delete banner by id.
// No id is defined, all banner will be deleted.
deleteBanner(id, containerId) {
const deleteRequest = {
id,
containerId
};
this._deleteRequestSubject.next(deleteRequest);
}
// Get the next banner and display it inside a specific container.
// If no container id is defined, display next banner into every banner.
displayNextBanner(containerId) {
const request = {
containerId
};
this._displayNextSubject.next(request);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL3NlcnZpY2VzL2ltcGxlbWVudGF0aW9ucy9iYW5uZXJzL2Jhbm5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFPeEQsTUFBTSxPQUFPLGFBQWE7SUF5QnhCLFlBQVk7SUFFWixxQkFBcUI7SUFFckI7UUFFRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxhQUFhLENBQXdCLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGFBQWEsQ0FBdUIsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksYUFBYSxDQUE0QixDQUFDLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBWTtJQUVaLGlCQUFpQjtJQUVqQiwwQ0FBMEM7SUFDMUMseUZBQXlGO0lBQ2xGLFNBQVMsQ0FBQyxRQUFnQyxFQUFFLFdBQW9CO1FBQ3JFLE1BQU0sT0FBTyxHQUEwQjtZQUNyQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDZixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLGdEQUFnRDtJQUN6QyxZQUFZLENBQUMsRUFBVyxFQUFFLFdBQW9CO1FBRW5ELE1BQU0sYUFBYSxHQUF5QjtZQUMxQyxFQUFFO1lBQ0YsV0FBVztTQUNaLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsd0VBQXdFO0lBQ2pFLGlCQUFpQixDQUFDLFdBQW9CO1FBQzNDLE1BQU0sT0FBTyxHQUE4QjtZQUN6QyxXQUFXO1NBQ1osQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lCYW5uZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Jhbm5lcnMvYmFubmVyLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7SURlbGV0ZUJhbm5lclJlcXVlc3R9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbnRlcmZhY2VzL2Jhbm5lcnMvZGVsZXRlLWJhbm5lci1jb250ZW50LXJlcXVlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7SUJhbm5lck5leHREaXNwbGF5UmVxdWVzdH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMvYmFubmVycy9kaXNwbGF5LW5leHQtYmFubmVyLWNvbnRlbnQtcmVxdWVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURpc3BsYXlCYW5uZXJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMvYmFubmVycy9hZGQtYmFubmVyLWNvbnRlbnQtcmVxdWVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUJhbm5lckNvbnRlbnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbnRlcmZhY2VzL2Jhbm5lcnMvYmFubmVyLWNvbnRlbnQtc2V0dGluZ3MuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIEJhbm5lclNlcnZpY2UgaW1wbGVtZW50cyBJQmFubmVyU2VydmljZSB7XG5cbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcblxuXG4gIC8vIFJhaXNlIGFuIGV2ZW50IGFib3V0IGJhbm5lciBkaXNwbGF5IHJlcXVlc3QuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Jhbm5lckRpc3BsYXlSZXF1ZXN0U3ViamVjdDogU3ViamVjdDxJRGlzcGxheUJhbm5lclJlcXVlc3Q+O1xuXG4gIC8vIFJhaXNlIGFuIGV2ZW50IGFib3V0IGJhbm5lciBkZWxldGUgcmVxdWVzdC5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVsZXRlUmVxdWVzdFN1YmplY3Q6IFN1YmplY3Q8SURlbGV0ZUJhbm5lclJlcXVlc3Q+O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXlOZXh0U3ViamVjdDogU3ViamVjdDxJQmFubmVyTmV4dERpc3BsYXlSZXF1ZXN0PjtcblxuICAvLyBSYWlzZWQgd2hlbiBhIGJhbm5lciBkaXNwbGF5IGlzIHJlcXVlc3RlZC5cbiAgcHVibGljIHJlYWRvbmx5IGFkZGVkUmVxdWVzdEV2ZW50OiBPYnNlcnZhYmxlPElEaXNwbGF5QmFubmVyUmVxdWVzdD47XG5cbiAgLy8gUmFpc2VkIHdoZW4gIGJhbm5lcnMgZGVsZXRpb24gaXMgcmVxdWVzdGVkLlxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlUmVxdWVzdEV2ZW50OiBPYnNlcnZhYmxlPElEZWxldGVCYW5uZXJSZXF1ZXN0PjtcblxuICAvLyBSYWlzZWQgd2hlbiBuZXh0IGJhbm5lciBzaG91bGQgYmUgZGlzcGxheWVkLlxuICBwdWJsaWMgcmVhZG9ubHkgbmV4dEJhbm5lckRpc3BsYXlSZXF1ZXN0ZWQ6IE9ic2VydmFibGU8SUJhbm5lck5leHREaXNwbGF5UmVxdWVzdD47XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgdGhpcy5fYmFubmVyRGlzcGxheVJlcXVlc3RTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8SURpc3BsYXlCYW5uZXJSZXF1ZXN0PigxKTtcbiAgICB0aGlzLl9kZWxldGVSZXF1ZXN0U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PElEZWxldGVCYW5uZXJSZXF1ZXN0PigxKTtcbiAgICB0aGlzLl9kaXNwbGF5TmV4dFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxJQmFubmVyTmV4dERpc3BsYXlSZXF1ZXN0PigxKTtcblxuICAgIHRoaXMuYWRkZWRSZXF1ZXN0RXZlbnQgPSB0aGlzLl9iYW5uZXJEaXNwbGF5UmVxdWVzdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5kZWxldGVSZXF1ZXN0RXZlbnQgPSB0aGlzLl9kZWxldGVSZXF1ZXN0U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLm5leHRCYW5uZXJEaXNwbGF5UmVxdWVzdGVkID0gdGhpcy5fZGlzcGxheU5leHRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIE1ldGhvZHNcblxuICAvLyBEaXNwbGF5IGJhbm5lciB1c2luZyBzcGVjaWZpYyBzZXR0aW5ncy5cbiAgLy8gSWYgY29udGFpbmVyIGlkIGlzIGRlZmluZWQsIG9ubHkgdGhlIGNvbnRhaW4gd2hvc2UgaWQgbWF0Y2hlcyB3aWxsIGRpc3BsYXkgdGhlIGJhbm5lci5cbiAgcHVibGljIGFkZEJhbm5lcihzZXR0aW5nczogSUJhbm5lckNvbnRlbnRTZXR0aW5ncywgY29udGFpbmVySWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlcXVlc3Q6IElEaXNwbGF5QmFubmVyUmVxdWVzdCA9IHtcbiAgICAgIGlkOiBzZXR0aW5ncy5pZCxcbiAgICAgIGNvbnRhaW5lcklkLFxuICAgICAgc2V0dGluZ3NcbiAgICB9O1xuXG4gICAgdGhpcy5fYmFubmVyRGlzcGxheVJlcXVlc3RTdWJqZWN0Lm5leHQocmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlcXVlc3QuaWQ7XG4gIH1cblxuICAvLyBGaW5kIGFuZCBkZWxldGUgYmFubmVyIGJ5IGlkLlxuICAvLyBObyBpZCBpcyBkZWZpbmVkLCBhbGwgYmFubmVyIHdpbGwgYmUgZGVsZXRlZC5cbiAgcHVibGljIGRlbGV0ZUJhbm5lcihpZD86IHN0cmluZywgY29udGFpbmVySWQ/OiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIGNvbnN0IGRlbGV0ZVJlcXVlc3Q6IElEZWxldGVCYW5uZXJSZXF1ZXN0ID0ge1xuICAgICAgaWQsXG4gICAgICBjb250YWluZXJJZFxuICAgIH07XG5cbiAgICB0aGlzLl9kZWxldGVSZXF1ZXN0U3ViamVjdC5uZXh0KGRlbGV0ZVJlcXVlc3QpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBuZXh0IGJhbm5lciBhbmQgZGlzcGxheSBpdCBpbnNpZGUgYSBzcGVjaWZpYyBjb250YWluZXIuXG4gIC8vIElmIG5vIGNvbnRhaW5lciBpZCBpcyBkZWZpbmVkLCBkaXNwbGF5IG5leHQgYmFubmVyIGludG8gZXZlcnkgYmFubmVyLlxuICBwdWJsaWMgZGlzcGxheU5leHRCYW5uZXIoY29udGFpbmVySWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0OiBJQmFubmVyTmV4dERpc3BsYXlSZXF1ZXN0ID0ge1xuICAgICAgY29udGFpbmVySWRcbiAgICB9O1xuXG4gICAgdGhpcy5fZGlzcGxheU5leHRTdWJqZWN0Lm5leHQocmVxdWVzdCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==