Class: ClientPageManager
@ima/core.ClientPageManager
Page manager for controller on the client side.
Hierarchy
↳
ClientPageManager
Constructors
constructor
• new ClientPageManager(pageFactory
, pageRenderer
, pageStateManager
, handlerRegistry
, window
, eventBus
)
Initializes the client-side page manager.
Parameters
Name | Type | Description |
---|---|---|
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. |
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. |
Overrides
AbstractPageManager.constructor
Defined in
packages/core/src/page/manager/ClientPageManager.ts:64
Properties
_eventBus
• Private
_eventBus: EventBus
The event bus for dispatching and listening for custom IMA events propagated through the DOM.
Defined in
packages/core/src/page/manager/ClientPageManager.ts:29
_managedPage
• Protected
_managedPage: ManagedPage
= {}
Details of the currently managed page.
Inherited from
AbstractPageManager._managedPage
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:34
_pageHandlerRegistry
• Protected
_pageHandlerRegistry: PageHandlerRegistry
A registry that holds a list of pre-manage and post-manage handlers.
Inherited from
AbstractPageManager._pageHandlerRegistry
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:46
_pageRenderer
• Protected
_pageRenderer: PageRenderer
The current renderer of the page.
Inherited from
AbstractPageManager._pageRenderer
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:38
_pageStateManager
• Protected
_pageStateManager: PageStateManager
The current page state manager.
Inherited from
AbstractPageManager._pageStateManager
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:42
_window
• Private
_window: Window
The utility for manipulating the global context and global client-side-specific APIs.
Defined in
packages/core/src/page/manager/ClientPageManager.ts:24
Accessors
$dependencies
• Static
get
$dependencies(): (string
| typeof PageStateManager
| typeof EventBus
| typeof Window
| typeof PageFactory
| typeof PageRenderer
)[]
Returns
(string
| typeof PageStateManager
| typeof EventBus
| typeof Window
| typeof PageFactory
| typeof PageRenderer
)[]
Defined in
packages/core/src/page/manager/ClientPageManager.ts:38
Methods
_activateController
▸ Protected
_activateController(): Promise
<void
>
Activate managed instance of controller.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._activateController
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:394
_activateExtensions
▸ Protected
_activateExtensions(): Promise
<void
>
Activate extensions for managed instance of controller.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._activateExtensions
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:403
_activatePageSource
▸ Protected
_activatePageSource(): Promise
<void
>
Activate page source so call activate method on controller and his extensions.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._activatePageSource
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:379
_boundOnCustomEventHandler
▸ Private
_boundOnCustomEventHandler(event
): void
Event listener for the custom DOM events used by the event bus, bound to this instance.
Parameters
Name | Type |
---|---|
event | CustomEvent <any > |
Returns
void
Defined in
packages/core/src/page/manager/ClientPageManager.ts:34
_clearComponentState
▸ _clearComponentState(options
): void
The method clear state on current rendered component to DOM.
Parameters
Name | Type | Description |
---|---|---|
options | RouteOptions | The current route options. |
Returns
void
Inherited from
AbstractPageManager._clearComponentState
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:566
_clearManagedPageValue
▸ Protected
_clearManagedPageValue(): void
Clear value from managed page.
Returns
void
Inherited from
AbstractPageManager._clearManagedPageValue
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:205
_constructManagedPageValue
▸ Protected
_constructManagedPageValue(controller
, view
, route
, options
, params
, controllerInstance
, decoratedController
, viewInstance
): Object
Parameters
Name | Type |
---|---|
controller | IController |
view | unknown |
route | AbstractRoute |
options | RouteOptions |
params | UnknownParameters |
controllerInstance | AbstractController |
decoratedController | ControllerDecorator |
viewInstance | unknown |
Returns
Object
Name | Type |
---|---|
controller | IController |
controllerInstance | AbstractController |
decoratedController | ControllerDecorator |
options | RouteOptions |
params | UnknownParameters |
route | AbstractRoute |
state | { activated : boolean = false } |
state.activated | boolean |
view | unknown |
viewInstance | unknown |
Inherited from
AbstractPageManager._constructManagedPageValue
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:165
_deactivateController
▸ Protected
_deactivateController(): Promise
<void
>
Deactivate last managed instance of controller only If controller was activated.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._deactivateController
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:504
_deactivateExtensions
▸ Protected
_deactivateExtensions(): Promise
<void
>
Deactivate extensions for last managed instance of controller only if they were activated.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._deactivateExtensions
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:515
_deactivatePageSource
▸ Protected
_deactivatePageSource(): Promise
<void
>
Deactivate page source so call deactivate method on controller and his extensions.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._deactivatePageSource
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:489
_destroyController
▸ Protected
_destroyController(): Promise
<void
>
Destroy last managed instance of controller.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._destroyController
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:539
_destroyExtensions
▸ Protected
_destroyExtensions(): Promise
<void
>
Destroy extensions for last managed instance of controller.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._destroyExtensions
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:552
_destroyPageSource
▸ Protected
_destroyPageSource(): Promise
<void
>
Destroy page source so call destroy method on controller and his extensions.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._destroyPageSource
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:527
_getLoadedControllerState
▸ Protected
_getLoadedControllerState(): Promise
<UnknownPromiseParameters
>
Load controller state from managed instance of controller.
Returns
Promise
<UnknownPromiseParameters
>
Inherited from
AbstractPageManager._getLoadedControllerState
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:343
_getLoadedExtensionsState
▸ Protected
_getLoadedExtensionsState(controllerState?
): Promise
<UnknownParameters
>
Load extensions state from managed instance of controller.
Parameters
Name | Type |
---|---|
controllerState? | UnknownParameters |
Returns
Promise
<UnknownParameters
>
Inherited from
AbstractPageManager._getLoadedExtensionsState
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:355
_getUpdatedControllerState
▸ Protected
_getUpdatedControllerState(): UnknownPromiseParameters
| Promise
<UnknownPromiseParameters
>
Return updated controller state for current page controller.
Returns
UnknownPromiseParameters
| Promise
<UnknownPromiseParameters
>
Inherited from
AbstractPageManager._getUpdatedControllerState
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:439
_getUpdatedExtensionsState
▸ Protected
_getUpdatedExtensionsState(controllerState?
): Promise
<UnknownParameters
>
Return updated extensions state for current page controller.
Parameters
Name | Type |
---|---|
controllerState? | UnknownParameters |
Returns
Promise
<UnknownParameters
>
Inherited from
AbstractPageManager._getUpdatedExtensionsState
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:453
_handleEventWithController
▸ _handleEventWithController(method
, data
): boolean
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
Name | Type | Description |
---|---|---|
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.
Defined in
packages/core/src/page/manager/ClientPageManager.ts:204
_handleEventWithExtensions
▸ _handleEventWithExtensions(method
, data
): boolean
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
Name | Type | Description |
---|---|---|
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.
Defined in
packages/core/src/page/manager/ClientPageManager.ts:229
_hasOnlyUpdate
▸ Protected
_hasOnlyUpdate(controller
, view
, options
): boolean
Return true if manager has to update last managed controller and view.
Parameters
Name | Type |
---|---|
controller | IController |
view | unknown |
options | RouteOptions |
Returns
boolean
Inherited from
AbstractPageManager._hasOnlyUpdate
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:582
_initController
▸ Protected
_initController(): Promise
<void
>
Initializes managed instance of controller with the provided parameters.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._initController
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:285
_initExtensions
▸ Protected
_initExtensions(): Promise
<void
>
Initialize extensions for managed instance of controller with the provided parameters.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._initExtensions
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:298
_initPageSource
▸ Protected
_initPageSource(): Promise
<void
>
Initialize page source so call init method on controller and his extensions.
Returns
Promise
<void
>
Inherited from
AbstractPageManager._initPageSource
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:277
_loadPageSource
▸ Protected
_loadPageSource(): Promise
<void
| PageData
>
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
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:323
_onChangeStateHandler
▸ _onChangeStateHandler(state
): void
On change event handler set state to view.
Parameters
Name | Type |
---|---|
state | UnknownParameters |
Returns
void
Defined in
packages/core/src/page/manager/ClientPageManager.ts:247
_onCustomEventHandler
▸ _onCustomEventHandler(event
): void
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
Name | Type | Description |
---|---|---|
event | CustomEvent <any > | The encountered event bus DOM event. |
Returns
void
Defined in
packages/core/src/page/manager/ClientPageManager.ts:145
_parseCustomEvent
▸ _parseCustomEvent(event
): Object
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
Name | Type | Description |
---|---|---|
event | CustomEvent <any > | The encountered event bus custom DOM event. |
Returns
Object
The event's details.
Name | Type |
---|---|
data | any |
eventName | string |
method | string |
Defined in
packages/core/src/page/manager/ClientPageManager.ts:182
_runPostManageHandlers
▸ Protected
_runPostManageHandlers(previousManagedPage
, action
): Promise
<unknown
>
Parameters
Name | Type |
---|---|
previousManagedPage | ManagedPage |
action | PageAction |
Returns
Promise
<unknown
>
Inherited from
AbstractPageManager._runPostManageHandlers
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:614
_runPreManageHandlers
▸ Protected
_runPreManageHandlers(nextManagedPage
, action
): Promise
<unknown
>
Parameters
Name | Type |
---|---|
nextManagedPage | ManagedPage |
action | PageAction |
Returns
Promise
<unknown
>
Inherited from
AbstractPageManager._runPreManageHandlers
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:601
_setRestrictedPageStateManager
▸ _setRestrictedPageStateManager(extension
, extensionState
): void
Set page state manager to extension which has restricted rights to set global state.
Parameters
Name | Type |
---|---|
extension | Extension |
extensionState | UnknownParameters |
Returns
void
Inherited from
AbstractPageManager._setRestrictedPageStateManager
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:236
_storeManagedPageSnapshot
▸ Protected
_storeManagedPageSnapshot(): ManagedPage
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
ManagedPage
Inherited from
AbstractPageManager._storeManagedPageSnapshot
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:196
_stripManagedPageValueForPublic
▸ Protected
_stripManagedPageValueForPublic(value
): Object
Removes properties we do not want to propagate outside of the page manager
Parameters
Name | Type | Description |
---|---|---|
value | ManagedPage | The managed page object to strip down |
Returns
Object
Name | Type |
---|---|
controller | undefined | IController |
options | undefined | RouteOptions |
params | undefined | UnknownParameters |
route | undefined | AbstractRoute |
view | unknown |
Inherited from
AbstractPageManager._stripManagedPageValueForPublic
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:226
_switchToPageStateManager
▸ Protected
_switchToPageStateManager(): void
Iterates over extensions of current controller and switches each one to pageStateManager and clears their partial state.
Returns
void
Inherited from
AbstractPageManager._switchToPageStateManager
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:310
_switchToPageStateManagerAfterLoaded
▸ _switchToPageStateManagerAfterLoaded(extension
, extensionState
): void
For defined extension switches to pageStageManager and clears partial state after extension state is loaded.
Parameters
Name | Type |
---|---|
extension | Extension |
extensionState | UnknownParameters |
Returns
void
Inherited from
AbstractPageManager._switchToPageStateManagerAfterLoaded
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:257
_updatePageSource
▸ Protected
_updatePageSource(): Promise
<void
| PageData
>
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
Defined in
packages/core/src/page/manager/AbstractPageManager.ts:415
destroy
▸ destroy(): Promise
<void
>
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
Defined in
packages/core/src/page/manager/ClientPageManager.ts:120
init
▸ init(): void
Initializes the page manager.
Returns
void
Overrides
Defined in
packages/core/src/page/manager/ClientPageManager.ts:82
manage
▸ manage(«destructured»
): Promise
<void
| PageData
>
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
Name | Type |
---|---|
«destructured» | 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).