UNPKG

@dotcms/angular

Version:

Official Angular Components library to render a dotCMS page.

75 lines 6.78 kB
import { BehaviorSubject } from 'rxjs'; import { Injectable } from '@angular/core'; import { map } from 'rxjs/operators'; import { isInsideEditor } from '@dotcms/client'; import * as i0 from "@angular/core"; /** * @author dotCMS * @description This service is responsible for managing the page context. * @export * @class PageContextService */ export class PageContextService { constructor() { this.context$ = new BehaviorSubject(null); } /** * @description Get the context * @readonly * @type {DotCMSPageContext} * @memberof PageContextService */ get context() { return this.context$.getValue(); } /** * @description Get the context as an observable * @readonly * @memberof PageContextService */ get contextObs$() { return this.context$.asObservable(); } /** * @description Get the current page asset * @readonly * @type {(Observable<DotCMSPageAsset | null>)} * @memberof PageContextService */ get currentPage$() { return this.contextObs$.pipe(map((context) => context?.pageAsset || null)); } /** * * @description Set the context * @param {DotCMSPageAsset} value * @memberof DotcmsContextService */ setContext(pageAsset, components) { this.context$.next({ pageAsset, components, isInsideEditor: isInsideEditor() }); } /** * @description Set the page asset in the context * @param {DotCMSPageAsset} pageAsset * @memberof PageContextService */ setPageAsset(pageAsset) { this.context$.next({ ...this.context, pageAsset }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2hEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlZLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7S0F3RDFFO0lBdERHOzs7OztPQUtHO0lBQ0gsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBdUIsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxTQUEwQixFQUFFLFVBQStCO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsU0FBUztZQUNULFVBQVU7WUFDVixjQUFjLEVBQUUsY0FBYyxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFNBQTBCO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFNBQVM7U0FDWixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXhEUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzSW5zaWRlRWRpdG9yIH0gZnJvbSAnQGRvdGNtcy9jbGllbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50LCBEb3RDTVNQYWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcblxuLyoqXG4gKiBAYXV0aG9yIGRvdENNU1xuICogQGRlc2NyaXB0aW9uIFRoaXMgc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHBhZ2UgY29udGV4dC5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBQYWdlQ29udGV4dFNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29udGV4dFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERvdENNU1BhZ2VDb250ZXh0IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IHRoZSBjb250ZXh0XG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VDb250ZXh0fVxuICAgICAqIEBtZW1iZXJvZiBQYWdlQ29udGV4dFNlcnZpY2VcbiAgICAgKi9cbiAgICBnZXQgY29udGV4dCgpOiBEb3RDTVNQYWdlQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQkLmdldFZhbHVlKCkgYXMgRG90Q01TUGFnZUNvbnRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgY29udGV4dCBhcyBhbiBvYnNlcnZhYmxlXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIFBhZ2VDb250ZXh0U2VydmljZVxuICAgICAqL1xuICAgIGdldCBjb250ZXh0T2JzJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgY3VycmVudCBwYWdlIGFzc2V0XG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUgeyhPYnNlcnZhYmxlPERvdENNU1BhZ2VBc3NldCB8IG51bGw+KX1cbiAgICAgKiBAbWVtYmVyb2YgUGFnZUNvbnRleHRTZXJ2aWNlXG4gICAgICovXG4gICAgZ2V0IGN1cnJlbnRQYWdlJCgpOiBPYnNlcnZhYmxlPERvdENNU1BhZ2VBc3NldCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dE9icyQucGlwZShtYXAoKGNvbnRleHQpID0+IGNvbnRleHQ/LnBhZ2VBc3NldCB8fCBudWxsKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHRoZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtEb3RDTVNQYWdlQXNzZXR9IHZhbHVlXG4gICAgICogQG1lbWJlcm9mIERvdGNtc0NvbnRleHRTZXJ2aWNlXG4gICAgICovXG4gICAgc2V0Q29udGV4dChwYWdlQXNzZXQ6IERvdENNU1BhZ2VBc3NldCwgY29tcG9uZW50czogRG90Q01TUGFnZUNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmNvbnRleHQkLm5leHQoe1xuICAgICAgICAgICAgcGFnZUFzc2V0LFxuICAgICAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgICAgIGlzSW5zaWRlRWRpdG9yOiBpc0luc2lkZUVkaXRvcigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXQgdGhlIHBhZ2UgYXNzZXQgaW4gdGhlIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge0RvdENNU1BhZ2VBc3NldH0gcGFnZUFzc2V0XG4gICAgICogQG1lbWJlcm9mIFBhZ2VDb250ZXh0U2VydmljZVxuICAgICAqL1xuICAgIHNldFBhZ2VBc3NldChwYWdlQXNzZXQ6IERvdENNU1BhZ2VBc3NldCkge1xuICAgICAgICB0aGlzLmNvbnRleHQkLm5leHQoe1xuICAgICAgICAgICAgLi4udGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgcGFnZUFzc2V0XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==