File

libs/core/src/lib/services/taly-page-data.service.ts

Description

This service will be embed into AbstractBuildingBlockPage which acts as the base class of all Building Block Pages.

Any page being created can report it's set of TalyPageData so it can be used in a different place, outside of the actual page component.

Index

Methods
Accessors

Methods

setPageId
setPageId(id: string)
Parameters :
Name Type Optional
id string No
Returns : void
storeData
storeData(data: PageDataForTemplate)
Parameters :
Name Type Optional
data PageDataForTemplate No
Returns : void

Accessors

pageData$
getpageData$()
pageData
getpageData()
pageId$
getpageId$()
import { Injectable } from '@angular/core';
import { BehaviorSubject, ReplaySubject } from 'rxjs';
import { type PageDataForTemplate } from './taly-page-data.model';

/**
 * This service will be embed into `AbstractBuildingBlockPage`
 * which acts as the base class of all Building Block Pages.
 *
 * Any page being created can report it's set of `TalyPageData`
 * so it can be used in a different place, outside of the actual page component.
 */
@Injectable({ providedIn: 'root' })
export class TalyPageDataService {
  private _currentPageData!: PageDataForTemplate;
  private _pageDataSubject = new BehaviorSubject<PageDataForTemplate>({});
  private _pageIdSubject = new ReplaySubject<string>(1);

  storeData(data: PageDataForTemplate) {
    this._currentPageData = data;
    this._pageDataSubject.next(this._currentPageData);
  }

  get pageData$() {
    return this._pageDataSubject.asObservable();
  }

  get pageData() {
    return this._currentPageData;
  }

  setPageId(id: string) {
    this._pageIdSubject.next(id);
  }

  get pageId$() {
    return this._pageIdSubject.asObservable();
  }
}

results matching ""

    No results matching ""