Skip to main content

Class: ClientPageManager

Defined in: packages/core/src/page/manager/ClientPageManager.ts:23

Page manager for controller on the client side.

Extends​

Constructors​

Constructor​

new ClientPageManager(pageFactory, pageRenderer, pageStateManager, handlerRegistry, dispatcher, window, eventBus): ClientPageManager

Defined in: packages/core/src/page/manager/ClientPageManager.ts:70

Initializes the client-side page manager.

Parameters​

pageFactory​

PageFactory

Factory used by the page manager to create instances of the controller for the current route, and decorate the controllers and page state managers.

pageRenderer​

PageRenderer

The current renderer of the page.

pageStateManager​

PageStateManager

handlerRegistry​

PageHandlerRegistry

Instance of HandlerRegistry that holds a list of pre-manage and post-manage handlers.

dispatcher​

Dispatcher

IMA Dispatcher.

window​

Window

The utility for manipulating the global context and global client-side-specific APIs.

eventBus​

EventBus

The event bus for dispatching and listening for custom IMA events propagated through the DOM.

Returns​

ClientPageManager

Overrides​

AbstractPageManager.constructor

Properties​

_dispatcher​

protected _dispatcher: Dispatcher

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:81

Inherited from​

AbstractPageManager._dispatcher


_managedPage​

protected _managedPage: ManagedPage

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:68

Details of the currently managed page.

Inherited from​

AbstractPageManager._managedPage


_pageFactory​

protected _pageFactory: PageFactory

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:63

Factory used by the page manager to create instances of the controller for the current route, and decorate the controllers and page state managers.

Inherited from​

AbstractPageManager._pageFactory


_pageHandlerRegistry​

protected _pageHandlerRegistry: PageHandlerRegistry

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:80

A registry that holds a list of pre-manage and post-manage handlers.

Inherited from​

AbstractPageManager._pageHandlerRegistry


_pageRenderer​

protected _pageRenderer: PageRenderer

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:72

The current renderer of the page.

Inherited from​

AbstractPageManager._pageRenderer


_pageStateManager​

protected _pageStateManager: PageStateManager

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:76

The current page state manager.

Inherited from​

AbstractPageManager._pageStateManager


_previousManagedPage​

protected _previousManagedPage: ManagedPage

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:57

Snapshot of the previously managed page before it was replaced with a new one

Inherited from​

AbstractPageManager._previousManagedPage

Accessors​

$dependencies​

Get Signature​

get static $dependencies(): Dependencies

Defined in: packages/core/src/page/manager/ClientPageManager.ts:42

Returns​

Dependencies

Methods​

_activateController()​

