File

core/common/ui-state.service.ts

Extends

StateService

Index

Properties
Methods
Accessors

Constructor

constructor(applicationService: ApplicationService, apiService: ApiService, options: OptionsService, fetchClient: FetchClient, tenantLoginOptionsService: TenantLoginOptionsService)
Parameters :
Name Type Optional
applicationService ApplicationService No
apiService ApiService No
options OptionsService No
fetchClient FetchClient No
tenantLoginOptionsService TenantLoginOptionsService No

Methods

assignApplicationKeyToDefaultHeaders
assignApplicationKeyToDefaultHeaders()
Returns : void
Protected currentAppsOfUser$
currentAppsOfUser$()
getCurrentContextPath
getCurrentContextPath()
Returns : any

The current contextPath.

getLangs
getLangs()
Returns : any
Async isApplicationAvailable
isApplicationAvailable(name: string)

Checks current users application list and matches it against given application name. Returns true if application is in the list.

Parameters :
Name Type Optional Description
name string No

application name

Returns : unknown
isOwnerOfApplication
isOwnerOfApplication(app?: IApplication)

Verifies if the current application is owned by the current tenant.

Parameters :
Name Type Optional Description
app IApplication Yes

The application to verify.

Returns : boolean

true if it belongs to the current tenant.

isOwnerOfApplication$
isOwnerOfApplication$(app?: IApplication)

Verifies if the current application is owned by the current tenant.

Parameters :
Name Type Optional Description
app IApplication Yes

The application to verify.

Returns : Observable<boolean>

true if it belongs to the current tenant.

Async loadManifest
loadManifest()

Loads the app manifest. If no access -> throw an error to verify app access.

Returns : any
Protected onAppChangesCompletion$
onAppChangesCompletion$()

An Observable emitting once all POST, PUT, DELETE requests to the application API finished

Returns : Observable<void>
Async refreshLoginOptions
refreshLoginOptions()
Decorators :
@throttle(600, {trailing: false})

When this function called, it refreshes the values of loginOptions stored within ui state object. Function is throttled to execute the refresh once in a time specified by params of @throttled decorator, it should be called on leading edge of the timeout.

Returns : any
setUser
setUser(userInfo: literal type)

Sets current user (including support user).

Parameters :
Name Type Optional Description
userInfo literal type No

Info about current user and support user to be set.

Returns : void
Async updateCurrentApplicationConfig
updateCurrentApplicationConfig(config: T)
Type parameters :
  • T

Dynamic options are stored on the API in a specific config: {} object. They can be used to configure the app dynamically.

Note: To avoids conflicts with the default Config, it is recommended to use a certain namespace.

Parameters :
Name Type Optional
config T No
Returns : Promise<T>
Protected emitNewState
emitNewState()

Emits a new state.

Returns : void
map
map(mappedProperty: (undefined) => void)

Maps to a property and just returns that property.

Parameters :
Name Type Optional Description
mappedProperty function No

The property to map to.

Returns : Observable<any>

Properties

Public apiService
Type : ApiService
currentApplication
Type : BehaviorSubject<IApplication | null>
Default value : new BehaviorSubject(null)
currentApplicationConfig
Type : Observable<any>
Default value : this.currentApplication.pipe( filter(app => !!app), map(app => app?.config || null) )
currentAppsOfUser
Type : Observable<IApplication[]>

An Observable of the applications available for the current user. The Observable emits a new array on user changes or if the application performs POST, PUT or DELETE requests to the application API.

currentSupportUserName
Type : BehaviorSubject<string | null>
Default value : new BehaviorSubject(null)
currentTenant
Type : BehaviorSubject<ICurrentTenant | null>
Default value : new BehaviorSubject(null)
currentUser
Type : BehaviorSubject<IUser | null>
Default value : new BehaviorSubject(null)
state$
Type : BehaviorSubject<any>
Default value : new BehaviorSubject<any>({ app: { name: this.options.name, contextPath: this.getCurrentContextPath() || this.options.contextPath, icon: this.options.icon }, supportUrl: this.options.supportUrl, lang: this.options.get('defaultLanguage', 'en'), langs: this.getLangs(), langsDetail: this.options.languages, loginOptions: this.options.loginOptions, activateSupportUserAvailable: undefined, versions: { backend: undefined, ui: this.options.versions || { ngx: undefined } }, hidePowered: this.options.hidePowered, isLoading: false, showRightDrawer: this.options.rightDrawer, loginExtraLink: this.options.get('login_extra_link'), newsletter: this.options.newsletter })

Saves the state. Should not be accessible directly. Use map or the getter to access the state. Use functions in the implementation to change the state.

Accessors

state
getstate()

Returns the current state.

uiVersion
getuiVersion()

Returns the correct UI version. In hybrid mode for angular and ngx.

results matching ""

    No results matching ""