{"version":3,"file":"EmbracePageManager.cjs","names":["generateUUID"],"sources":["../../../src/managers/EmbracePageManager/EmbracePageManager.ts"],"sourcesContent":["import type { PageManager, Route } from '../../api-page/index.ts';\nimport type { TitleDocument } from '../../common/index.ts';\nimport { generateUUID } from '../../utils/index.ts';\nimport type { EmbracePageManagerArgs } from './types.ts';\n\nexport class EmbracePageManager implements PageManager {\n  private _currentRoute: Route | null = null;\n  private _currentPageId: string | null = null;\n  private _pageLabel: string | null = null;\n  private readonly _titleDocument: TitleDocument | undefined;\n  private readonly _useDocumentTitleAsPageLabel: boolean;\n\n  public constructor({\n    useDocumentTitleAsPageLabel = true,\n    titleDocument = window.document,\n  }: EmbracePageManagerArgs = {}) {\n    this._useDocumentTitleAsPageLabel = useDocumentTitleAsPageLabel;\n    this._titleDocument = titleDocument;\n  }\n\n  public getCurrentPageId = (): string | null => this._currentPageId;\n\n  public getCurrentRoute = () => this._currentRoute;\n\n  public setPageLabel = (label: string): void => {\n    this._pageLabel = label;\n  };\n\n  public getPageLabel = (): string | null => {\n    return (\n      this._pageLabel ||\n      (!this._useDocumentTitleAsPageLabel || !this._titleDocument\n        ? null\n        : this._titleDocument.title)\n    );\n  };\n\n  public setCurrentRoute = (route: Route) => {\n    if (!this._currentRoute || this._currentRoute.url !== route.url) {\n      this._currentPageId = generateUUID();\n    }\n\n    this._currentRoute = route;\n\n    if (route.label) {\n      this._pageLabel = route.label;\n    } else {\n      this._pageLabel = null;\n    }\n  };\n\n  public clearCurrentRoute = () => {\n    this._currentRoute = null;\n    this._currentPageId = null;\n    this._pageLabel = null;\n  };\n}\n"],"mappings":";;;AAKA,IAAa,qBAAb,MAAuD;CACrD,gBAAsC;CACtC,iBAAwC;CACxC,aAAoC;CACpC;CACA;CAEA,YAAmB,EACjB,8BAA8B,MAC9B,gBAAgB,OAAO,aACG,EAAE,EAAE;AAC9B,OAAK,+BAA+B;AACpC,OAAK,iBAAiB;;CAGxB,yBAA+C,KAAK;CAEpD,wBAA+B,KAAK;CAEpC,gBAAuB,UAAwB;AAC7C,OAAK,aAAa;;CAGpB,qBAA2C;AACzC,SACE,KAAK,eACJ,CAAC,KAAK,gCAAgC,CAAC,KAAK,iBACzC,OACA,KAAK,eAAe;;CAI5B,mBAA0B,UAAiB;AACzC,MAAI,CAAC,KAAK,iBAAiB,KAAK,cAAc,QAAQ,MAAM,IAC1D,MAAK,iBAAiBA,2BAAAA,cAAc;AAGtC,OAAK,gBAAgB;AAErB,MAAI,MAAM,MACR,MAAK,aAAa,MAAM;MAExB,MAAK,aAAa;;CAItB,0BAAiC;AAC/B,OAAK,gBAAgB;AACrB,OAAK,iBAAiB;AACtB,OAAK,aAAa"}