protected _activateController(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:550

Activate managed instance of controller.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._activateController


_activateExtensions()​

protected _activateExtensions(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:564

Activate extensions for managed instance of controller.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._activateExtensions


_activatePageSource()​

protected _activatePageSource(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:530

Activate page source so call activate method on controller and his extensions.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._activatePageSource


_clearComponentState()​

_clearComponentState(options): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:754

The method clear state on current rendered component to DOM.

Parameters​

options​

RouteOptions

The current route options.

Returns​

void

Inherited from​

AbstractPageManager._clearComponentState


_constructManagedPageValue()​

protected _constructManagedPageValue(controller, view, route, options, params, controllerInstance, decoratedController, viewInstance): ManagedPage

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:246

Parameters​

controller​

RouteController

view​

unknown

route​

AbstractRoute<string | RoutePathExpression>

options​

RouteOptions

params​

RouteParams

controllerInstance​

Controller<PageState>

decoratedController​

ControllerDecorator

viewInstance​

unknown

Returns​

ManagedPage

Inherited from​

AbstractPageManager._constructManagedPageValue


_deactivateController()​

protected _deactivateController(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:692

Deactivate last managed instance of controller only If controller was activated.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._deactivateController


_deactivateExtensions()​

protected _deactivateExtensions(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:703

Deactivate extensions for last managed instance of controller only if they were activated.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._deactivateExtensions


_deactivatePageSource()​

protected _deactivatePageSource(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:678

Deactivate page source so call deactivate method on controller and his extensions.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._deactivatePageSource


_destroyController()​

protected _destroyController(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:727

Destroy last managed instance of controller.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._destroyController


_destroyExtensions()​

protected _destroyExtensions(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:740

Destroy extensions for last managed instance of controller.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._destroyExtensions


_destroyPageSource()​

protected _destroyPageSource(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:715

Destroy page source so call destroy method on controller and his extensions.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._destroyPageSource


_getInitialManagedPage()​

protected _getInitialManagedPage(): ManagedPage

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:303

Clear value from managed page.

Returns​

ManagedPage

Inherited from​

AbstractPageManager._getInitialManagedPage


_getLoadedControllerState()​

protected _getLoadedControllerState(): Promise<{ }>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:486

Load controller state from managed instance of controller.

Returns​

Promise<{ }>

Inherited from​

AbstractPageManager._getLoadedControllerState


_getLoadedExtensionsState()​

protected _getLoadedExtensionsState(controllerState?): Promise<UnknownParameters>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:502

Load extensions state from managed instance of controller.

Parameters​

controllerState?​

UnknownParameters

Returns​

Promise<UnknownParameters>

Inherited from​

AbstractPageManager._getLoadedExtensionsState


_getUpdatedControllerState()​

protected _getUpdatedControllerState(): { } | Promise<{ }>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:622

Return updated controller state for current page controller.

Returns​

{ } | Promise<{ }>

Inherited from​

AbstractPageManager._getUpdatedControllerState


_getUpdatedExtensionsState()​

protected _getUpdatedExtensionsState(controllerState?): Promise<UnknownParameters>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:638

Return updated extensions state for current page controller.

Parameters​

controllerState?​

UnknownParameters

Returns​

Promise<UnknownParameters>

Inherited from​

AbstractPageManager._getUpdatedExtensionsState


_handleEventWithController()​

_handleEventWithController(prefix, method, data): boolean

Defined in: packages/core/src/page/manager/ClientPageManager.ts:215

Attempts to handle the currently processed event bus custom DOM event using the current controller. The method returns true if the event is handled by the controller.

Parameters​

prefix​

string

method​

string

The name of the method the current controller should use to process the currently processed event bus custom DOM event.

data​

UnknownParameters

The custom event's data.

Returns​

boolean

true if the event has been handled by the controller, false if the controller does not have a method for processing the event.


_handleEventWithExtensions()​

_handleEventWithExtensions(prefix, method, data): boolean

Defined in: packages/core/src/page/manager/ClientPageManager.ts:251

Attempts to handle the currently processed event bus custom DOM event using the registered extensions of the current controller. The method returns true if the event is handled by the controller.

Parameters​

prefix​

string

method​

string

The name of the method the current controller should use to process the currently processed event bus custom DOM event.

data​

UnknownParameters

The custom event's data.

Returns​

boolean

true if the event has been handled by one of the controller's extensions, false if none of the controller's extensions has a method for processing the event.


_hasOnlyUpdate()​

protected _hasOnlyUpdate(controller, view, options): boolean

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:770

Return true if manager has to update last managed controller and view.

Parameters​

controller​

RouteController

view​

unknown

options​

RouteOptions

Returns​

boolean

Inherited from​

AbstractPageManager._hasOnlyUpdate


_initController()​

protected _initController(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:399

Initializes managed instance of controller with the provided parameters.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._initController


_initExtensions()​

protected _initExtensions(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:414

Initialize extensions for managed instance of controller with the provided parameters.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._initExtensions


_initPageSource()​

protected _initPageSource(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:384

Initialize page source so call init method on controller and his extensions.

Returns​

Promise<void>

Inherited from​

AbstractPageManager._initPageSource


_loadPageSource()​

protected _loadPageSource(): Promise<void | PageData>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:444

Load page source so call load method on controller and his extensions. Merge loaded state and render it.

Returns​

Promise<void | PageData>

Inherited from​

AbstractPageManager._loadPageSource


_onChangeStateHandler()​

_onChangeStateHandler(state): void

Defined in: packages/core/src/page/manager/ClientPageManager.ts:276

On change event handler set state to view.

Parameters​

state​

UnknownParameters

Returns​

void


_onCustomEventHandler()​

_onCustomEventHandler(event): void

Defined in: packages/core/src/page/manager/ClientPageManager.ts:151

Custom DOM event handler.

The handler invokes the event listener in the active controller, if such listener is present. The name of the controller's listener method is created by turning the first symbol of the event's name to upper case, and then prefixing the result with the 'on' prefix.

For example: for an event named 'toggle' the controller's listener would be named 'onToggle'.

The controller's listener will be invoked with the event's data as an argument.

Parameters​

event​

CustomEvent

The encountered event bus DOM event.

Returns​

void


_parseCustomEvent()​

_parseCustomEvent(event): object

Defined in: packages/core/src/page/manager/ClientPageManager.ts:188

Extracts the details of the provided event bus custom DOM event, along with the expected name of the current controller's method for intercepting the event.

Parameters​

event​

CustomEvent

The encountered event bus custom DOM event.

Returns​

object

The event's details.

data​

data: any

eventName​

eventName: string

method​

method: string

prefix​

prefix: string


_runPostManageHandlers()​

protected _runPostManageHandlers(previousManagedPage, action): Promise<unknown>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:810

Parameters​

previousManagedPage​

ManagedPage

action​

PageAction

Returns​

Promise<unknown>

Inherited from​

AbstractPageManager._runPostManageHandlers


_runPreManageHandlers()​

protected _runPreManageHandlers(actualManagedPage, action): Promise<unknown>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:789

Parameters​

actualManagedPage​

ManagedPage

action​

PageAction

Returns​

Promise<unknown>

Inherited from​

AbstractPageManager._runPreManageHandlers


_setRestrictedPageStateManager()​

_setRestrictedPageStateManager(extension, extensionState): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:343

Set page state manager to extension which has restricted rights to set global state.

Parameters​

extension​

Extension

extensionState​

UnknownParameters

Returns​

void

Inherited from​

AbstractPageManager._setRestrictedPageStateManager


_storeManagedPageSnapshot()​

protected _storeManagedPageSnapshot(): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:282

Creates a cloned version of currently managed page and stores it in a helper property. Snapshot is used in manager handlers to easily determine differences between the current and the previous state.

Returns​

void

Inherited from​

AbstractPageManager._storeManagedPageSnapshot


_stripManagedPageValueForPublic()​

protected _stripManagedPageValueForPublic(value): object

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:333

Removes properties we do not want to propagate outside of the page manager

Parameters​

value​

ManagedPage

The managed page object to strip down

Returns​

object

controller​

controller: RouteController

options​

options: RouteOptions

params​

params: RouteParams

route​

route: AbstractRoute<string | RoutePathExpression>

view​

view: unknown

Inherited from​

AbstractPageManager._stripManagedPageValueForPublic


_switchToPageStateManager()​

protected _switchToPageStateManager(): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:431

Iterates over extensions of current controller and switches each one to pageStateManager and clears their partial state.

Returns​

void

Inherited from​

AbstractPageManager._switchToPageStateManager


_switchToPageStateManagerAfterLoaded()​

_switchToPageStateManagerAfterLoaded(extension, extensionState): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:364

For defined extension switches to pageStageManager and clears partial state after extension state is loaded.

Parameters​

extension​

Extension

extensionState​

UnknownParameters

Returns​

void

Inherited from​

AbstractPageManager._switchToPageStateManagerAfterLoaded


_updatePageSource()​

protected _updatePageSource(): Promise<void | PageData>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:581

Update page source so call update method on controller and his extensions. Merge updated state and render it.

Returns​

Promise<void | PageData>

Inherited from​

AbstractPageManager._updatePageSource


destroy()​

destroy(): Promise<void>

Defined in: packages/core/src/page/manager/ClientPageManager.ts:126

Finalization callback, called when the page manager is being discarded. This usually happens when the page is hot-reloaded at the client side.

Returns​

Promise<void>

Overrides​

AbstractPageManager.destroy


getViewController()​

protected getViewController(route): Promise<{ controller: RouteController; view: RouteView; }>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:834

Parameters​

route​

AbstractRoute<string | RoutePathExpression>

Returns​

Promise<{ controller: RouteController; view: RouteView; }>

Inherited from​

AbstractPageManager.getViewController


init()​

init(): void

Defined in: packages/core/src/page/manager/ClientPageManager.ts:95

Initializes the page manager.

Returns​

void

Overrides​

AbstractPageManager.init


manage()​

manage(__namedParameters): Promise<void | PageData>

Defined in: packages/core/src/page/manager/ClientPageManager.ts:109

Starts to manage the provided controller and its view. The manager stops the management of any previously managed controller and view.

The controller and view will be initialized and rendered either into the UI (at the client-side) or to the response to send to the client (at the server-side).

Parameters​

__namedParameters​

ManageArgs

Returns​

Promise<void | PageData>

A promise that will resolve to information about the rendered page. The status will contain the HTTP status code to send to the client (at the server side) or determine the type of error page to navigate to (at the client side).

Overrides​

AbstractPageManager.manage


postManage()​

postManage(): void

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:222

Called by router after currently managed route is resolved.

Returns​

void

Inherited from​

AbstractPageManager.postManage


preManage()​

preManage(): Promise<void>

Defined in: packages/core/src/page/manager/AbstractPageManager.ts:123

Pre manage handler, should be called and awaited before tryint to handle new route handler. This pre manage takes care of canceling any currently executed route handlers and returns promise which is resolved when previous page finished loading (even if it got canceled).

Returns​

Promise<void>

Inherited from​

AbstractPageManager.preManage